Sql-Server
將所有堆表移動到 SQL Server 中的另一個文件組
在 SQL Server 2017 中,我想將數據庫中的所有堆移動到輔助文件組。最簡單的方法是什麼?
此問題僅適用於非聚集索引。
在優化舊的遺留數據庫的過程中。
- 我想編寫一個腳本來移動所有帶有游標循環的堆表,類似於上面的 Stack Overflow 連結。
據我所知,您有兩種選擇:
- 物理移動數據。在輔助文件組中創建一個新的空堆/複製數據/重命名對象,隱式事務中的所有內容。並且不要忘記編寫索引、約束等腳本。
- 在輔助文件組中創建聚集索引,然後將其刪除。
我更喜歡第一個選項。
以下解決方案有助於實現目標:-
- 在表上創建一個聚集索引並提及將其移動到輔助文件組。請參閱下面的連結以供參考。 https://www.mssqltips.com/sqlservertip/2442/move-data-between-sql-server-database-filegroups/
- 在輔助文件組中創建另一個具有相同列的表。以塊的形式將數據從一個表複製到另一個表以優化性能。這會將數據複製到輔助文件分配單元中。然後刪除第一個表並重命名輔助表。如果表有依賴關係,可能會有一些步驟。