索引碎片
發糞塗牆
MVP, TOGAF, MCSE, Azure Solution Architect
展开
-
第十章——维护索引(4)——通过重组索引提高性能
前言:如果碎片程度小于30%,建议使用重组而不是重建。因为重组不会锁住数据页或者数据表,并且降低CPU的资源。总得来说,重组会清空当前的B-TREE,特别是索引的叶子节点,重组数据页和消除碎片。和重建不同,重组不会添加任何新数据页。 准备工作:为了了解是否有必要重组索引,需要首先查看碎片程度,如果在10%以下,那一般没必要做什么维护,如果在10%~30%,就建议进行重组。 步骤:1、 以下各种重翻译 2013-05-16 21:15:22 · 6391 阅读 · 0 评论 -
第十章——维护索引(5)——查找丢失索引
前言:在开发阶段,很难总是可以在合适的列上创建合适的索引。所以一开始创建的索引可能会无效,此时,需要找出这些无效的索引。一般来说,当一个查询执行的时候,SQLServer优化器会选择最适合的索引进行执行,当没有找到合适的索引话,优化器会产生一个次优执行计划,并且把丢失索引的信息存放到DMVs上。当SQLServer服务重启后,所以存储在DMVs上的信息都会丢失,所以最好在正常使用大概1周后收集这些翻译 2013-05-16 21:17:53 · 7873 阅读 · 0 评论 -
第十章——维护索引(6)——查找无用索引
前言:众所周知,索引对性能的提升有巨大作用。但是这是有代价的,索引需要磁盘空间来存放它的B-Tree,并且用于在每次DML执行后更新信息,所以应该在一定时期内检查有无无用索引。 准备工作:记住别在重启服务器之后进行信息收集,因为DMO将会清空,而数据会非常不准确甚至是错误的。所以应该在运行了一段时间后(业务周期)再做收集。业务周期根据实际情况而定。一些表和查询会每天频繁使用,但是一些类似报表功能翻译 2013-05-16 21:19:34 · 6658 阅读 · 1 评论 -
第十章——维护索引(8)——在计算列中创建索引提高性能
前言:在理解计算列上的索引之前,先了解计算列的基本知识。计算列由可以使用同一表中的其他列的表达式计算得来。表达式可以是非计算列的列名、常量、函数,也可以是用一个或多个运算符连接的上述元素的任意组合。表达式不能为子查询。默认情况下,计算列是一个虚拟的列,并且可以在调用时重新计算,直到在CREATE TABLE或者ALTER TABLE 命令中使用PERSISTED。如果列定义成PERSISTED,会翻译 2013-05-16 21:43:27 · 6611 阅读 · 3 评论 -
第十章——维护索引(9)——监控索引消耗的空间
前言:性能优化是DBA的工作之一,但是同时,DBA还需要关心SQLServer实例、数据库消耗的空间、提供数据库用户高可用性、管理数据库备份策略等等。磁盘空间的管理是一件非常重要的事情,DBA需要关注磁盘空间和未使用索引的空间消耗情况,管理数据文件和日志文件的大小等等。在其他章节和本章都有提到,索引会消耗磁盘空间。所以,是时候去管理这部分的内容。 准备工作:在开始之前,先要确保:1、 用户具有VI翻译 2013-05-16 21:45:57 · 5308 阅读 · 0 评论 -
第十章——维护索引(1)——索引碎片
本系列包含:1、 查找碎片。2、 使用填充因子。3、 使用REBUILD来加索引性能。4、 使用REORGANIZE来加索引性能。5、 如何查找丢失索引。6、 如果查找无用索引。7、 通过创建索引视图提高性能。8、 通过创建索引在计算列增加性能。9、 计算索引消耗的磁盘空间。 前言:DBA的日常任务并不仅仅是创建需要的索引在对应的列上,实际上,DBA还要保持索引创建的高标准。周而复翻译 2013-05-07 18:06:55 · 5865 阅读 · 0 评论 -
第十章——维护索引(3)——通过重建索引提高性能
前言:重建一个索引只是在内部删除并重建索引,使得碎片消失、统计信息更新、物理顺序重新排列组织。它会压缩数据页,按照填充因子填充适当的数据。如果有需要,也会添加新的数据页。这些操作有利于提高数据查找的速度,但是这个工作如果发生在大表上面,将是非常耗时耗资源的。 准备工作:首先先要决定是否达到了重建索引的临界值。否则,重组索引会更好。当碎片超过30%,那么重建索引会比较好。重建索引有两种方式,在重建之翻译 2013-05-16 21:07:47 · 6458 阅读 · 0 评论 -
第十章——维护索引(7)——使用索引视图提高性能
前言:视图是一个包含了一个或多个表的数据列的虚拟表。通常情况下,它仅仅是存储了查询的对象,一个视图可以当作一个表,可以用于存储过程、JOIN、用户自定义函数等等。视图包含了下面两个主要特性:1、 提供了一个安全机制,用于限制用户只能访问特定的数据。2、 使得开发人员能定制用户的逻辑视图。 当你查询一个视图时,优化器会产生一个单一的执行计划给这个查询。在索引视图未出现之前,视图必须解决查询在执行期间翻译 2013-05-16 21:28:25 · 7410 阅读 · 0 评论 -
第十章——维护索引(2)——填充因子
前言: 在第九章中,已经介绍了如何使用索引,当一个索引创建时,以B-Tree格式存放数据,拥有根节点、中间节点、叶子节点。叶子节点是最底层的节点,在聚集索引中,包含了实际数据,而每个数据页有8KB。 当表中的数据的增删改发生时,会尝试把数据插入到合适的数据页中。比如有一个聚集索引在SSN上,当插入一个新的SSN数时。SQLServer会尝试把数据插入到合适的数据页,假设SSN翻译 2013-05-07 18:12:40 · 6765 阅读 · 0 评论