http://www.2cto.com/database/201305/207508.html

SQL Server-索引管理
 
一、显示索引信息
在建立索引后,可以对表索引信息进行查询。
(1)在SQL Server Management Studio的“对象资源管理器”面板中,使用与创建索引同样的方法,打开索引-属性命令,即可看到该索引对应的信息。
 
(2)使用系统存储过程sp_helpindex查看指定表的索引信息
[sql] 
 
use test 
GO 
exec sp_helpindex test_table 
GO 
二、索引的分析
  建立索引的目的是希望提高数据库
据检索的速度,如果利用索引查询的速度还不如扫描表的速度,SQL
Server就会采用扫描表而不是通过索引的方法来检索数据,因此,在建立索引后,应该根据应用系统的需要,也就是实际可能出现哪些数据检索,来对查询进
行分析,以判定其是否能提高SQL Server的数据检索速度。
  SQL Server提供了多种分析索引和查询性能的方法,下面介绍常用的SHOWPLAN_ALL和STATISTICS IO两种命令:
1)SHOWPLAN_ALL:
  显示查询计划是SQL Server将显示在执行查询的过程中连接表时所采取的每个步骤,以及是否选择及选择了哪个索引,从而帮助用户分析有哪些索引被系统采用。
通过在查询语句中设置SHOWPLAN_ALL选项,可以选择是否让SQL Server显示查询计划。
[sql] 
 
USE test 
GO 
SET SHOWPLAN_ALL ON 
Go 
select * from test_table where userName='terry'; 
2)STSTICTICS IO
  数据检索语句所花费的磁盘活动量是用户比较心的性能这一。通过设置STSTICTICS IO选项,可以使用SQL Server显示磁盘IO信息。
设置是否显示磁盘IO统计的命令为:
SET STATISTICS IO ON|OFF
[sql] 
USE test 
GO 
SET STATISTICS IO ON 
GO 
select * from test_table where userName='terry' 
GO

下图可以看到具体的IO和CPU消耗信息:
 
3)使用DBCC SHOWCONTIG语句扫描表
  对表进行数据操作可能会导致表碎片的产生,而表碎片会导致读取额外而,从而造成数据查询性能的降低,此时,用户可以通过使用DBCC SHOWCONTIG语句来扫描表,并通过其返回值确定该索引页是否已经严重不连续。
  在返回的统计信息中,需要注意扫描密度,其理想值为100%,如果比较低,就需要清理表上的碎片。
[sql] 
 
DBCC SHOWCONTIG (test_table,name) 
4)使用DBCC INDEXFRAG语句进行碎片整理
  当表或视图上的聚焦索引和非聚焦索引页级上存在碎片时,可以通过DBCC INDEXFRAG对其进行碎片整理。
[sql] 
 
dbcc indexdefrag(test,test_table,name)

 
 
点击复制链接 与好友分享!回本站首页
分享到:

更多

您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:SQL Server-索引介绍
下一篇:SQL Server2012如何开启数据库的远程连接

SQL Server-索引管理的更多相关文章

  1. SQL Server索引管理之六大铁律

    索引是以表列为基础的数据库对象.索引中保存着表中排序的索引列,并且纪录了索引列在数据库表中的物理存储位置,实现了表中数据的逻辑排序.通过索引,可以加快数据的查询速度和减少系统的响应时间;可以使表和表之 ...

  2. 人人都是 DBA(IV)SQL Server 内存管理

    SQL Server 的内存管理是一个庞大的主题,涉及特别多的概念和技术,例如常见的 Plan Cache.Buffer Pool.Memory Clerks 等.本文仅是管中窥豹,描述常见的内存管理 ...

  3. SQL Server索引进阶:第九级,读懂执行计划

    原文地址: Stairway to SQL Server Indexes: Level 9,Reading Query Plans 本文是SQL Server索引进阶系列(Stairway to SQ ...

  4. SQL Server索引进阶:第八级,唯一索引

    原文地址: Stairway to SQL Server Indexes: Level 8,Unique Indexes 本文是SQL Server索引进阶系列(Stairway to SQL Ser ...

  5. SQL Server索引进阶:第七级,过滤的索引

    原文地址: Stairway to SQL Server Indexes: Level 7,Filtered Indexes 本文是SQL Server索引进阶系列(Stairway to SQL S ...

  6. SQL Server索引进阶:第五级,包含列

    原文地址: Stairway to SQL Server Indexes: Level 5, Included Columns 本文是SQL Server索引进阶系列(Stairway to SQL ...

  7. SQL Server索引进阶:第四级,页和区

    原文地址: Stairway to SQL Server Indexes: Level 4, Pages and Extents 本文是SQL Server索引进阶系列(Stairway to SQL ...

  8. SQL Server 索引维护(1)——系统常见的索引问题

    前言: 在很多系统中,比如本人目前管理的数据库,索引经常被滥用,甚至使用DTA(数据库引擎优化顾问)来成批创建索引(DTA目前个人认为它的真正用处应该是在发现缺失的统计信息,在以前的项目中,用过一次D ...

  9. SQL Server 索引维护:系统常见的索引问题

    在很多系统中,比如本人目前管理的数据库,索引经常被滥用,甚至使用DTA(数据库引擎优化顾问)来成批创建索引(DTA目前个人认为它的真正用处应该是在发现缺失的统计信息,在以前的项目中,用过一次DTA,里 ...

  10. (4.6)sql server索引缺失提示

    SQLSERVER如何查看索引缺失 sql server索引缺失提示 当大家发现数据库查询性能很慢的时候,大家都会想到加索引来优化数据库查询性能, 但是面对一个复杂的SQL语句,找到一个优化的索引组合 ...

随机推荐

  1. 题解报告:hdu 2069 Coin Change(暴力orDP)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2069 Problem Description Suppose there are 5 types of ...

  2. pycharm的使用小技巧111

    如果你想快速敲出if __name__ == '__main__':只需你敲个main 然后回车就ok了 import和from xx模块 import *的区别是前者使用时要加模块名加点,后者可以直 ...

  3. Uncaught TypeError: Cannot set property 'f7View' of undefined 错误原因

    // 添加视图var mainView = myApp.addView('.view-main', { // 因为我们要用动态的导航栏,我们需要使它的这一观点: dynamicNavbar: true ...

  4. Hadoop YARN学习之组件功能简述(3)

    Hadoop YARN学习之组件功能简述(3) 1. YARN的三大组件功能简述: ResourceManager(RM)是集群的资源的仲裁者, 它有两部分:一个可插拔的调度器和一个Applicati ...

  5. ASP.NET控件的ID,ClientID,UniqueId的区别

    一般情况下三者相同(没有父控件) ID:获取或设置分配给服务器控件的编程标识符.分配给控件的编程标识符. (可写) 设置服务器控件上的此属性可提供对服务器控件的属性.事件和方法的编程访问.Web 开发 ...

  6. Farseer.net轻量级ORM开源框架 V1.x 入门篇:表的数据操作

    导航 目   录:Farseer.net轻量级ORM开源框架 目录 上一篇:Farseer.net轻量级ORM开源框架 V1.x 入门篇:表实体类映射 下一篇:Farseer.net轻量级ORM开源框 ...

  7. OpenGL VAO, VBO 使用简介

    参照代码样例: // This function takes in a vertex, color, index and type array // And does the initializati ...

  8. STL中unique的使用

    作用 unique函数可以删除有序数组中的重复元素,即去重(并不是真正的删除,后面会讲) 定义在头文件<algorithm>中 函数原型 1.只有两个参数,且参数类型都是迭代器: iter ...

  9. shell高级用法

    参考链接: http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=218853&page=7#pid1628522

  10. CAD参数绘制多段线(网页版)

    多段线又被称为多义线,表示一起画的都是连在一起的一个复合对象,可以是直线也可以是圆弧并且它们还可以加不同的宽度. 主要用到函数说明: _DMxDrawX::PathLineTo 把路径下一个点移到指定 ...