本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
新增和平衡資料檔案
EnterpriseOne 提供的 SQL Server 資料庫通常可以從其他檔案中受益。其他檔案可讓儲存核心與處理器核心達到最佳平衡。平衡檔案是一個多步驟程序。其中許多步驟都需要對資料庫物件的獨佔存取權,因此必須讓 EnterpriseOne 和存取資料庫的其他系統離線。
完成檔案大小計算
若要查找資料庫檔案的適當大小,請先使用下列查詢來檢查目前 ROW 資料的大小。
USE JDE_PRIST920 SELECT SUM(CAST(FILEPROPERTY(name, 'SpaceUsed') AS INT)/128.0) AS SpaceUsedMB FROM sys.database_files WHERE type IN (0,1) AND type_desc = 'ROWS'
然後完成以下計算並填寫您的值欄位:
折線圖 | 名稱 | 範例 | 您的值 | 描述 |
---|---|---|---|---|
1 | 目前的資料列大小 | 1 TB | 上一個查詢的結果。 | |
2 | 規劃的增長 | 20% | 未來幾個月的預期增長,包括安全邊際。 | |
3 | 所需尺寸 | 1.2 TB | 第 1 行乘以第 2 行。 | |
4 | 檔案數目 | 8 | 目標檔案數目。 | |
5 | 每個檔案大小 | 150 GB | 第 3 行除以第 4 行。 | |
6 | 自動增長百分比 | 10% | 自動增長的大小。對於最小的分段,10% 是一個很好的目標。 | |
7 | 自動增長大小 | 15 GB | 第 5 行乘以第 6 行。 |
建立新檔案
使用下列指令碼做為範本,將檔案新增至資料庫。修改下列參數:
-
將
JDE-PRIST920
變更為要向其中新增檔案的資料庫名稱。 -
對於
NAME
,請指定要新增之每個檔案的邏輯名稱。 -
對於
FILENAME
,請指定要新增之每個檔案的實體名稱。 -
對於
FILEGROWTH
,請使用上一個表格第 7 列計算出的值。 -
對於
SIZE
,指定上一個表格第 5 列中的值。
USE master; GO ALTER DATABASE JDE_PRIST920 MODIFY FILE (NAME = JDE_PRIST920_Data, FILEGROWTH = 15GB); GO ALTER DATABASE JDE_PRIST920 ADD FILE (NAME = JDE_PRIST920_Data2, FILENAME = 'M:\DATA\PRIST920_Data2.ndf', SIZE=150GB, FILEGROWTH = 15GB), (NAME = JDE_PRIST920_Data3, FILENAME = 'M:\DATA\PRIST920_Data3.ndf', SIZE=150GB, FILEGROWTH = 15GB), (NAME = JDE_PRIST920_Data4, FILENAME = 'M:\DATA\PRIST920_Data4.ndf', SIZE=150GB, FILEGROWTH = 15GB), (NAME = JDE_PRIST920_Data5, FILENAME = 'M:\DATA\PRIST920_Data5.ndf', SIZE=150GB, FILEGROWTH = 15GB), (NAME = JDE_PRIST920_Data6, FILENAME = 'M:\DATA\PRIST920_Data6.ndf', SIZE=150GB, FILEGROWTH = 15GB), (NAME = JDE_PRIST920_Data7, FILENAME = 'M:\DATA\PRIST920_Data7.ndf', SIZE=150GB, FILEGROWTH = 15GB), (NAME = JDE_PRIST920_Data8, FILENAME = 'M:\DATA\PRIST920_Data8.ndf', SIZE=150GB, FILEGROWTH = 15GB), (NAME = JDE_PRIST920_TEMP, FILENAME = 'M:\DATA\PRIST920_TEMP.ndf', SIZE=150GB, FILEGROWTH = 15GB) GO
暫時清空 MDF 檔案
建立檔案後,請針對每個檔案執行下列命令,將資料從 MDF 檔案遷移至 NDF 檔案。調整檔案名稱以反映資料庫中的檔案名稱。
USE JDE_PRIST920 DBCC SHRINKFILE (JDE_PRIST920_Data, EMPTYFILE)
EMPTYFILE
命令會產生錯誤,因為某些內容無法移動到 NDF 檔案。可以忽略此錯誤訊息。

調整 MDF 檔案的大小
若要將 MDF 檔案大小縮減為目標大小,請執行以下命令。調整檔案大小以反映表格中第 5 列計算的值。
JDE_PRIST920 DBCC SHRINKFILE (JDE_PRIST920_Data, 150000);
有時,由於放置了無法移至 NDF 檔案的內容,SHRINKFILE
命令會失敗。在這種情況下,可能需要執行 DBCC DBREINDEX
命令,重新執行該程序來清空檔案,然後再次嘗試 SHRINKFILE
操作。
清除
已建立目標檔案並且正確調整 MDF 檔案大小後,請使用以下命令將資料從 TEMP 檔案遷回 MDF 檔案。調整檔案名稱以反映資料庫中的檔案名稱。
DBCC SHRINKFILE (JDE_PRIST920_TEMP, EMPTYFILE)
若檔案為空,請使用以下命令來移除它:
ALTER DATABASE JDE_PRIST920; REMOVE FILE JDE_PRIST920_TEMP;
驗證結果
若要在平衡後檢查資料庫的當前磁碟空間使用率,請執行以下指令碼。
USE JDE_PRIST920 SELECT DB_NAME() AS DbName, type_desc, CAST(FILEPROPERTY(name, 'SpaceUsed') AS INT)/128.0 AS SpaceUsedMB FROM sys.database_files WHERE type IN (0,1) AND type_desc = 'ROWS'; SELECT SUM(CAST(FILEPROPERTY(name, 'SpaceUsed') AS INT)/128.0) AS TotalSpaceUsedMB FROM sys.database_files WHERE type IN (0,1) AND type_desc = 'ROWS'
輸出格式應類似以下內容。檔案很少會完全平衡,因為某些內容只能存在於 MDF 檔案中。
