`
onlyor
  • 浏览: 380951 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

sql server 列索引

阅读更多


1
列式索引与传统索引的区别

列式索引将每一列单独存储在一组磁盘页中,而不是像传统方式那样在每个页中存储多个行。

2语法

CREATE COLUMNSTORE INDEX indexName on [table_name]  ( [col1] ,  ... )

3列式索引优点

(1) 只有查询所涉及到的列才会从磁盘中获取出来(在典型的事实数据表中,查询所涉

及到的列不会超过总列数的15%

(2) 由于每个列中都会有大量重复数据,因此这种数据结构更便于进行压缩, 列式聚集索引其实就是数据的一份拷贝,不仅可以大幅提高性能,而且还可以大大节省存储空间。

(3) 数据经过高度压缩后,缓冲区的命中率将大大提高,并且访问频繁的列将缓存在内

存中,而访问不频繁的列则不会长时间占用内存。

4列式索引缺点

(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

 (5) 创建普通索引

CREATE INDEX BOHRSCSALES_DAY_STD_col2

 on BOHRSCSALES_DAY_STD  (TRANSACTIONTYPE,COUNT,

 TRANSACTIONID,posid,cashierid,ITEMtype,ITEMCODE,GLOBALCODE)

(6) 执行查询语句A, 所需时间为1.170

(7) 同样执行A查询语句结果为:
没索引执行时间 > 普通索引执行时间列索引执行时间

分享到:
评论

相关推荐

    SQL Server 索引中include的魅力(具有包含性列的索引)

    SQL Server 索引中 include 的魅力(具有包含性列的索引) SQL Server 索引中 include 的魅力(具有包含性列的索引)是指在非聚集索引中添加非键列,以扩展索引的功能,提高查询性能。通过将非键列添加到非聚集索引...

    SqlServer重建索引

    用于SqlServer的索引重建,全语句实现,可根据实际情况进行部分关键表的索引重建。

    SQL SERVER建立索引.pdf

    ### SQL Server 建立索引相关知识点 #### 一、建立索引 索引是在数据库表中的数据列上创建的一种特殊的数据结构,其目的是为了加快数据检索速度。索引类似于书籍的目录,通过索引可以快速定位到所需的数据行,从而...

    sqlserver管理索引优化SQL语句

    sqlserver管理索引优化SQL语句

    sql server创建索引

    - `UNIQUE`关键字用于创建唯一索引,确保索引列中的值不会重复。 - `CLUSTERED`或`NONCLUSTERED`关键字用于指定索引的类型。 - `FILLFACTOR`参数用于控制索引页面填充程度,其值介于0到100之间,通常设置为80%以预留...

    SQL Server 2000完结篇系列之七:SQL Server 2000索引优化详解

    3. 考虑索引宽度:索引列的长度会影响索引大小,过宽的索引可能会占用过多空间且降低性能。 4. 避免过度索引:过多的索引会增加数据库维护成本,应根据实际需求创建。 五、索引维护与重构 定期分析索引性能,通过...

    SQL Server 索引结构及其使用(聚集索引与非聚集索引)

    | 频繁修改索引列 | 不应 | 应 | 在实践中,聚集索引和非聚集索引的使用规则很容易被忽视或不能根据实际情况进行综合分析。例如,主键就是聚集索引是一种误区。虽然 SQL SERVER 默认是在主键上建立聚集索引的,但这...

    利用索引提高SQLServer数据处理效率

    其次,非聚簇索引(Nonclustered Indexes)则不改变数据的物理顺序,它为每一行存储索引列值并指向数据页面。非聚簇索引允许创建多个,但更新频繁的表上过多的非聚簇索引会导致额外开销。适合建立非聚簇索引的情况...

    SQL Server 全文索引查询

    SQL Server全文索引查询是一种在SQL Server数据库中用于高效检索大量文本数据的技术。与传统的基于B树结构的索引不同,全文索引专注于处理“包含”式查询,即查询字符串中是否包含特定的关键词,而不仅仅是以特定...

    sql server 重新组织和重新生成索引

    SQL Server 重新组织和重新生成索引 在 SQL Server 中,索引的碎片可能会对查询性能产生影响,因此需要对索引进行维护。SQL Server 2005 提供了重新组织和重新生成索引的功能,以修复索引碎片。 重新组织索引 ...

    SQLserver查看索引列语句.txt

    SQLserver查看索引列语句

    SQLServer查看缺失索引

    SQLServer查看缺失索引

    SQL Server 2000索引结构及使用方法

    | 频繁修改索引列 | 不应 | 应 | 三、结合实际,谈索引使用的误区 理论的目的是应用。虽然我们刚才列出了何时应使用聚集索引或非聚集索引,但在实践中以上规则却很容易被忽视或不能根据实际情况进行综合分析。 1....

    SQLServer索引碎片和解决方法

    SQLServer中的索引碎片是影响数据库性能的重要因素,它分为外部碎片和内部碎片两种类型。外部碎片发生在索引页不在其逻辑顺序上时,导致查询过程中需要额外的页切换,尤其是对于返回有序结果集的查询,这将显著降低...

    sqlserver索引表设计数据类型选择

    该ppt详细描述sqlserver索引优化时带来的查询性能提升和更新锁开销,最后介绍表设计,字段数据类型的选择及使用适当的冗余减少表连接

    SqlServer 数据库索引优化详解

    深入理解SqlServer索引机制及合理优化数据库

    提高SQL Server性能,可通过DBCC DBREINDEX重建索引

    ### 提高SQL Server性能:通过DBCC DBREINDEX重建索引 #### 一、引言 在数据库管理系统中,SQL Server作为一款广泛使用的数据库产品,其性能优化是确保应用程序高效运行的关键因素之一。其中,索引是提升查询速度的...

    SQLSERVER全文索引的使用

    ### SQL Server 全文索引的使用 #### 一、全文索引概述 在SQL Server中,全文索引是一种特殊类型的索引,主要用于提高文本数据的检索效率,尤其是在执行复杂模糊查询时。全文索引支持复杂的自然语言查询,能够帮助...

    SqlServer索引工作原理

    SqlServer索引工作原理 在了解SqlServer索引工作原理之前,我们需要了解什么是索引。索引是一种特殊的数据库结构,它可以快速地定位和检索数据。索引的作用是加快数据的查询速度,使得数据库中的数据更易于管理和...

Global site tag (gtag.js) - Google Analytics