2

我有一个表格,其中包含按年份、州和县的数据。县标识符存储为对州和县进行编码的 FIPS 代码。

我已经创建了一个关于年份和县的 CLUSTERED INDEX,并且我知道数据将以这种排列方式物理存储。

问题

  • 由于数据是通过 FIPS 代码存储的,它们是否会自动按状态顺序排列?

  • 在我看来,在 State 上添加非聚集索引不会给我带来任何好处。这是真的?

  • 更一般地说,如果我对几个变量有一个聚集索引,那么在索引的组件上是否有 WHERE、GROUP BY 或 ORDER BY 子句“覆盖”,因此不需要索引?

4

1 回答 1

0

在没有状态索引的情况下,查询无法知道状态恰好是有序的。
对 state 的查询不会使用 year 和 fips 的复合索引。

州将从指数中受益。
你可以有一个单独的状态索引。
或者在综合指数中包括州 - 年、州、FIPS。

假设您有一个复合索引 col1、col2、col3。Col3 上的位置。查询可以使用复合索引,但它会是一次扫描。如果你有很多或关键的查询使用 col3,那么在 col3 上放置一个索引,看看你是否得到好处。你需要测试加载数据。另一个因素是如果复合索引被大量使用,那么它可能已经在内存中。

于 2012-12-06T13:33:36.440 回答