SQL Server 索引管理

2022-06-08 12:54:16 字數 1693 閱讀 5506

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 維護管理系列(文章索引)

資料庫的維護其實包括很多方面,使用者許可權 資料備份等,這方面的積累也是必不可少的,所以這裡把一些常用的的維護進行一些總結,這些文章的特點就是我會使用比較多的進行說明,大家看起來會比較直觀。sql server 資料庫帳號密碼生成 sql server 維護計畫實現資料庫備份 sql server ...

SQL Server索引管理六大鐵律

索引是以表列為基礎的資料庫物件。索引中儲存著表中排序的索引列,並且紀錄了索引列在資料庫表中的物理儲存位置,實現了表中資料的邏輯排序。通過索引,可以加快資料的查詢速度和減少系統的響應時間,可以使表和表之間的連線速度加快。但是,不是在任何時候使用索引都能夠達到這種效果。若在不恰當的場合下,使用索引反而會...

SQL Server自動索引和統計資訊管理

微軟在github上提供了乙個指令碼,用於自動管理索引和統計資訊。位址 支援sql server 2005 sp2及之後的版本。注 不保證可以在sql server 2005版本中正常執行。安裝 直接在ssms中執行指令碼即可。如 由於指令碼太長,需要看指令碼內容的朋友自己去網上檢視 輸出資訊 dr...