sql – 聚簇索引比带有包含的非聚集索引更快吗?
发布时间:2020-12-12 07:07:13 所属栏目:MsSql教程 来源:网络整理
导读:参见英文答案 Better to use a Clustered index or a Non-Clustered index with included columns?3个 我有一个表格,其中列a,b,c,d,e,f,g大约有500,000行. 有一个查询经常运行,它执行SELECT * FROM表WHERE a = @a AND b = @b AND c = @c. 在a,b和c上创建聚簇
参见英文答案 >
Better to use a Clustered index or a Non-Clustered index with included columns?3个
我有一个表格,其中列a,b,c,d,e,f,g大约有500,000行. 有一个查询经常运行,它执行SELECT * FROM表WHERE a = @a AND b = @b AND c = @c. 在a,b和c上创建聚簇索引是否更好?或者我最好在a,b和c INCLUDE(d,g)上创建非聚集索引. 自发出select *以来,不确定include会帮助加快查询速度. 任何帮助,将不胜感激! 解决方法聚簇索引对于SELECT来说是最快的,但它可能不一定是正确的选择.聚簇索引确定记录的物理存储顺序(这就是为什么每个表只能有一个).因此,虽然它对于THAT查询来说是最快的,但它可能会减慢其他查询的速度,并且如果其中一个列发生更改,则可能会更新和插入Kill,这可能意味着需要对记录进行物理重新定位. 如果更新了任何这些字段(包括包含的字段),则INCLUDE将以额外存储和额外索引维护为代价再次加速该查询. 我将在a,b和c上使用非聚集索引启动,并查看是否可以将性能提升到合理的水平.更多的东西可能只是在一个区域的交易速度,在另一个区域的缓慢. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |