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...