Sql-Server
sql數據庫中的數據大小可以小於索引大小嗎?
SQL Server 表上的索引是否會比表本身消耗更多的磁碟空間?
我已經閱讀了幾篇文章並研究了這個和一些專家推薦的表分區,例如,這個 MSDN 論壇問題
為什麼和索引可以比實際數據更大?
如何減小索引大小?
在這種情況下如何辨識不必要的索引?
一個完全有效的表設置可能是:
CREATE TABLE dbo.A ( a int NOT NULL , b varchar(30) NOT NULL , c varchar(30) NOT NULL ); CREATE INDEX A_01 ON dbo.A (a, b); CREATE INDEX A_02 ON dbo.A (a, c); CREATE INDEX A_03 ON dbo.A (a, c, b);
很明顯,索引使用的總空間將超過表本身使用的空間。
索引空間總量可能高於表本身使用的總量的原因有很多。立即想到的幾個:
- 粗心地選擇了我們“索引所有內容”的索引策略。
- 數據庫引擎優化顧問推薦的每一個索引的實現
- 對主要只讀工作負載(例如數據倉庫)上的許多查詢組合提高查詢速度。
如果您在問題中提供表定義以及所有現有索引,在 T-SQL
CREATE TABLE
語句中,我們可能會提出改進建議。