SQL Server2005 -索引管理
时间:2014-12-13 22:52 来源:www.it.net.cn 作者:IT网
一、显示索引信息
在建立索引后,可以对表索引信息进行查询。
(1)在SQL Server Management Studio的“对象资源管理器”面板中,使用与创建索引同样的方法,打开索引-属性命令,即可看到该索引对应的信息。
(2)使用系统存储过程sp_helpindex查看指定表的索引信息
-
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显示查询计划。
-
USE test
-
GO
-
SET SHOWPLAN_ALL ON
-
Go
-
select * from test_table where userName='terry';
2)STSTISTICS IO
数据检索语句所花费的磁盘活动量是用户比较心的性能这一。通过设置STSTICTICS IO选项,可以使用SQL Server显示磁盘IO信息。
设置是否显示磁盘IO统计的命令为:
SET STATISTICS IO ON|OFF
-
USE test
-
GO
-
SET STATISTICS IO ON
-
GO
-
select * from test_table where userName='terry'
-
GO
下图可以看到具体的IO和CPU消耗信息:
3)使用DBCC SHOWCONTIG语句扫描表
对表进行数据操作可能会导致表碎片的产生,而表碎片会导致读取额外而,从而造成数据查询性能的降低,此时,用户可以通过使用DBCC SHOWCONTIG语句来扫描表,并通过其返回值确定该索引页是否已经严重不连续。
在返回的统计信息中,需要注意扫描密度,其理想值为100%,如果比较低,就需要清理表上的碎片。
-
DBCC SHOWCONTIG (test_table,name)
4)使用DBCC INDEXFRAG语句进行碎片整理
当表或视图上的聚焦索引和非聚焦索引页级上存在碎片时,可以通过DBCC INDEXFRAG对其进行碎片整理。
-
dbcc indexdefrag(test,test_table,name)
(责任编辑:IT)
一、显示索引信息 在建立索引后,可以对表索引信息进行查询。 (1)在SQL Server Management Studio的“对象资源管理器”面板中,使用与创建索引同样的方法,打开索引-属性命令,即可看到该索引对应的信息。
(2)使用系统存储过程sp_helpindex查看指定表的索引信息
二、索引的分析 建立索引的目的是希望提高数据库数据检索的速度,如果利用索引查询的速度还不如扫描表的速度,SQL Server就会采用扫描表而不是通过索引的方法来检索数据,因此,在建立索引后,应该根据应用系统的需要,也就是实际可能出现哪些数据检索,来对查询进行分析,以判定其是否能提高SQL Server的数据检索速度。 SQL Server提供了多种分析索引和查询性能的方法,下面介绍常用的SHOWPLAN_ALL和STATISTICS IO两种命令: 1)SHOWPLAN_ALL: 显示查询计划是SQL Server将显示在执行查询的过程中连接表时所采取的每个步骤,以及是否选择及选择了哪个索引,从而帮助用户分析有哪些索引被系统采用。 通过在查询语句中设置SHOWPLAN_ALL选项,可以选择是否让SQL Server显示查询计划。
2)STSTISTICS IO 数据检索语句所花费的磁盘活动量是用户比较心的性能这一。通过设置STSTICTICS IO选项,可以使用SQL Server显示磁盘IO信息。 设置是否显示磁盘IO统计的命令为: SET STATISTICS IO ON|OFF
下图可以看到具体的IO和CPU消耗信息:
3)使用DBCC SHOWCONTIG语句扫描表 对表进行数据操作可能会导致表碎片的产生,而表碎片会导致读取额外而,从而造成数据查询性能的降低,此时,用户可以通过使用DBCC SHOWCONTIG语句来扫描表,并通过其返回值确定该索引页是否已经严重不连续。 在返回的统计信息中,需要注意扫描密度,其理想值为100%,如果比较低,就需要清理表上的碎片。
4)使用DBCC INDEXFRAG语句进行碎片整理 当表或视图上的聚焦索引和非聚焦索引页级上存在碎片时,可以通过DBCC INDEXFRAG对其进行碎片整理。
(责任编辑:IT) |