我不能爲我的生活還記得那些SQL(SQL服務器2005 +)是刪除後緊湊指標即SQL緊湊型指數刪除後
PK Identity col1 col2
1 abc def
3 abc def
ID 2被刪除了 - 什麼的命令基本上緊湊的指標,同時保持引用完整性(有一個行語句)
謝謝,(我知道我要去「面掌」當我看到答案)
我不能爲我的生活還記得那些SQL(SQL服務器2005 +)是刪除後緊湊指標即SQL緊湊型指數刪除後
PK Identity col1 col2
1 abc def
3 abc def
ID 2被刪除了 - 什麼的命令基本上緊湊的指標,同時保持引用完整性(有一個行語句)
謝謝,(我知道我要去「面掌」當我看到答案)
中的術語SQL是Reorganizing and Rebuilding Indexes,每個命令的命令是:
ALTER INDEX REORGANIZE
和
ALTER INDEX REBUILD
但是按照對鏈接開行「的SQL Server 2005數據庫引擎會自動維護,只要插入,更新或刪除操作對基礎數據進行的指標。」所以就把它留給服務器吧。
+1:它不是磁盤空間... – Pleun
除非你真的熱衷於最小化磁盤空間,否則不要這樣做,但也許你正在使用快遞並接近大小限制?
無論如何,這樣你可以壓縮你的數據庫:
DBCC SHRINKFILE
(
{ file_name | file_id }
{ [ , EMPTYFILE ]
| [ [ , target_size ] [ , { NOTRUNCATE | TRUNCATEONLY } ] ]
}
)
[ WITH NO_INFOMSGS ]
這不會壓縮索引。 –
就像我說的,看起來(也看Marc的評論)OP正在尋找磁盤空間,而不是尋找新的索引。這將有助於解決磁盤空間問題,因爲我明確寫了這樣的downvoting有點過早,然後他回答我對原始問題的評論 – Pleun
我不同意http://meta.stackexchange.com/q/112659/153199 –
SQL服務器通常重用缺失自動釋放磁盤空間 - 在需要時。這通常不是一個好主意(也不是真的需要)來「壓縮」數據庫或索引文件 - 只是讓它成爲 - SQL Server將重用空間 –
您是否擔心磁盤空間或只是一個更清潔的索引? – Pleun
我並不十分擔心磁盤空間 - 我只是想要一種方法來壓縮身份索引,比如在數百萬次刪除(從現在起很長一段時間)之後,以便我們使用更少的int可用值。從下面的鏈接和我的記憶(最好是明顯有缺陷)我相信ALTER INDEX重建是我承諾過的後面的一行......「FACE-PALM」 –