博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Missing Indexes in SQL Server 2005
阅读量:6083 次
发布时间:2019-06-20

本文共 3449 字,大约阅读时间需要 11 分钟。

There are several new features in SQL Server 2005. There are a few features to help find missing indexes, which are some of the very good ones. How great it will be if you know what indexes you need to create based on your workload? In SQL Server 2000, we had to use SQL Profiler trace files and Index tuning wizard. But with SQL Server 2005 DMVs, we can easily figure out what indexes we need to create which would benefit our application.

The following are the missing index DMVs ( From SQL Server 2005 BOL)

sys.dm_db_missing_index_group_stats Returns summary information about missing index groups, for example, the performance improvements that could be gained by implementing a specific group of missing indexes.
sys.dm_db_missing_index_groups Returns information about a specific group of missing indexes, such as the group identifier and the identifiers of all missing indexes that are contained in that group.
sys.dm_db_missing_index_details Returns detailed information about a missing index; for example, it returns the name and identifier of the table where the index is missing, and the columns and column types that should make up the missing index.
sys.dm_db_missing_index_columns Returns information about the database table columns that are missing an index.

Let’s see what indexes are there for table [Person.Address] table in AdventureWorks database by running this code:

 
use
AdventureWorks;
exec
sp_helpindex
[
Person.Address
]

Fig:1

 
zoom.gif   |  

I don’t see an index for ModifiedDate column for [Person.Address] table. So, to get a entry in the “sys.dm_db_missing_index_details” DMV, lets run a query like this:

Query: 1

 
select
*
from
Person.Address
where
ModifiedDate
=
'
01/01/2008
'

You may not see any results for the query above, but SQL Server internally recorded that a query was run and a index on “ModifiedDate” column would have been very useful.

Query: 2

 
select
*
from
sys.dm_db_missing_index_details:

Fig: 2

 
zoom.gif   |  

In Fig: 2, see the “equality_columns” field, which implies that a index on the [Modified Date] column is missing ( or might be helpful)

Query: 3:

 
select
db_name
(d.database_id) dbname,
object_name
(d.
object_id
) tablename, d.index_handle,
d.equality_columns, d.inequality_columns, d.included_columns, d.statement
as
fully_qualified_object, gs.
*
from
sys.dm_db_missing_index_groups g
join
sys.dm_db_missing_index_group_stats gs
on
gs.group_handle
=
g.index_group_handle
join
sys.dm_db_missing_index_details d
on
g.index_handle
=
d.index_handle
where
d.database_id
=
d.database_id
and
d.
object_id
=
d.
object_id
and
object_name
(d.
object_id
)
=
'
Address
'

Run Query 1 several times. Now, run Query: 3,

Fig: 3

New indexes

In Fig 3, notice the “user_seeks” column. So every time a query is run, for which an index might be useful, SQL Server keeps updating the missing index DMVs. This is very valuable information, based on this you can create indexes to support those queries. Isn’t this cool! Yes, SQL Server 2005 rocks!

The DMVs for missing indexes are great new features. I work with a Siebel CRM database where queries are built dynamically. So it is hard to design indexes in advance. The missing index feature helps to me create indexes for those queries that have high “user_seeks” for a particular column in a table.

For more information see “About the Missing Indexes Feature” in SQL Server 2005 Books Online.

from:

    本文转自 Fanr_Zh 博客园博客,原文链接:http://www.cnblogs.com/Amaranthus/archive/2011/04/02/2003203.html,如需转载请自行联系原作者

你可能感兴趣的文章
jquery之index()
查看>>
vmware:Cannot open the disk 'XXX' or one of the snapshot disks it depends on.
查看>>
Galgames Hgames下载中心,无毒
查看>>
SGE中将指定的job挂起
查看>>
我的友情链接
查看>>
Nagios3.2.0在CentOS5.3上安装和配置
查看>>
软件包管理 之 如何编译安装源码包软件
查看>>
ios 图片自适应屏幕 截取
查看>>
函数的重载
查看>>
提升JavaScript的加载与执行效率
查看>>
js遍历
查看>>
简明 Python 教程
查看>>
在mac下启动postgresql
查看>>
家人北京游
查看>>
EJBCA 6 配置使用
查看>>
Nagios自定义报警时间
查看>>
有过故事的那些人
查看>>
Java中的锁详解
查看>>
Java实现单链表_使用链式存储结构
查看>>
同步之条件变量sync.Cond
查看>>