• SQL SERVER-跟踪标记


    控制跟踪标记

    方法一:通过以下三个命令

    • DBCC TRACEON(2203,-1) --开启跟踪

    • DBCC TRACEOFF(2203,1) --关闭跟踪

    • DBCC TRACESTATUS --查看跟踪标记的状态

    其中,TRACEON和TRACEOFF第二个参数代表启用标志的范围,1是Session Scope,-1是Global Scope,如果不指定该值,则保持默认值Session Scope。
    另外,如果你希望在每次SQL Server服务启动时通过DBCC命令控制某些Flag,则使用,这个存储过程来指定,sp_procoption存储过程会在SQL Server服务器启动时自动执行。
    EXEC sp_procoption @ProcName = '' , @OptionName = ] 'startup' , @OptionValue = 'on';
    最后请注意,不是所有的跟踪标记都可以用DBCC命令启动,比如Flag 835就只能通过启动参数指定。

    方法二:通过在SQL Server配置管理器中指定

    这种方式是通过在数据库引擎启动项里加启动参数设置,只有Global Scope。格式为-T#跟踪标记1;T跟踪标记2;T跟踪标记3。

    方法三:通过注册表启动

    该方法跟方法二类似。

    一些常用的跟踪标记有

    --1204  传回参与死锁的SQL SERVER相关程序之运行数据,1204是以文本格式进行
    --1222  传回参与死锁的SQL SERVER相关程序之运行数据,1204是以XML格式保存
    --1205
    --1206
    --3605  要求DBCC的输出放到SQL server ERROR LOG
    --3604  将trace结果输出到前端

     

     

    对于数据库死锁,通常可以通过TRACE FLAG 1204、1205、1206,检查ERRORLOG里面的输出,和分析SQLTRACE的执行上下文判断死锁问题的来由。执行下面的话可以把死锁记录到 Errorlog中:dbcc traceon (1204, 3605, -1)。

    --1211,1224 两种方式都是禁用锁升级。但行为有所差别1211是无论何时都不会锁升级,而1224在内存压力大的时候会启用锁升级,从而避免了out-of-locks错误。当两个跟踪标记都启用是,1211的优先级更高。
    --1200  返回加锁信息的整个过程,是学习加锁过程很牛逼的标志
    DBCC TRACEON(1200,-1)
    DBCC TRACEON(3604)
    DBCC TRACESTATUS

    --1252 显示动DBCC CHECKFILEGROUP,DBCC CHECKTABLE。这意味着这几个命令只能单线程执行,这可能会需要更多的时间,但是在某些特定情况下还是有些用处。
    --3226 防止日志记录成功的备份。如果日志备份过于频繁的话,会产生大量错误日志,启用该跟踪标记可以使得日志备份不再被记录到错误日志。
    --4199  所有KB补丁对于查询分析器行为的修改都生效,这个命令比较危险,可能扫称性能的下降
    --260 打印关于扩展存储过程动
    态选择锁的相关信息

    --610 减少日志产生量
    --834 使用 Microsoft Windows 大页面缓冲池分配。如果服务器是SQL Server专用服务器的话,值得开启该跟踪标记。
    --835  允许SQL Server 2005和2008标准版使用"锁定内存页",和在组策略中设置的结果大同小异,但是允许在标准版中使用.
    --1118 tempdb分配整个区,而不是混合区,减少SGAM页争抢。

    --2528  禁用并行执行DBCC CHECKDB, 态链接库的版本信息
    --444 停止auto-parameterization
    --3205 默认情况下,如果磁带驱动器支持硬件压缩,则 DUMP 或 BACKUP 语句会使用该功能。
    -- 利用此跟踪标记,可以禁用磁带驱动程序的硬件压缩。
    -- 本项在要与不支持压缩的其它站点或磁带驱动器交换磁带时有用。
    --8602 停止索引提示功能

    --8722 停止join group等最优化提示功能
    --8755 停止锁提示功能
    --8780 停止最优化超时配置,强制做完整的最优化动作
    --818 检查写一致性,踪标志 818 启用了一个内存中的环形缓冲区,用于跟踪由运行 SQL Server 的计算机执行的最后 2,048 个成功写操作(不包括排序和工作文件 I/O)。发生 605、823 或 3448 之类的错误时,将传入缓冲区的日志序列号 (LSN) 值与最新写入列表进行比较。如果在读操作期间检索到的 LSN 比在写操作期间指定的更旧,就会在 SQL Server 错误日志中记录一条新的错误信息。大部分 SQL Server 写操作以检查点或惰性写入形式出现。惰性写入是一项使用异步 I/O 操作的后台任务。环形缓冲区的实现是轻量的,因此对系统性能的影响可以忽略。
    --1806 禁用即时文件初始化,所有的磁盘空间请求全部使用填0初始化,可能造成在空间增长时产生阻塞。
    --3502 在日志中显示有关checkpoint的相关信息。
    --3505 不允许自动进行checkpoint,checkpoint只能手动进行,是非常危险的一个命令
    --806  在读取过程中对页检查逻辑一致性,在错误日志中就可以看到类似下面的信息,该跟踪标记会极大的降低性能!!!
    2004-06-25 11:29:04.11 spid51 错误: 823,严重性: 24 日状态: 2
    2004-06-25 11:29:04.11 spid51 I/O 错误 (审核失败) 在读取过程中检测到的偏移量主题 SQL ServerMSSQLdatapubs.mdf e:Program 文件中的 0x000000000b0000.

    转载来源:http://blog.itpub.net/27026361/viewspace-775503/

  • 相关阅读:
    golang API开发过程的中的自动重启(基于gin框架)
    单位时间的调度问题 —— 贪心
    Qt获取文件夹下文件
    C++ using
    QGridLayout动态添加控件
    数据库查询优化-20条必备sql优化技巧
    Django:类视图的装饰器
    使用同一个模态框进行新增和修改
    Django:使用celery处理异步任务
    jenkins:调用jenkinsAPI
  • 原文地址:https://www.cnblogs.com/JinweiChang/p/12175990.html
Copyright © 2020-2023  润新知