繁体   English   中英

所有列上的非聚集索引

[英]Non-Clustered Index on all the columns

如果允许在一个表上创建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)

索引对读取有利,对写入不利。

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

另一方面

写入数据(UPDATE / DELETE / INSERT)时,sql server必须在存储实际数据的SQL Server Pages上写入两次数据,并为Indexes写入一次数据。 这将导致写入速度变慢。

您将不得不找到一个中间地带,在该中间地带,您的读取不会遭受不足的帮助索引的影响,而您的写入不会受到太多索引的影响。

上面的声明适用于OLTP应用程序,在该应用程序中,数据的更改非常频繁,但是如果是OLAP / Data Warehouse,则数据几乎永远不会更改,因此您可以添加尽可能多的索引以提高性能。 希望这可以帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM