資料庫檔案
SQL Server 使用三種不同的檔案儲存你的資料:
- MDF ( 主要資料檔 ):只可以有一個,可用來儲存各種資料,包括表格、索引、以及資料等。
- NDF ( 次要資料檔 ):可以有多個,由使用者自訂,功能跟 MDF 一樣,主要用以將資料分散在不同磁碟上。
- LDF ( 交易記錄檔 ):儲存所有資料檔的歷史變更紀錄,也可以設定多個。
檔案群組
- 每個資料庫都至少有一個檔案群組,預設的檔案群組名稱為 PRIMARY 。
- 每個檔案群組都可以包含數個資料檔。
- 主要資料檔只能位於 PRIMARY 檔案群組
例如,您可以將三個檔案 (Data1.ndf、Data2.ndf、Data3.ndf) 分別建立於三台磁碟機內,並將它們指派至檔案群組 fgroup1。 接著您可根據檔案群組 fgroup1 來建立資料表。 這樣資料表的資料查詢就可分散至三個磁碟,藉此改善效能。 另一個改善效能的作法是將單一檔案建立在 RAID (磁碟陣列) 的條狀磁碟組上。
分割資料表
當一個資料表中的資料很多時,你也可以將資料表切割成不同的分割區(partition)。 不同的分割區可以使用同一個檔案群組,也可以使用不同的檔案群組。若要使用不同的檔案群組,必須先建立分割配置(partition scheme)。
如何刪除次要資料檔
如何查詢各資料檔的使用情形
SELECT FILEID, [FILE_SIZE_MB] = CONVERT(DECIMAL(12,2),ROUND(size/128.000,2)), [SPACE_USED_MB] = CONVERT(DECIMAL(12,2),ROUND(FILEPROPERTY(name,'SpaceUsed')/128.000,2)), [FREE_SPACE_MB] = CONVERT(DECIMAL(12,2),ROUND((size-FILEPROPERTY(name,'SpaceUsed'))/128.000,2)), [NAME] = left(NAME,15), [FILENAME] = left(FILENAME,30) FROM dbo.sysfiles
刪除次要資料檔
要刪除次要資料檔,必須依以下步驟執行。
-- 1. Empty the data file. DBCC SHRINKFILE('ndf_file_name', EMPTYFILE); -- 2. Remove the data file from the database. ALTER DATABASE database_name REMOVE FILE ndf_file_name;
範例:
Backup Database TestDB to TestDB_BackupDevice With Init DBCC SHRINKFILE('Test2', EMPTYFILE) ALTER DATABASE TestDB REMOVE FILE Test2
沒有留言:
張貼留言