自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

使用SQL Server動(dòng)態(tài)管理視圖的方法

數(shù)據(jù)庫(kù) SQL Server
SQL Server可以通過動(dòng)態(tài)管理視圖確認(rèn)缺失索引,下文對(duì)該方法的實(shí)現(xiàn)過程作了詳盡的闡述,如果您感興趣的話,不妨一看。

我們可以使用SQL Server動(dòng)態(tài)管理視圖確認(rèn)缺失索引,下面就對(duì)這種SQL Server動(dòng)態(tài)管理視圖的方法作詳細(xì)的介紹,供您參考。

由于有了很多新功能,我們可以看到在SQL Server 2005和現(xiàn)在有SQL Server 2008中,Microsoft引進(jìn)了一些動(dòng)態(tài)管理視圖來協(xié)助確認(rèn)基于查詢歷史的可能索引候選人。

這些動(dòng)態(tài)管理視圖是:

n sys.dm_db_missing_index_details –返回關(guān)于缺失索引的詳細(xì)信息。

n sys.dm_db_missing_index_group_stats - 返回缺失索引組的摘要信息

n sys.dm_db_missing_index_groups – 返回一個(gè)具體組的缺失索引的信息。

n sys.dm_db_missing_index_columns(index_handle) – 返回在一個(gè)索引中缺失的數(shù)據(jù)庫(kù)表列的信息。這是一個(gè)函數(shù),它要求傳遞index_handle。

和大多數(shù)動(dòng)態(tài)管理視圖的跟蹤統(tǒng)計(jì)數(shù)據(jù)一樣,當(dāng)SQL Server實(shí)例重啟,這些數(shù)據(jù)被完全清除時(shí),這些工作方式基本上是一樣的。所以如果你在一個(gè)測(cè)試環(huán)境中工作并且重啟你的SQL Server實(shí)例,那么這些視圖有可能不返回?cái)?shù)據(jù)。

為了啟動(dòng),我們將使用一個(gè)從SQL Server 2005聯(lián)機(jī)幫助中得到的實(shí)例,這要求從AdventureWorks數(shù)據(jù)庫(kù)中查詢一張表而在StateProvinceID上沒有索引,如下所示:

  1.  USE AdventureWorks;  
  2. GO  
  3. SELECT City, StateProvinceID, PostalCode  
  4. FROM Person.Address  
  5. WHERE StateProvinceID = 1;  
  6. GO 

一旦我們運(yùn)行了上面的查詢,數(shù)據(jù)在動(dòng)態(tài)管理視圖中應(yīng)該可用。讓我們來快速看下每一個(gè)查詢。

第一個(gè)查詢從sys.dm_db_missing_index_details視圖中獲取數(shù)據(jù)。這可能是最有用的一個(gè)查詢,因?yàn)檫@給我們展示了 object_id、equality_columns 和inequality_columns。另外,我們可以得到關(guān)于所含列的其它具體信息。

  1. SELECT * FROM sys.dm_db_missing_index_details 

 

使用SQL Server動(dòng)態(tài)管理視圖確認(rèn)缺失索引

圖一

所以從上面我們執(zhí)行的查詢中,我們可以看到下面的信息:

n equality_columns = "StateProvinceID",這是因?yàn)檫@個(gè)字段和一個(gè)相等運(yùn)算符在WHERE從句中使用。所以SQL Server告訴我們這將是針對(duì)索引的很好的選擇。

n inequality_columns = "NULL",如果你使用其它的運(yùn)算符比如不相等,那么這個(gè)字段將會(huì)有數(shù)據(jù),但是由于我們使用等號(hào),因此沒有一個(gè)字段將在這里使用。

n included_columns =這是當(dāng)創(chuàng)建一個(gè)索引時(shí)使用的其它字段。由于這個(gè)查詢只使用City、StateProvinceID 和 PostalCode,因此StateProvinceID將在索引中得到處理,當(dāng)該索引創(chuàng)建時(shí),其它兩個(gè)字段可能被用作內(nèi)嵌的字段。

下一個(gè)索引從sys.dm_db_missing_index_group_stats中獲取數(shù)據(jù)。這個(gè)查詢使我們更了解其他統(tǒng)計(jì)數(shù)據(jù),例如編譯,用戶查找, 用戶掃描等,所以從這里我們可以知道這個(gè)查詢多久會(huì)被訪問。如果我們創(chuàng)建一個(gè)基于這些信息的新索引,這將幫助我們確定多久使用一個(gè)索引可以獲得數(shù)據(jù)。

  1. SELECT * FROM sys.dm_db_missing_index_group_stats 

由于這個(gè)查詢我們只執(zhí)行了一次,因此我們的unique_compiles = 1 ,我們的 user_seeks = 1。如果我們?cè)俅芜\(yùn)行這個(gè)查詢,我們的user_seeks應(yīng)該會(huì)增加。

使用SQL Server動(dòng)態(tài)管理視圖確認(rèn)缺失索引

圖二

下一個(gè)視圖sys.dm_db_missing_index_groups將會(huì)給我們提供index_group_handle 和 index_handle的信息。

  1. SELECT * FROM sys.dm_db_missing_index_groups 

使用SQL Server動(dòng)態(tài)管理視圖確認(rèn)缺失索引

圖三

從上面查詢得到的結(jié)果基本上將用于從sys.dm_db_missing_index_columns函數(shù)中獲得數(shù)據(jù)。index_handle值被傳遞到下一個(gè)查詢,如下圖所示。

  1. SELECT * FROM sys.dm_db_missing_index_columns(1) 

使用SQL Server動(dòng)態(tài)管理視圖確認(rèn)缺失索引

圖四

要得到在一個(gè)結(jié)果集顯示的所有數(shù)據(jù),下面從SQL Server 2005聯(lián)機(jī)幫助中得到的查詢將為我們提供這些數(shù)據(jù)。

  1. SELECT mig.*, statement AS table_name,  
  2. column_id, column_name, column_usage  
  3. FROM sys.dm_db_missing_index_details AS mid  
  4. CROSS APPLY sys.dm_db_missing_index_columns (mid.index_handle)  
  5. INNER JOIN sys.dm_db_missing_index_groups AS mig ON mig.index_handle = mid.index_handle  
  6. ORDER BY mig.index_group_handle, mig.index_handle, column_id; 

使用SQL Server動(dòng)態(tài)管理視圖確認(rèn)缺失索引

圖五

總結(jié)

n 基于這個(gè)例子我們可以看到,我們可以在表AdventureWorks.Person.Address的字段StateProvinceID上創(chuàng)建一個(gè)新索引,也可以包括columns City和PostalCode。

n 要注意的是當(dāng)你在一張表中增加或者刪除索引時(shí),缺失索引的所有統(tǒng)計(jì)數(shù)據(jù)將在這張表中完全清除。

n 盡管這可能不是完美的,也存在一些局限,但是這至少讓我們了解了之前使用SQL Server舊版本時(shí)從來不知道的信息。

 

 

 

 

【編輯推薦】

SQL Server資源鎖模式大全

SQL Server查詢結(jié)果集中的常量

sql server查詢平均值的實(shí)現(xiàn)

SQL Server FROM子句的語法

SQL Server查詢累計(jì)值的實(shí)現(xiàn)

責(zé)任編輯:段燃 來源: 互聯(lián)網(wǎng)
相關(guān)推薦

2010-11-12 11:19:19

SQL Server視

2010-11-11 17:15:13

SQL Server視

2011-03-29 15:27:26

SQL Server 動(dòng)態(tài)管理

2010-11-12 11:44:37

SQL Server刪

2010-09-27 09:54:26

Sql Server視

2011-04-02 17:21:29

sql server視圖

2010-09-13 11:09:34

SQL SERVER分

2010-07-07 09:02:30

SQL Server內(nèi)

2010-11-11 17:20:51

SQL Server創(chuàng)

2010-11-08 09:59:22

SQL Server動(dòng)

2011-03-21 15:10:13

SQL Server 視圖*

2010-07-14 10:11:30

SQL Server系

2011-03-21 10:26:10

SQL Server視圖管理

2010-11-12 11:36:29

SQL Server視

2011-04-02 13:37:05

SQL Server 索引視圖

2010-07-19 09:31:53

SQL Server系

2010-07-12 10:34:58

SQL Server視

2010-11-11 16:59:59

SQL Server視

2010-07-07 13:18:13

SQL Server視

2010-07-19 16:36:13

SQL Server視
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)