SQL Server 2016 列存储索引功能增强「建议收藏」
2023-06-13 09:12:33 时间
大家好,又见面了,我是你们的朋友全栈君。
列存储索引(columnstore index)在SQL Server 2012中已经引入,其带来性能提升的同时也有很多限制,比如对带有列存储索引的表进行INSERT, UPDATE和DELETE时,会遇到如下错误提示:
由于这种限制,索引列存储索引并不太适合在SQL Server 2012 OLTP DB中应用。不过,SQL Server 2016对列存储索引做了很多改进,其中我觉得最大的变化是可更新的列存储索引,即可以直接对带有列存储索引的表进行INSERT, UPDATE和DELETE,因此,我们可以在SQL Server 2016环境中尝试应用这以功能,已提升查询性能。若想具体了解列存储索引的概念、特征、创建及使用,可参考我之前整理的Blog。
在SQL 2016环境测试的过程中,我发现列存储索引对于有聚集函数的T-SQL,有很好的性能提升,比如下面这个示例,性能提升约15倍:
JOIT表有1500833笔记录,复制一份到JOIT_CSI表,2张表的唯一区别是JOIT_CSI有非聚集列存储索引, 在统计列SERNUM个数的查询中,可以发现JOIT需要7210ms,而JOIT_CSI只有463ms,性能提升约15倍。感兴趣的,可以去发掘其他性能提升的最佳实践。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/159107.html原文链接:https://javaforall.cn
相关文章
- Server.MapPath相关
- Server SAN_Windows存储卷设备
- SQL Server 存储过程_mysql存储过程教程
- SQL开发知识:Sql server中内部函数fn_PhysLocFormatter存在解析错误
- SQLServer 错误 41396 该排序操作超出了缓冲区限制。 存储过程执行已中止。 有关详细信息,请查阅 SQL Server 联机丛书。 故障 处理 修复 支持远程
- SQL Server与Oracle的异同之处(sqlserver和oracle的区别)
- serverUsing AB Linux Server to Improve System Performance(ablinux)
- 空间SQL Server之空间清理大作战(sqlserver 清楚)
- 使用SQL Server模板快速解决数据库问题(sqlserver模板)
- 存储SQL Server:图像存储专家(sqlserver是图片)
- 连接SQL Server连接的断开与重连(sqlserver断开)
- SQL Server存储实现空前纪录!(sqlserver存过)
- “SQL Server上存储表的运用研究”(sqlserver存储表)
- SQL Server大字段处理研究(sqlserver大字段)
- SQL Server叶还原:思考再次回到原点(sqlserver叶还原)
- SQL Server反射:探究其发展及应用(sqlserver 反射)
- SQL Server在华为平台上的应用实现(sqlserver华为)
- SQL Server 伪表:一种新的数据存储方式(sqlserver 伪表)
- SQL Server登录失败:你需要知道的原因(mSsql登录失败)