資料庫檔案和Log檔案以及查詢資料庫資訊

2021-06-12 12:10:44 字數 2156 閱讀 6237

1、檔案與檔案組

在sql server 中資料庫是由資料庫檔案和事務日誌檔案組成的。乙個資料庫至少應包含乙個資料庫檔案和乙個事物日誌檔案。

(1) 資料庫檔案(database file)

資料庫檔案是存放資料庫資料和資料庫物件的檔案。乙個資料庫可以有乙個或多個資料庫檔案,乙個資料庫檔案只屬於乙個資料庫。當有多個資料庫檔案時,有乙個檔案被定義為主資料庫檔案(primary database file), 擴充套件名為

mdf, 它用來儲存資料庫的啟動資訊和部分或全部資料,乙個資料庫只能有乙個主資料庫檔案。其它資料庫檔案被稱為次資料庫檔案(secondary database file), 擴充套件名為

ndf, 用來儲存主檔案沒儲存的其它資料。

採用多個資料庫檔案來儲存資料的優點體現在:

資料庫檔案可以不斷擴充,而不受作業系統檔案大小的限制;

可以將資料庫檔案儲存在不同的硬碟中,這樣可以同時對幾個硬碟做資料訪問,提高了資料處理的效率。對於伺服器型的計算機尤為有用。

(2) 事務日誌檔案(transaction log file)

事務日誌檔案是用來記錄資料庫更新情況的檔案,擴充套件名為ldf。例如使用insert、update、 delete、 等對資料庫進行更的操作都會記錄在此檔案中,而如select 等對資料庫內容不會有影響的操作則不會記錄在案。乙個資料庫可以有乙個或多個事務日誌檔案。

sql server 中採用「write-ahead (提前寫)」方式的事務,即對資料庫的修改先寫入事務日誌中,再寫入資料庫。其具體操作是,系統先將更改操作寫入事務日誌中,再更改儲存在計算機快取中的資料,為了提高執行效率,此更改不會立即寫到硬碟中的資料庫,而是由系統以固定4 的時間間隔執行checkpoint 命令,將更改過的資料批量寫入硬碟。sql server 有個特點,它在執行資料更改時會設定乙個開始點和乙個結束點,如果尚未到達結束點就因某種原因使操作中斷,則在sql server 重新啟動時會自動恢復已修改的資料,使其返回未被修改的狀態。 由此可見,當資料庫破壞時,可以用事務日誌恢復資料庫內容。

(3) 檔案組(file group)

檔案組是將多個資料庫檔案集合起來形成的乙個整體。每個檔案組有乙個組名。與資料庫檔案一樣,檔案組也分為主檔案組(primary file group) 和次檔案組(secondary filegroup) 乙個檔案只能存在於乙個檔案組中,乙個檔案組也只能被乙個資料庫使用。主檔案組中包含了所有的系統表。當建立資料庫時,主檔案組包括主資料庫檔案和未指定組的其它檔案。在次檔案組中可以指定乙個預設檔案組,那麼在建立資料庫物件時如果沒有指定將其放在哪乙個檔案組中,就會將它放在預設檔案組中。如果沒有指定預設檔案組則主檔案組,為預設檔案組。

注意:事務日誌檔案不屬於任何檔案組。

用系統儲存過程顯示資料庫資訊

sql server 提供了許多很有用的系統儲存過程,可以用它們來得到許多從enterprisemanager 介面中所不易或不能看到的資訊(有關儲存過程的詳細介紹請參見「儲存過程」章節。讀者如果目前不了解儲存過程也不要緊,可以把它當作函式或命令來用)。

(1) 用系統儲存過程顯示資料庫結構

可以使用系統提供的系統儲存過程sp_helpdb 來顯示資料庫結構。

其語法如下:

sp_helpdb [[@dbname=] 'name']

使用sp_helpdb 系統儲存過程可以顯示指定資料庫的資訊。如果不指定[@dbname=]

'name'子句,則會顯示在master.dbo.sysdatabases 表中儲存的所有資料庫資訊。命令執行成

功會返回0, 否則返回1。

用系統儲存過程顯示檔案資訊

可以使用系統提供的系統儲存過程sp_helpfile 來顯示當前資料庫中的檔案資訊。其語法如下:

sp_helpfile [[@filename =] 'name']如果不指定檔名稱,則會顯示當前資料庫中所有的檔案資訊。命令執行成功會返回0, 否則返回1。

用系統儲存過程顯示檔案組資訊

可以使用系統提供的系統儲存過程sp_helpfilegroup 來顯示當前資料庫中檔案組資訊。其語法如下:

sp_helpfilegroup [[@filegroupname =] 'name']

如果不指定檔案組名稱,則會顯示當前資料庫中所有的檔案組。命令執行成功會返回0 ,否則返回1。

資料庫檔案

if exists select from mater.sysdatabases where name db 09zy drop database db 09zy go create database zy on primary name zy data filename e 09.9zy1 zy ...

資料庫 檔案

定長記錄 檔案頭維護空閒列表 變長記錄 塊頭 空閒空間 記錄 插入 在空閒空間末尾分配空間 刪除 將條目之前的全部向後移動 大物件通常儲存到特殊檔案,通過指標儲存在記錄中 引數檔案 日誌檔案 套接字檔案 通過套接字檔案,unix系統下本地連線mysql可以採用unix域套接字方式 pid檔案 mys...

mysql查詢資料庫檔案資訊 查詢資料庫資訊

select a.name 檔名稱 cast a.size 1.0 128 as decimal 12,1 as 檔案設定大小 mb cast fileproperty s.name,spaceused 8 16.0 as decimal 12,1 as 檔案所佔空間 mb cast filepro...