sql server 列索引
1列式索引与传统索引的区别
列式索引将每一列单独存储在一组磁盘页中,而不是像传统方式那样在每个页中存储多个行。
2语法(1) 表之间的联接查询以及多列的联接查询很难通过列式索引大幅提高性能,甚至不会有任何性能提升。
(2) 添加列索引后表为只读
5列索引效率测试(1) 创建表且初始化7,169,010数据
(2) 执行查询语句A:
SELECT TRANSACTIONTYPE,COUNT,TRANSACTIONID,posid,cashierid,
ITEMtype,ITEMCODE,GLOBALCODE FROM BOHRSCSALES_DAY_STD
WHERE GLOBALCODE>='87006189'
所需时间为2.201
(3) 创建列索引
CREATE COLUMNSTORE INDEX BOHRSCSALES_DAY_STD_col1
?on BOHRSCSALES_DAY_STD? (TRANSACTIONTYPE,COUNT,TRANSACTIONID
,posid, cashierid,ITEMtype,ITEMCODE,GLOBALCODE)
(4) 执行查询语句A, 所需时间为1.155
CREATE INDEX BOHRSCSALES_DAY_STD_col2
(6) 执行查询语句A, 所需时间为1.170
(7) 同样执行A查询语句结果为:
没索引执行时间 > 普通索引执行时间>? 列索引执行时间