显示有关在 SQL Server 2000 Desktop Engine 或 SQL Server 2000 个人版上并发执行 5 个以上批处理的次数的统计。还控制是否在 SQL Server 错误日志中记录这些统计。
DBCC CONCURRENCYVIOLATION [ ( DISPLAY | RESET | STARTLOG | STOPLOG ) ]
DISPLAY
显示并发冲突计数器的当前值。计数器记录自从启动日志记录或上次重置计数器以来并发执行 5 个以上批处理的次数。如果没有指定选项,则 DISPLAY 是默认值。
RESET
将所有的并发冲突计数器设置为零。
STARTLOG
每当有 5 个以上的并发批处理时,就每分钟在 SQL Server 事件日志中记入一次并发冲突计数器记录。
STOPLOG
停止定期在 SQL Server 事件日志中记入并发冲突计数器记录。
DBCC CONCURRENCYVIOLATION 可在任何 SQL Server 2000 版本上执行,但只在这两个具有并发工作负荷调控器的 SQL Server 2000 版本上有效:SQL Server 2000 Desktop Engine 和 SQL Server 2000 个人版。在所有其它版本上,除了返回以下消息外没有其它作用:
DBCC execution completed. If DBCC printed error messages, contact your system administrator.
当并发执行 5 个以上的批处理时,SQL Server 2000 桌面版和 SQL Server 2000 个人版具有可限制性能的并发工作负荷调控器。随着并发执行的批处理数不断增加,调控器通过增加数量来降低系统的性能。并发执行 5 个以上批处理的次数计数在内部计数器中维护。可使用带 DISPLAY 参数或不用参数的 DBCC CONCURRENCYVIOLATION 语句显示这些计数器的内容。如果系统经过仔细调整后性能仍很低,并且 DBCC CONCURRENCYVIOLATIONS 显示数据库引擎经常有远远超过 5 个的批处理并发执行,则应考虑升级到其它的 SQL Server 2000 版本。
可使用 DBCC CONCURRENCYVIOLATION(STARTLOG) 语句,启用定期在 SQL Server 事件日志中记入并发冲突计数器记录的功能。当启用日志记录时,如果正在执行的并发批处理超过 5 个,则将每分钟在事件日志中记入一次并发冲突计数器记录。每当有 4 个或更少的并发批处理时,不将计数器写入错误日志。
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
当启用定期日志记录时,每当并发执行的批处理超过 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.
如果对并发冲突计数器启用定期日志记录,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
Concurrency violations will be written to the SQL Server error log.
DBCC execution completed. If DBCC printed error messages, contact your system administrator.
如果没有对并发冲突计数器启用定期日志记录,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
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 权限默认授予 sysadmin 固定服务器角色的成员且不可转让。
下例显示当前计数器值,然后重置计数器。
-- Display the current counter values.相关文章
DBCC CONCURRENCYVIOLATION
GO
-- Reset the counter values to 0.
DBCC CONCURRENCYVIOLATION(RESET)
GO