索引及统计信息1

索引及统计信息1

一  索引基础

1.1  为什么要索引?

     快速查找


1.2  索引的主要类型

1.2.1  堆
1.2.2  聚集索引
1.2.3  非聚集索引
1.2.4  列存储索引
1.2.5  特殊索引
1.2.6  其他类型


1.3  索引元数据

sys.indexes
sys.index_columns
sys.xml_indexes
sys.spatial_indexes
sys.column_store_dictionaries 和 sys.column_store_segments



二  索引存储基础

2.1  SQLServer存储基础

2.1.1  页
         每页8KB
2.1.2  区

2.1.3  页类型


2.2  页组织

2.2.1  堆结构

2.2.2  B-Tree结构

2.2.3  列存储结构


2.3   检查工具

2.3.1  DBCC EXTENTINFO
        该命令用于查看区是如何分配的,还能查看是属于混合区还是统一区

  1. dbcc extentinfo(0,Index_One,-1)

2.3.2  DBCC IND 
        该命令用于研究索引及其关联的页。这个命令返回对象所有页的清单,包括数据库、表或者索引。

  1. DBCC IND(0,N'Index_One',-1);


2.3.3 DBCC PAGE
        该命令用于检查页的信息。

  1. use Index_Demo
  2. go
  3. if OBJECT_ID(N'Index_Four','U') IS NOT NULL
  4. DROP TABLE Index_Four
  5. create table Index_Four(
  6. RowID INT identity(1,1) NOT NULL,
  7. DATA varchar(2000) null,
  8. constraint PK_IndexFour Primary key clustered(RowID ASC)
  9. );
  10. insert into Index_Four(DATA) values(REPLICATE(1,2000)),values(REPLICATE(2,2000)),values(REPLICATE(3,2000)),values(REPLICATE(4,2000)),values(REPLICATE(5,25));
  11. go
  12. dbcc ind(0,N'Index_Four',-1);
  13. go

  14. DBCC TRACEON(3604)
  15. DBCC PAGE(0,1,165,0)


2.4   页碎片

    当存放的数据超过 8KB时,就会发生分页。
2.4.1  Forwarded records
        这种分页形式仅发生在堆结构中。当一行数据被更新,并且大小已经无法放入该数据页时,SQLServer会把这个数据页移到堆中的新数据页里,并在新旧页中分别添加一个指针,标识这个数据在新旧页中的位置。从旧页指向新页的指针叫 forwarded record pointer,存放在旧页中。从新页指向旧页的指针叫做 back pointer,存放在新页中。

2.4.2 页拆分
        页拆分(Page Splits),简称 分页。这种方式存在于 B-Tree 结构中,即聚集和非聚集索引均以这种方式分页。




三 索引统计信息

3.1 索引层级的统计信息

3.1.1  DBCC_SHOW_STATISTICS

3.1.2  目录视图
        视图sys.stas
        视图sys.stats_columns
        函数 stats_date()


3.2 索引使用的统计信息

该信息可以用 DMV   sys.dm_db_index_usage_stats来查看


3.3 索引操作的统计信息

该信息可以用 DMO   sys.dm_db_index_operational 来查看


3.4 索引物理统计信息

该信息用于显示当前索引上  insert/update/delete操作的物理影响,信息保存在 sys.dm_db_index_physical_stats中




四 索引误区及使用建议

4.1 常见误区

4.1.1  数据库不需要索引

4.1.2  主键总是聚集的

4.1.3  联机索引操作不引起阻塞

4.1.4  复合索引下,列的顺序不重要

4.1.5  聚集索引以物理顺序存储

4.1.6  填充因子可以应用在索引的插入过程中

4.1.7  每个表都应该有聚集索引




4.2 索引使用建议

4.2.1  保留主键创建中的聚集索引选项

4.2.2  平衡索引的个数

4.2.3  填充因子

4.2.3  在外键列加索引


4.3  关于索引的查询建议

4.3.1  like 

4.3.2  串联

4.3.3  标量函数

4.3.4  数据类型转换





来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26435490/viewspace-1648511/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/26435490/viewspace-1648511/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值