如何解决为什么SQL Server的查询估计值与列存储索引一起变差?
我有一个包含55列和400万行的表以及以下查询:
SELECT *
FROM [SCHEMA].[TABLE]
WHERE [COLUMN_5] = 'I write garbage t-sql and call myself a developer'
有了[COLUMN_5]
上的非聚集行存储索引,我得到了不错的估计...
5个估计结果中有59个结果
但是使用非聚集列存储索引...在估计的4142820 (表中的所有行)中,有59个结果
列存储状态:
表“ TABLE”。扫描计数2,逻辑读248,物理读0,预读161,lob逻辑读4432,lob物理读5,lob预读8198。
表“ TABLE”。细分读为5,细分跳过了0。
行商店统计信息:
表“ TABLE”。扫描计数1,逻辑读240,物理读0,预读0,lob逻辑读0,lob物理读0,lob预读0。
有人告诉我列存储索引的性能会更好,因为“批处理模式比行模式要好,”但是这些统计数字却暗示了……
所以,我的问题是:
- 为什么SQL认为
[COLUMN_5]
中的 ALL 值等于我的搜索字符串? - 批处理模式比行模式好吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。