SQL Server架構 資料庫檔案和檔案組

2022-07-16 15:48:14 字數 1125 閱讀 1901

結構圖:

資料檔案包含資料和物件,例如表、索引、儲存過程和檢視。

日誌檔案包含恢復資料庫中的所有事務所需的資訊 

事務日誌檔案儲存用於恢復資料庫的日誌資訊。每個資料庫必須至少有乙個日誌檔案。

舉個簡單例子,我們可以建立乙個簡單的資料庫sales,其中包括乙個包含所有資料和物件的主要檔案和乙個包含事務日誌資訊的日誌檔案。也可以建立乙個更複雜的資料庫orders,其中包括乙個主要檔案和五個次要檔案。資料庫中的資料和物件分散在所有六個檔案中,而四個日誌檔案包含事務日誌資訊。

預設情況下,資料和事務日誌被放在同乙個驅動器上的同乙個路徑下。這是為處理單磁碟系統而採用的方法。但是,在生產環境中,這可能不是最佳的方法。建議將資料和日誌檔案放在不同的磁碟上。

每個資料庫有乙個主要檔案組。此檔案組包含主要資料檔案和未放入其他檔案組的所有次要檔案。可以建立使用者定義的檔案組,用於將資料檔案集合起來,以便於管理、資料分配和放置。

例如,可以分別在三個磁碟驅動器上建立三個檔案 data1.ndf、data2.ndf 和 data3.ndf,然後將它們分配給檔案組fgroup1。然後,可以明確地在檔案組fgroup1上建立乙個表。對錶中資料的查詢將分散到三個磁碟上,從而提高了效能。通過使用在 raid(獨立磁碟冗餘陣列)條帶集上建立的單個檔案也能獲得同樣的效能提高。但是,檔案和檔案組使您能夠輕鬆地在新磁碟上新增新檔案。

下表列出了儲存在檔案組中的所有資料檔案。

檔案組

說明

主要包含主要檔案的檔案組。所有系統表都被分配到主要檔案組中。

使用者定義

使用者首次建立資料庫或以後修改資料庫時明確建立的任何檔案組。

如果在資料庫中建立物件時沒有指定物件所屬的檔案組,物件將被分配給預設檔案組。不管何時,只能將乙個檔案組指定為預設檔案組。預設檔案組中的檔案必須足夠大,能夠容納未分配給其他檔案組的所有新物件。

primary 檔案組是預設檔案組,除非使用 alter database 語句進行了更改。但系統物件和表仍然分配給 primary 檔案組,而不是新的預設檔案組。

NULL在SQLServer資料庫資料檔案中的儲存

這個對於定長和不定長欄位來說是兩個結果 定長字段null要佔足字段空間,不定長字段則不佔空間,兩者都是通過null bitmap來確認行資料中的null列。這個很容易用事實表的大小來驗證。其具體儲存機制還是需要dbcc來檢視資料頁。我們分幾種情況檢視 定長測試 建立測試環境 create datab...

NULL在SQLServer資料庫資料檔案中的儲存

這個對於定長和不定長欄位來說是兩個結果 定長字段null要佔足字段空間,不定長字段則不佔空間,兩者都是通過null bitmap來確認行資料中的null列。這個很容易用事實表的大小來驗證。其具體儲存機制還是需要dbcc來檢視資料頁。我們分幾種情況檢視 定長測試 建立測試環境 create datab...

Sql Server資料庫角色和架構

伺服器角色 db owner 在資料庫中執行任何操作 db accessadmin 從資料庫中增加或刪除使用者 db backupopperator 允許備份資料庫 db datareader 允許從任何表中讀取資料 db datawriter 允許網任何表中寫入資料 db ddladmin 允許增...