我有大約300個位於不同分區的表,現在這些表沒有用於如此龐大的數據。現在,我得到空間問題時間,一些有價值的空間被爲這些表創建的150個文件組佔據,所以我想將表的文件組更改爲任何一個而不是150 FG,並通過刪除這些文件組來釋放空間。這些表格現在不包含任何數據,但定義了許多約束和索引。改變表的文件組的有效方法
能否請您提出建議,如何有效完成?
我有大約300個位於不同分區的表,現在這些表沒有用於如此龐大的數據。現在,我得到空間問題時間,一些有價值的空間被爲這些表創建的150個文件組佔據,所以我想將表的文件組更改爲任何一個而不是150 FG,並通過刪除這些文件組來釋放空間。這些表格現在不包含任何數據,但定義了許多約束和索引。改變表的文件組的有效方法
能否請您提出建議,如何有效完成?
我發現改變FG組現有表的方式幾個信息:
1-定義使用NEW_FG每個對象聚集索引(文中提到的@under答案)
CREATE UNIQUE CLUSTERED INDEX <INDEX_NAME> ON dbo.<TABLE_NAME>(<COLUMN_NAME>) ON [FG_NAME]
2 - 如果我們不能定義聚集索引,然後複製表和數據結構到新表,刪除舊,並重新命名新老如下
更改數據庫的默認FG到NEW_FG使每個表都可以使用INTO創建新FG默認
ALTER DATABASE <DATABASE> MODIFY FILEGROUP [FG_NAME] DEFAULT
IF OBJECT_ID('table1') IS NOT NULL
BEGIN
SELECT * INTO table1_bkp FROM table1
DROP TABLE table1
EXEC sp_rename table1_bkp, table1
END
所有操作數據庫的默認FG後的前
ALTER DATABASE <DATABASE> MODIFY FILEGROUP [PRIMARY] DEFAULT
3- DROP TABLE如果可行的話,然後再次使用NEW_FG
創建DROP TABLE table1
CREATE TABLE [table1] (
id int,
name nvarchar(50),
--------
) ON [NEW_FG]
的可能的複製[如何將表移動到另一個文件組?](http://stackoverflow.com/questions/2438019/how-i-can-move-table-to-another-filegroup) – under
讓我檢查鏈接。 – Susang