DBCC常用命令小匯

來源:互聯網
上載者:User

標籤:

DBCC是SQL Server提供的一組控制台命令,功能很強大,掌握一些必要的語句,對操作資料庫有不少協助,所以決定整理一下,發現已有不少類似的整理,減少了不少工作,歸類如下:


一、DBCC 協助類命令

* DBCC HELP(‘?‘) 
查詢所有的DBCC命令 
* DBCC HELP(‘checktable‘) 
查詢指定的DBCC命令的文法說明 
* DBCC USEROPTIONS 
返回當前串連的活動(設定)的SET選項

二、DBCC 檢查驗證類命令

* DBCC CHECKALLOC (‘資料庫名稱‘) 
檢查指定資料庫的磁碟空間分配結構的一致性 
* DBCC CHECKCATALOG (‘資料庫名稱‘) 
檢查指定資料庫的系統資料表內和系統資料表間的一致性 
* DBCC CHECKCONSTAINTS (‘tablename‘) 
檢查指定表上的指定約束或所有約束的完整性 
* DBCC CHECKDB 
檢查資料庫中的所有對象的分配和結構完整性 
* DBCC CHECKFILEGROUP 
檢查指定檔案組中所有表在當前資料庫中的分配和結構完整性 
* DBCC CHECKTABLE 
檢查指定表或索引檢視表的資料、索引及test、ntest和image頁的完整性 
* DBCC CHECKIDENT 
檢查指定的當前標識值 
* DBCC SQLPERF(UMSSTATS) undocumented in BOL 
可以用來檢查是否CPU使用達到瓶頸 
最關鍵的一個參考資料num runnable,表明當前有多少個線程再等待運行 
如果大於等於2,考慮CPU達到瓶頸

三、DBCC 維護類命令

* DBCC CLEANTABLE (‘db_name‘,‘table_name‘) 
回收Alter table drop column語句刪除可變長度列或text 
* DBCC DBREINDEX 
重建指定資料庫的一個或多個索引 
* DBCC INDEXDEFRAG 
對錶或視圖上的索引和非叢集索引進行磁碟重組 
* DBCC PINTABLE (db_id,object_id) 
將表資料駐留在記憶體中 
查看哪些表駐留在記憶體的方法是: 
select objectproperty(object_id(‘tablename‘),‘tableispinned‘) 
* DBCC UNPINTABLE (db_id,object_id) 
撤消駐留在記憶體中的表 
* DBCC SHRINKDATABASE(db_id,int) 
收縮指定資料庫的資料檔案和記錄檔大小 
* DBCC SHRINKFILE(file_name,int) 
收縮相關資料庫的指定資料檔案和記錄檔大小

四、DBCC 效能調節命令

* DBCC dllname(FREE) 
sp_helpextendedproc 查看載入的擴充PROC 
在記憶體中卸載指定的擴充過程動態連結程式庫(dll) 
* DBCC DROPCLEANBUFFERS 
從緩衝池中刪除所有緩衝區 
* DBCC FREEPROCCACHE 
從過程緩衝區刪除所有元素 
* DBCC INPUTBUFFER 
顯示從客戶機發送到伺服器的最後一個語句 
* DBCC OPENTRAN (db_name) 
查詢某個資料庫執行時間最久的事務,由哪個程式擁有 
* DBCC SHOW_STATISTICS 
顯示指定表上的指定目標的當前分布統計資訊 
* DBCC SHOWCONTIG 
顯示指定表的資料和索引的片段資訊 
* DBCC SQLPERF 
(logspace) 查看各個DB的日誌情況 
(iostats) 查看IO情況 
(threads) 查看線程消耗情況 
返回多種有用的統計資訊 
* DBCC CACHESTATS 
顯示SQL Server 2000記憶體的統計資訊 
* DBCC CURSORSTATS 
顯示SQL Server 2000遊標的統計資訊 
* DBCC MEMORYSTATS 
顯示SQL Server 2000記憶體是如何細分的 
* DBCC SQLMGRSTATS 
顯示緩衝中先讀和預讀準備的SQL語句

五、DBCC 未公開的命令

* DBCC ERRLOG 
初始化SQL Server 2000的錯誤記錄檔檔案 
* DBCC FLUSHPROCINDB (db_id) 
清除SQL Server 2000伺服器記憶體中的某個資料庫的預存程序緩衝內容 
* DBCC BUFFER (db_name,object_name,int(緩衝區個數)) 
顯示緩衝區的頭部資訊和頁面資訊 
* DBCC DBINFO (db_name) 
顯示資料庫的結構資訊 
* DBCC DBTABLE 
顯示管理資料的表(資料字典)資訊 
* DBCC IND (db_name,table_name,index_id) 
查看某個索引使用的頁面資訊 
* DBCC REBUILDLOG 
重建SQL Server 2000交易記錄檔 
* DBCC LOG (db_name,3) (-1--4) 
查看某個資料庫使用的事物日誌資訊 
* DBCC PAGE 
查看某個資料庫資料頁面資訊 
* DBCC PROCBUF 
顯示過程緩衝池中的緩衝區頭和預存程序頭 
* DBCC PRTIPAGE 
查看某個索引頁面的每行指向的頁面號 
* DBCC PSS (user,spid,1) 
顯示當前串連到SQL Server 2000伺服器的進程資訊 
* DBCC RESOURCE 
顯示伺服器當前使用的資源情況 
* DBCC TAB (db_id,object_id) 
顯示資料頁面的結構

六、DBCC跟蹤標記

跟蹤標記用於臨時設定伺服器的特定特徵或關閉特定行為,常用於診斷效能問題或調試預存程序或複雜的電腦系統 
* DBCC TRACEON (3604) 
開啟跟蹤標記 
* DBCC TRACEOFF 
關閉跟蹤標記 
* DBCC TRACESTATS 
查看跟蹤標記狀態

七、使用 DBCC 結果集輸出

  許多 DBCC 命令可以產生表格格式的輸出(使用 WITH TABLERESULTS 選項)。該資訊可裝載到表中以便將來使用。以下顯示一個樣本指令碼:

   
  CREATE TABLE DBCCResult (

  DBCCFlag INT,

  Result INT

  )

  INSERT INTO DBCCResult

  EXEC (‘DBCC TRACESTATUS (-1) WITH NO_INFOMSGS‘)

  SELECT *

  FROM DBCCResult 
八、官方使用DBCC的建議 
1、在系統使用率較低時運行 CHECKDB。 
2、請確保未同時執行其它磁碟 I/O 操作,例如磁碟備份。 
3、將 tempdb 放到單獨的磁碟系統或快速磁碟子系統中。 
4、允許 tempdb 在磁碟機上有足夠的擴充空間。 使用帶有 ESTIMATE ONLY 的 DBCC 
估計 tempdb 將需要多少空間。 
5、避免運行佔用大量 CPU 的查詢或批次工作。 
6、在 DBCC 命令運行時,減少活動事務。 
7、使用 NO_INFOMSGS 選項顯著減少處理和 tempdb 的使用。 
8、考慮使用帶有 PHYSICAL_ONLY 選項的 DBCC CHECKDB 來檢查頁和記錄首部 
的物理結構。當硬體導致的錯誤被置疑時,這個操作將執行快速檢查。

在發布,訂閱複製時要用伺服器實名時可以這樣:

select * from sysservers   (可以找到原來伺服器的名稱)

exec sp_dropserver ‘jmsql9‘    (刪除原來的伺服器名)

exec sp_addserver ‘jmSQL9‘ ,LOCAL    (改為新的伺服器名)

ALTER DATABASE [jm] SET SINGLE_USER          (改為單一使用者模式)

DBCC CHECKDB("databasename",REPAIR_REBUILD) WITH TABLOCK    (修複資料庫) 

DBCC  CHECKTABLE("tablename",repair_rebuild) with tablock  (修複表)

DBCC DBREINDEX (‘t_icitem‘  ,  ‘   ‘)       修複此表所有的索引。

ALTER DATABASE [jm] SET MULTI_USER                    (改為多使用者模式)

REPAIR_ALLOW_DATA_LOSS:執行由REPAIR_REBUILD 完成的所有修複,包括對行和頁進行分配和取消分配以改正分配錯誤、結構行或頁的錯誤,以及刪除已損壞的文字物件。這些修複可能會導致一些資料丟失。修複操作可以在使用者事務下完成以允許使用者復原所做的更改。如果復原修複,則資料庫仍會含有錯誤,應該從備份進行恢複。如果由於所提供修複等級的緣故遺漏某個錯誤的修複,則將遺漏任何取決於該修複的修複。修複完成後,備份資料庫。

REPAIR_FAST 進行小的、不耗時的修複操作,如修複非叢集索引中的附加鍵。這些修複可以很快完成,並且不會有遺失資料的危險。

REPAIR_REBUILD 執行由REPAIR_FAST 完成的所有修複,包括需要較長時間的修複(如重建索引),執行這些修複時不會有遺失資料的危險。

dbcc shrinkdatabase  (jm)      壓縮資料庫

DBCC常用命令小匯

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.