1. 首页
  2. 数据库
  3. SQLServer
  4. SQLServer系统调优解决方案

SQLServer系统调优解决方案

上传者: 2019-01-03 00:18:25上传 DOC文件 204.5KB 热度 34次
索引简介 索引是根据数据库表中一个或多个列的值进行排序的结构。索引提供指针以指向存储在表中指定列的数据值,然后根据指定的排序次序排列这些指针。 数据库使用索引的方式与使用书的目录很相似,通过搜索索引找到特定的值,然后跟随指针到达包含该值的行。 索引键:用于创建索引的列。 索引类型  聚集索引: 聚集索引基于数据行的键值在表内排序和存储这些数据行。由于数据行按基于聚集索引键的排序次序存储,因此聚集索引对查找行很有效。每个表只能有一个聚集索引,因为数据行本身只能按一个顺序存储。数据行本身构成聚集索引的最低级别(叶子节点)。只有当表包含聚集索引时,表内的数据行才按排序次序存储。如果表没有聚集索引,则其数据行按堆集方式存储。聚集索引对于那些经常要搜索范围值的列特别有效。使用聚集索引找到包含第一个值的行后,便可以确保包含后续索引值的行在物理相邻。例如:如果应用程序执行的一个查询经常检索某一日期范围内的记录,则使用聚集索引可以迅速找到包含开始日期的行,然后检索表中所有相邻的行,直到到达结束日期。这样有助于提高此类查询的性能。同样,如果对从表中检索的数据进行排序时经常要用到某一列,则可以将该表在该列上聚集(物理排序),避免每次查询该列时都进行排序,从而节省成本。        非聚集索引 非聚集索引具有完全独立于数据行的结构。非聚集索引的最低行包含非聚集索引的键值,并且每个键值项都有指针指向包含该键值的数据行。数据行不按基于非聚集键的次序存储。如果一个表只有非聚集索引,它的数据行将按无序的堆集方式存储,非聚集索引可以建多个。  唯一索引 唯一索引可以确保索引列不包含重复的值。在多列唯一索引的情况下,该索引可以确保索引列中每个值组合都是唯一的。唯一索引既是索引也是约束。  复合索引 索引项是多个的就叫组合索引,也叫复合索引。复合索引使用时需要注意索引项的次序。 索引对性能的作用  使用索引的优点 1. 通过唯一性索引(unique)可确保数据的唯一性 2. 加快数据的检索速度 3. 加快表之间的连接 4. 减少分组和排序的时间  使用索引的原则 1. 在需要经常搜索的列上创建索引 2. 经常用于连接的列上创建索引 3. 经常需要根据范围进行搜索的列上创建索引 4. 经常需要排序的列上创建索引 5. 经常用于where子句的列上创建索引  不使用索引的原则 1. 查询很少使用和参考的列不建索引 2. 对只有少数值的列不建索引 3. 定义为text、image、bit的列不建索引 4. 当需要update性能远远高于select性能时不建或少建索引  常用命令 1. sp_helpindex : 报告表或视图上的索引信息 2. dbcc showcontig :显示指定表的数据和索引的碎片信息 3. dbcc dbreindex :重建指定数据库中一个或多个索引 4. dbcc indexdefrag :整理指定表或视图的聚集索引或辅助索引的碎片  创建索引 1. 定义索引时,可以指定每列的数据是按升序还是降序存储。如果不指定,则默认为升序 2. 为索引指定填充因子,可标识填充因子来指定每个索引页的填满程度。索引页上的空余空间量很重要,因为当索引页填满时,系统必须花时间拆分它以便为新行腾出空间。  优化索引 1. 重建索引(dbcc dbreindex) 2. 索引优化向导 3. 整理指定的表或视图的聚集索引和辅助索引碎片(dbcc indexefrag)  非聚集索引 非聚集索引具有完全独立于数据行的结构。非聚集索引的最低行包含非聚集索引的键值,并且每个键值项都有指针指向包含该键值的数据行。数据行不按基于非聚集键的次序存储。如果一个表只有非聚集索引,它的数据行将按无序的堆集方式存储,非聚集索引可以建多个。  唯一索引 唯一索引可以确保索引列不包含重复的值。在多列唯一索引的情况下,该索引可以确保索引列中每个值组合都是唯一的。唯一索引既是索引也是约束。  复合索引 索引项是多个的就叫组合索引,也叫复合索引。复合索引使用时需要注意索引项的次序。 索引对性能的作用  使用索引的优点 1. 通过唯一性索引(unique)可确保数据的唯一性 2. 加快数据的检索速度 3. 加快表之间的连接 4. 减少分组和排序的时间  使用索引的原则 1. 在需要经常搜索的列上创建索引 2. 经常用于连接的列上创建索引 3. 经常需要根据范围进行搜索的列上创建索引 4. 经常需要排序的列上创建索引 5. 经常用于where子句的列上创建索引  不使用索引的原则 1. 查询很少使用和参考的列不建索引 2. 对只有少数值的列不建索引 3. 定义为text、image、bit的列不建索引 4. 当需要update性能远远高于select性能时不建或少建索引  常用命令 1. sp_helpindex : 报告表或视图上的索引信息 2. dbcc showcontig :显示指定表的数据和索引的碎片信息 3. dbcc dbreindex :重建指定数据库中一个或多个索引 4. dbcc indexdefrag :整理指定表或视图的聚集索引或辅助索引的碎片  创建索引 1. 定义索引时,可以指定每列的数据是按升序还是降序存储。如果不指定,则默认为升序 2. 为索引指定填充因子,可标识填充因子来指定每个索引页的填满程度。索引页上的空余空间量很重要,因为当索引页填满时,系统必须花时间拆分它以便为新行腾出空间。  优化索引 1. 重建索引(dbcc dbreindex) 2. 索引优化向导 3. 整理指定的表或视图的聚集索引和辅助索引碎片(dbcc indexefrag)
用户评论