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. Codeforces Round #318 [RussianCodeCup Thanks-Round] (Div. 2)

    以后每做完一场CF,解题报告都写在一起吧   暴力||二分 A - Bear and Elections 题意:有n个候选人,第一个候选人可以贿赂其他人拿到他们的票,问最少要贿赂多少张票第一个人才能赢 ...

  2. 构造 HDOJ 5400 Arithmetic Sequence

    题目传送门 题意:问有多少个区间,其中存在j使得ai + d1 == ai+1(i<j) && ai + d2 == ai+1 (i>j) 构造:用c1[i], c2[i] ...

  3. PHP获取今天内的时间 今天开始和结束的时间戳

    $t = time(); $start = mktime(0,0,0,date("m",$t),date("d",$t),date("Y", ...

  4. 题解报告:hdu 1171 Big Event in HDU(多重背包)

    Problem Description Nowadays, we all know that Computer College is the biggest department in HDU. Bu ...

  5. 45 个非常有用的 Oracle 日期查询语句

    日期/时间 相关查询 获取当前月份的第一天 运行这个命令能快速返回当前月份的第一天.你可以用任何的日期值替换 “SYSDATE”来指定查询的日期. SELECT TRUNC (SYSDATE, 'MO ...

  6. 关于使用myeclipse搭建tomcat环境运行web项目的方法

    这两天准备改同事的一个系统的自适应,然而我没想到的是我竟然在打开这个项目上就遇到了困难,真的是too young too simple,究其根本就是了解的太少了,于是为了我不忘记,用博客的方式把它记录 ...

  7. Bmob使用心得

    1.在 Project 的 build.gradle 文件中添加 Bmob的maven仓库地址,示例如下:(注意文字说明部分): allprojects { repositories { jcente ...

  8. ScrollView嵌套GridView,GridView显示不全

    最近开发有个需求是以A-Z的方式区分全国城市(搜索功能),并实现字母索引的功能(有点类似微信,不过比较坑的是用的是GridView, 并且GridView上面还有几个LinearLayout). 详细 ...

  9. vue热重载

    依据官网使用 webpack 的 Hot Module Replacement API,Vuex 支持在开发过程中热重载 mutation.module.action 和 getter.你也可以在 B ...

  10. Relational Algebra 关系代数

    Relational Algebra Relational Algebra is the mathematical basis for the query language SQL Introduct ...