顯示有關(guān)在 SQL Server 2000 Desktop Engine 或 SQL Server 2000 個人版上并發(fā)執(zhí)行 5 個以上批處理的次數(shù)的統(tǒng)計。還控制是否在 SQL Server 錯誤日志中記錄這些統(tǒng)計。
DBCC CONCURRENCYVIOLATION [ ( DISPLAY | RESET | STARTLOG | STOPLOG ) ]
DISPLAY
顯示并發(fā)沖突計數(shù)器的當(dāng)前值。計數(shù)器記錄自從啟動日志記錄或上次重置計數(shù)器以來并發(fā)執(zhí)行 5 個以上批處理的次數(shù)。如果沒有指定選項,則 DISPLAY 是默認(rèn)值。
RESET
將所有的并發(fā)沖突計數(shù)器設(shè)置為零。
STARTLOG
每當(dāng)有 5 個以上的并發(fā)批處理時,就每分鐘在 SQL Server 事件日志中記入一次并發(fā)沖突計數(shù)器記錄。
STOPLOG
停止定期在 SQL Server 事件日志中記入并發(fā)沖突計數(shù)器記錄。
DBCC CONCURRENCYVIOLATION 可在任何 SQL Server 2000 版本上執(zhí)行,但只在這兩個具有并發(fā)工作負(fù)荷調(diào)控器的 SQL Server 2000 版本上有效:SQL Server 2000 Desktop Engine 和 SQL Server 2000 個人版。在所有其它版本上,除了返回以下消息外沒有其它作用:
DBCC execution completed. If DBCC printed error messages, contact your system administrator.
當(dāng)并發(fā)執(zhí)行 5 個以上的批處理時,SQL Server 2000 桌面版和 SQL Server 2000 個人版具有可限制性能的并發(fā)工作負(fù)荷調(diào)控器。隨著并發(fā)執(zhí)行的批處理數(shù)不斷增加,調(diào)控器通過增加數(shù)量來降低系統(tǒng)的性能。并發(fā)執(zhí)行 5 個以上批處理的次數(shù)計數(shù)在內(nèi)部計數(shù)器中維護(hù)。可使用帶 DISPLAY 參數(shù)或不用參數(shù)的 DBCC CONCURRENCYVIOLATION 語句顯示這些計數(shù)器的內(nèi)容。如果系統(tǒng)經(jīng)過仔細(xì)調(diào)整后性能仍很低,并且 DBCC CONCURRENCYVIOLATIONS 顯示數(shù)據(jù)庫引擎經(jīng)常有遠(yuǎn)遠(yuǎn)超過 5 個的批處理并發(fā)執(zhí)行,則應(yīng)考慮升級到其它的 SQL Server 2000 版本。
可使用 DBCC CONCURRENCYVIOLATION(STARTLOG) 語句,啟用定期在 SQL Server 事件日志中記入并發(fā)沖突計數(shù)器記錄的功能。當(dāng)啟用日志記錄時,如果正在執(zhí)行的并發(fā)批處理超過 5 個,則將每分鐘在事件日志中記入一次并發(fā)沖突計數(shù)器記錄。每當(dāng)有 4 個或更少的并發(fā)批處理時,不將計數(shù)器寫入錯誤日志。
DBCC CONCURRENCYVIOLATION 語句的主要輸出在以下幾行中:
Concurrency violations since 2000-02-02 11:03:17.20
1 2 3 4 5 6 7 8 9 10-100 >100
5 3 1 0 0 0 0 0 0 0 0
當(dāng)啟用定期日志記錄時,每當(dāng)并發(fā)執(zhí)行的批處理超過 5 個,便在 SQL Server 錯誤日志中記錄以下格式的消息:
2000-02-02 11:03:17.20 spid 12 This SQL Server has been opimized for 5 concurrent queries. This limit has been exceeded by 2 queries and performance may be adversely affected.
如果對并發(fā)沖突計數(shù)器啟用定期日志記錄,DBCC CONCURRENCYVIOLATION 將返回以下結(jié)果集(消息):
Concurrency violations since 2000-02-02 11:03:17.20
1 2 3 4 5 6 7 8 9 10-100 >100
5 3 1 0 0 0 0 0 0 0 0
Concurrency violations will be written to the SQL Server error log.
DBCC execution completed. If DBCC printed error messages, contact your system administrator.
如果沒有對并發(fā)沖突計數(shù)器啟用定期日志記錄,DBCC CONCURRENCYVIOLATION 將返回以下結(jié)果集(消息):
Concurrency violations since 2000-02-02 11:03:17.20
1 2 3 4 5 6 7 8 9 10-100 >100
5 3 1 0 0 0 0 0 0 0 0
Concurrency violations will not be written to the SQL Server error log.
DBCC execution completed. If DBCC printed error messages, contact your system administrator.
DBCC CONCURRENCYVIOLATION 權(quán)限默認(rèn)授予 sysadmin 固定服務(wù)器角色的成員且不可轉(zhuǎn)讓。
下例顯示當(dāng)前計數(shù)器值,然后重置計數(shù)器。
-- Display the current counter values.相關(guān)文章
DBCC CONCURRENCYVIOLATION
GO
-- Reset the counter values to 0.
DBCC CONCURRENCYVIOLATION(RESET)
GO