萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> 數據庫綜合 >> 修復數據庫索引問題

修復數據庫索引問題

現定在的信息社會,大量的數據信息被使用,在數據庫中運用索引可快速訪問數據庫表中的特定信息,所以了解修復數據庫索引變得尤為重要。

在一個數據庫上創建索引會給數據庫帶來負面影響。當對表執行插入、更新和刪除操作時,您就會看到這個性能的負面影響。您對表每作一次修改,包含這些修改記錄的索引都必須更新,以符合最新的修改。

使用過濾索引後,需要更新的索引變少了。然而,包含這些記錄的索引仍然需要在記錄修改時進行更新。

因為這些操作必須在每一次數據修改時進行,您應該把數據庫中不用於查詢數據的索引刪除。這樣可以減少數據庫的I/O需求和數據庫的大小。

為了查找不使用的索引,可以使用如下所示的查詢語句去查詢sys.dm_db_index_usage_stats動態管理視圖。

SelectOBJECT_NAME(sys.indexes.object_id) TableName,

sys.indexes.name,

sys.dm_db_index_usage_stats.user_seeks,

sys.dm_db_index_usage_stats.user_scans,

sys.dm_db_index_usage_stats.user_lookups,

sys.dm_db_index_usage_stats.user_updates

fromsys.dm_db_index_usage_stats

joinsys.indexesonsys.dm_db_index_usage_stats.object_id=sys.indexes.object_id

ANDsys.dm_db_index_usage_stats.index_id =sys.indexes.index_id

ANDsys.indexes.name notlike‘PK%’

ANDOBJECT_NAME(sys.indexes.object_id)<>‘sysdiagrams’

wheresys.dm_db_index_usage_stats.database_id =DB_ID()

and user_scans = 0

and user_scans = 0

and user_lookups = 0

and user_seeks = 0

andsys.dm_db_index_usage_stats.index_id NOTIN(0,1)

ORDERBYOBJECT_NAME(sys.indexes.object_id),

sys.indexes.name

創建文件組

提高索引性能的一個重要方法是創建一個或多個文件組,以存儲非聚簇索引。只有非聚簇索引能夠與索引所對應的表可以存儲在不同的文件組中。如果您想要在與表不同的文件組中創建一個聚簇索引,不管它是否基於主鍵,SQL Server都會將表移動到這個新的文件組中。

將非聚簇索引與基本表分離可以將索引的存儲和I/O需求從索引對應的表轉移到其他文件組中,可以減少您對索引修改操作的時間。雖然在您的數據庫中使用多個文件組會增加數據庫的管理負載,但是最終這個改進是值得的。

當為第二個文件組創建物理文件時,一定要將文件保存到另一組物理磁盤上,這樣工作負載才能實際上轉到不同的區域。如果兩個物理文件都存儲於同一個物理區域,那麼即使您能獲得一些性能提升,這個提高也不會很大。

以上就是精品為您准備的修復數據庫索引問題關於的信息,希望對您的生活工作有幫助,祝您生活愉快。

copyright © 萬盛學電腦網 all rights reserved