資料庫相關的語法
--CREATE DATABASE CREATE DATABASE [ABC] ON PRIMARY ( /*資料檔*/ NAME = N'AAA', /*邏輯名稱*/ FILENAME = N'D:\Database\AAA.mdf' , /*檔案路徑*/ SIZE = 3072KB , /*初始大小*/ MAXSIZE = UNLIMITED, /*檔案限制*/ FILEGROWTH = 1024KB /*檔案成長大小*/ ) LOG ON ( /*記錄檔*/ NAME = N'AAA_log', FILENAME = N'D:\Database\AAA_log.ldf' , SIZE = 1024KB , MAXSIZE = 2048GB , FILEGROWTH = 10% ) --修改資料庫名稱 EXEC sp_rename 'ABC', 'ABCDE', 'DATABASE' --查詢資料庫邏輯名稱, 檔案路徑, 初始大小, 檔案限制, 檔案成長大小 EXEC sp_helpdb 'ABCDE' --修改資料庫邏輯名稱 Alter DataBASE [ABCDE] MODIFY FILE(NAME= 'AAA' ,NEWNAME= 'ABCDE' ) Alter DataBASE [ABCDE] MODIFY FILE(NAME= 'AAA_log', NEWNAME= 'ABCDE_log' )
與資料庫物件相關的指令
- sp_spaceused :查詢資料庫或資料表的使用情形
- sp_helpdb :查詢資料庫的相關資訊
- sp_helpfile :查詢資料庫檔案的相關資訊
- sys.dm_db_index_physical_stats :
sp_spaceused : 查詢資料庫或資料表的使用情形
sp_spaceused 預存程序
- 若後面加TableName,可整個檢視表格的資料列的數目、已使用磁碟空間大小、保留的磁碟空間大小。
- 若後面沒加參數,可檢視資料庫的保留和使用的磁碟空間大小。
--更新統計資料 (耗資源指令) EXEC sp_updatestats; --報告和更正目錄檢視中不準確的頁面和資料列計數 (耗資源指令) DBCC updateusage(0); --顯示資料庫大小 EXEC sp_spaceused @updateusage=N'true';
PS:
- reserved = data + index_size + unused
- reserved 和 unallocated space 都是指資料頁的空間大小。
- database_size 是整個資料庫大小,包含 log 記錄檔的大小。所以 database_size 必定會大於 reserved + unallocated space 的總和。
--顯示資料表大小 EXEC sp_spaceused 'TestTable'; --取得所有資料表大小 CREATE TABLE #t ( [name] NVARCHAR(128), [rows] CHAR(11), [reserved] VARCHAR(18), [data] VARCHAR(18), [index_size] VARCHAR(18), [unused] VARCHAR(18) ) INSERT #t EXEC sys.sp_MSforeachtable 'EXEC sp_spaceused ''?''' SELECT name, rows, data as data_size, index_size , unused FROM #t drop table #t
sp_helpdb : 查詢資料庫的相關資訊
sp_helpdb 可用來傳回特定資料庫或所有資料庫的相關資訊。
EXEC sp_helpdb 'TestDB'
sp_helpfile : 查詢資料庫檔案的相關資訊
若僅想得知資料庫檔的實體名稱和屬性,可以使用 sp_helpfile 取得。
EXEC sp_helpfile;
沒有留言:
張貼留言