2012/10/23

DBCC 維護用語法

--刪除可變長度如varchar,text欄位之後,該欄位的空間不會主動被釋放,收回該空間
--(資料庫名稱,資料表名稱,batch_size)
--batch_size=100,每次處理100筆
--with no_infomsgs不要顯示任何訊息
dbcc cleantable ('ems_odm','allequipment',100) with no_infomsgs
go
--重建資料表的索引
--(資料表名稱,索引名稱,fillfactor填滿因數0為預設值)
dbcc dbreindex ('ems_odm.dbo.allequipment','pk_allequipment_1',0)
go
--index重組
--(資料庫名稱,資料表名稱,索引名稱)
dbcc indexdefrag ('ems_odm','allequipment','pk_allequipment_1')
go
--釋放資料庫未用空間,縮小資料檔所佔用的磁碟空間
--(資料庫名稱,可用空間剩餘%,notruncate/truncateonly)
--在縮小檔案同時,會將散置各處的資料往前移動,集中存放
--notruncate不釋放空間,truncateonly會將未用空間都釋放
--最多只能將檔案縮小到當初建立時所設的大小
dbcc shrinkdatabase ('ems_odm',50,notruncate)
go
--dbcc shrinkdatabaseoba只是用來縮減資料庫中所有資料庫檔案和記錄檔,只對某個檔案要用 shrinkfile
--(檔案名稱,縮減後的大小mb,notruncate/truncateonly)
--檔案名稱用的是邏輯名稱,而非實體名稱
use ems_odm
dbcc shrinkfile (1,150)
go
--更正資料庫sysindexes資料表中有錯誤的欄位值,有錯誤時會影響資料庫效能
--若不使用資料庫名稱而用0,代表目前的資料庫
--with count_rows表示要用資料表中實際的記錄筆數存到該資料表在sysindexes中的rows欄的值
dbcc updateusage ('ems_odm','allequipment') with count_rows
go

沒有留言:

張貼留言