所有列上的非聚集索引

时间:2014-06-27 19:13:51

标签: sql sql-server sql-server-2008 indexing

如果允许在表上创建249个非聚簇索引,是否意味着在每个列上都有一个非聚集的安全?那会有什么影响?或者我们必须只选择一些列来创建非聚集索引。

是这个:

create nonclustered index ix_test(col1, col2, col3)

与此不同:?

create nonclustered index ix_test(col1)
create nonclustered index ix_test2(col2)
create nonclustered index ix_test3(col3)

1 个答案:

答案 0 :(得分:0)

索引适合读取而不适合写入。

当您只阅读数据时索引可以帮助您更快地找到数据并快速阅读。

另一方面

当你编写数据(UPDATE / DELETE / INSERT)时,sql server必须在存储实际数据的SQL Server Pages上写入两次数据,对Indexes执行一次。这会导致写入速度变慢。

你必须找到那些你的读取没有足够帮助索引的中间地带,你的写入不会受到太多索引的影响。

以上陈述适用于OLTP应用程序,其中数据正在频繁更改,但如果它是OLAP /数据仓库,则数据几乎不会发生变化,您可以添加与读取所需的索引一样多的应用程序以更好地执行。希望这可以帮助。