摘要: 在有大量事务的数据库中,表和索引随着时间的推移而碎片化。因此,为了增进性能,应该定期检查表和索引的碎片,并对具有大量碎片的进行整理。 1、确定当前数据库中所有需要分析碎片的表。 2、确定所有表和索引的碎片。 3、考虑一下因素以确定需要进行碎片整理的表和索引。 高的碎片水平-avg_fragmenta 阅读全文
posted @ 2017-11-12 15:59 Cat Qi 阅读(1484) 评论(0) 推荐(0) 编辑
摘要: 一、书签查找的概念 书签可以帮助SQL Server快速从非聚集索引条目导向到对应的行,其实这东西几句话我就能说明白。 如果表有聚集索引(区段结构),那么书签就是从非聚集索引找到聚集索引后,利用聚集索引定位到数据。此处的书签就是聚集索引。如果表没有聚集索引(堆结构)。那么扫描非聚集索引后,通过RID 阅读全文
posted @ 2017-11-12 15:58 Cat Qi 阅读(234) 评论(0) 推荐(0) 编辑
摘要: 一、索引的图形界面操作 SQL Server非常强大的就是图形界面操作。关于索引方面也一样那么强大,很多操作比如说重建索引啊,查看各种统计信息啊,都能够通过图形界面快速查看和操作,下面来看看SQL Server索引方面的GUI操作。 二、索引统计信息的图形界面操作 阅读全文
posted @ 2017-11-12 15:58 Cat Qi 阅读(750) 评论(0) 推荐(0) 编辑
摘要: 一、索引视图基本概念 索引视图实际上是一种将一组唯一值“物化”为群集索引形式的视图,所为物化就是几乎和表一样,其数据也是会存储一份的(会占用硬盘空间,但是查询速度快,例如可以将count(),sum()等值设在索引视图中)。其优点是它在提取视图背后的信息方面提供了一个非常快的查找方法。在第一个索引( 阅读全文
posted @ 2017-11-12 15:57 Cat Qi 阅读(335) 评论(0) 推荐(0) 编辑
摘要: 一、索引压缩 数据和索引压缩在SQL Server2008被引入。压缩一个索引意味着将在一个页面中获得更多的关键字信息。这可以造成重大的性能改进,因为存储索引需要的页面和索引级别更少。因为索引中的键值被压缩和解压缩,也将造成CPU和内存的开销,所以这并不是适合所有索引的方案。 默认情况下,索引将不会 阅读全文
posted @ 2017-11-12 15:57 Cat Qi 阅读(421) 评论(0) 推荐(1) 编辑
摘要: 聚集索引、非聚集索引、非聚集唯一索引 我们都知道建立适当的索引能够提高查询速度,优化查询。先说明一下,无论是聚集索引还是非聚集索引都是B树结构。 聚集索引默认与主键相匹配,在设置主键时,SQL Server会默认在主键列创建聚集索引。但是可以手动更改为在任意一个列创建聚集索引,然后在另一个字段或多个 阅读全文
posted @ 2017-11-12 15:56 Cat Qi 阅读(1937) 评论(0) 推荐(0) 编辑
摘要: 一、非聚集索引维护 非聚集索引的行定位器值保持相同的聚集索引值,即使该聚集索引列物理上重新定位后,也是如此。 为了优化这个维护开销,SQL Server添加一个指向旧数据页的指针,以在页面分割之后指向新的数据页面,而不是更新所有相关非聚集索引的行定位器。这样,虽然降低了非聚集索引的维护开销,但是增加 阅读全文
posted @ 2017-11-12 15:51 Cat Qi 阅读(360) 评论(0) 推荐(0) 编辑
摘要: 聚集索引的叶子页存储的就是表的数据。因此,表行物理上按照聚集索引列排序,因为表数据只能有一种物理顺序,所以一个表只能有一个聚集索引。 当我们创建主键约束时,如果不存在聚集索引并且该索引没有被明确指定为非聚集索引,SQL Server会自动将其创建为唯一的聚集索引,这并不是说主键列就一定是聚集索引,这 阅读全文
posted @ 2017-11-12 15:50 Cat Qi 阅读(3641) 评论(0) 推荐(1) 编辑
摘要: 从CREATE开始 通过显式的CREATE INDEX命令 在创建约束时作为隐含的对象 随约束创建的隐含索引 当向表中添加如下两种约束之一时,就会创建隐含索引。 一、CREATE INDEX语法 CREATE INDEX语句所做的事情与其听上去一样-用于在指定表或视图上基于声明的列创建索引: CRE 阅读全文
posted @ 2017-11-12 15:48 Cat Qi 阅读(1686) 评论(0) 推荐(0) 编辑
摘要: 实际上,索引的维护主要包括以下两个方面: 页拆分 碎片 这两个问题都和页密度有关,虽然两者的表现形式在本质上有所区别,但是故障排除工具是一样的,因为处理是相同的。 对于非常小的表(比64KB小得多),一个区中的页面可能属于多余一个的索引或表 这被称为混合区。如果数据库中有太多的小表,混合区帮助SQL 阅读全文
posted @ 2017-11-12 15:47 Cat Qi 阅读(1932) 评论(0) 推荐(0) 编辑
摘要: 在SQL Server中,非聚集索引其实可以看做是一个含有聚集索引的表,但相对实际的表来说,非聚集索引中所存储的表的列数要少得多,一般就是索引列,聚集键(或RID)。非聚集索引仅仅包含源表中的非聚集索引的列和指向实际物理表的指针。 一、非聚集索引之INCLUDE 非聚集索引其实可以看做一个含有聚集索 阅读全文
posted @ 2017-11-12 15:46 Cat Qi 阅读(524) 评论(0) 推荐(0) 编辑