位置: 编程技术 - 正文

如何控制SQLServer中的跟踪标记(如何控制自己不磨牙)

编辑:rootadmin

跟踪标记是什么?

对于DBA来说,掌握Trace Flag是一个成为SQL Server高手的必要条件之一,在大多数情况下,Trace Flag只是一个剑走偏锋的奇招,不必要,但在很多情况下,会使用这些标记可以让你更好的控制SQL Server的行为。

下面是官方对于Trace Flag的标记:

跟踪标记是一个标记,用于启用或禁用SQL Server的某些行为。

由上面的定义不难看出,Trace Flag是一种用来控制SQL Server的行为的方式。很多DBA对Trace Flag都存在一些误区,认为只有在测试和开发环境中才有可能用到Trace Flag,这种想法只能说部分正确,因此对于Trace Flag可以分为两类,适合在生产环境中使用的和不适合在生产环境中使用的。

Important:Trace Flag属于剑走偏锋的招数,在使用Trace Flag做优化之前,先Apply基本的Best Practice。

如何控制跟踪标记

控制跟踪标记的方式有以下三种:

1.通过DBCC命令

可以通过DBCC命令来启用或关闭跟踪标记,这种方式的好处是简单易用,分别使用下面三个命令来启用,禁用已经查看跟踪标记的状态:

DBCC TRACEON(,-1)

DBCC TRACEOFF(,1)

DBCC TRACESTATUS

其中,TRACEON和TRACEOFF第二个参数代表启用标志的范围,1是Session Scope,-1是Global Scope,如果不指定该值,则保持默认值Session Scope。

另外,值得说的是,如果你希望在每次SQL Server服务启动时通过DBCC命令控制某些Flag,则使用

EXEC sp_procoption @ProcName = '<procedure name>' , @OptionName = ] 'startup' , @OptionValue = 'on';

这个存储过程来指定,sp_procoption存储过程会在SQL Server服务器启动时自动执行。

还有一点值得注意的是,不是所有的跟踪标记都可以用DBCC命令启动,比如Flag 就只能通过启动参数指定。

2.通过在SQL Server配置管理器中指定

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

3.通过注册表启动

这种方式和方法2大同小异,就不多说了。

一些在生产环境中可能需要的跟踪标记

Trace Flag 减少日志产生量。如果你对于日志用了很多基础的best practice,比如说只有一个日志文件、VLF数量适当、单独存储,如果还是不能缓解日志过大的话,考虑使用该跟踪标记。

参考资料:

Flag 使用 Microsoft Windows 大页面缓冲池分配。如果服务器是SQL Server专用服务器的话,值得开启该跟踪标记。Trace Flag 允许SQL Server 和标准版使用"锁定内存页",和在组策略中设置的结果大同小异,但是允许在标准版中使用.Trace Flag tempdb分配整个区,而不是混合区,减少SGAM页争抢。当apply tempdb的best practice之后,还遇到争抢问题,考虑使用该跟踪标记。参考资料: Flag 和这两个跟踪标记都是将死锁写到错误日志中,不过是以文本格式进行,而是以XML格式保存。可以通过sp_readerrorlog查看日志。Trace Flag 和两种方式都是禁用锁升级。但行为有所差别是无论何时都不会锁升级,而在内存压力大的时候会启用锁升级,从而避免了out-of-locks错误。当两个跟踪标记都启用是,的优先级更高。Trace Flag 禁用并行执行DBCC CHECKDB, DBCC CHECKFILEGROUP,DBCC CHECKTABLE。这意味着这几个命令只能单线程执行,这可能会需要更多的时间,但是在某些特定情况下还是有些用处。Trace Flag 防止日志记录成功的备份。如果日志备份过于频繁的话,会产生大量错误日志,启用该跟踪标记可以使得日志备份不再被记录到错误日志。Trace Flag 所有KB补丁对于查询分析器行为的修改都生效,这个命令比较危险,可能扫称性能的下降,具体请参看: Flag 在读取过程中对页检查逻辑一致性,在错误日志中就可以看到类似下面的信息:-- ::. spid 错误: ,严重性: 日状态: -- ::. spid I/O 错误 (审核失败) 在读取过程中检测到的偏移量主题 SQL ServerMSSQLdatapubs.mdf e:Program 文件中的 0xb.参考资料: Flag 检查写一致性踪标志 启用了一个内存中的环形缓冲区,用于跟踪由运行 SQL Server 的计算机执行的最后 2, 个成功写操作(不包括排序和工作文件 I/O)。发生 、 或 之类的错误时,将传入缓冲区的日志序列号 (LSN) 值与最新写入列表进行比较。如果在读操作期间检索到的 LSN 比在写操作期间指定的更旧,就会在 SQL Server 错误日志中记录一条新的错误信息。大部分 SQL Server 写操作以检查点或惰性写入形式出现。惰性写入是一项使用异步 I/O 操作的后台任务。环形缓冲区的实现是轻量的,因此对系统性能的影响可以忽略。参考资料: Flag 返回加锁信息的整个过程,是学习加锁过程很牛逼的标志,示例代码如下:DBCC TRACEON(,-1)DBCC TRACEON()DBCC TRACESTATUSSELECT * FROM AdventureWorks.person.Address参考资料: Flag 禁用即时文件初始化,所有的磁盘空间请求全部使用填0初始化,可能造成在空间增长时产生阻塞。Trace Flag 在日志中显示有关checkpoint的相关信息。如图1所示。

推荐整理分享如何控制SQLServer中的跟踪标记(如何控制自己不磨牙),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:如何控制sqlserver服务的运行状态,如何控制食欲,如何控制孩子的手机使用时间,如何控制不射击精方法,如何控制孩子的手机副卡,如何控制sqlserver服务的运行状态,如何控制自己的情绪,如何控制大脑不去胡思乱想,内容如对您有帮助,希望把文章链接给更多的朋友!

如何控制SQLServer中的跟踪标记(如何控制自己不磨牙)

图1.在错误日志中显示CheckpointTrace Flag 不允许自动进行checkpoint,checkpoint只能手动进行,是非常危险的一个命令。

小结

跟踪标志是控制SQL Server行为的一种方式,对于某些跟踪标志来说,可以在生产环境中提高性能,而对于另一些来说,用在生产环境中是一件非常危险的事情,只有在测试环境中才能被使用。要记住,跟踪标记对于调优是一种剑走偏锋的手段,只有在使用了所有基本的调优手段之后,才考虑使用跟踪标记。

SQL Server存储过程入门学习 存储过程的定义,存储过程(StoredProcedure),是一组为了完成特定功能的SQL语句,集经编译后存储在数据库中,用户通过指定存储过程的名字并给出参数,如

清除SQL SERVER错误日志出现操作系统错误的解决方法 之前在UAT环境搭建的SQLSERVERR2数据库一直用得比较正常,但最近发现在Sharepoint中不能进行任何操作了,开始以为是什么配置出了问题(因为一直在研

DDL、DML和DCL的区别与理解 DML、DDL、DCL区别.总体解释:DML(datamanipulationlanguage):它们是SELECT、UPDATE、INSERT、DELETE,就象它的名字一样,这4条命令是用来对数据库里的数据进行

标签: 如何控制自己不磨牙

本文链接地址:https://www.jiuchutong.com/biancheng/347175.html 转载请保留说明!

上一篇:MSSQL 监控数据/日志文件增长实现方法(监控mysql数据变化)

下一篇:SQL Server存储过程入门学习(sqlserver存储过程if语句)

  • 计提个人所得税会计分录怎么写
  • 公司购买了地板可以退吗
  • 外经证办好了后怎么开票
  • 营业收入比销售商品收到的现金少
  • 小规模企业所得税税率多少
  • 网上报税需要准备什么资料
  • 企业注销企业所得税年报怎么申报
  • 购买土地自建厂房的会计处理
  • 进项税额大于销项税额需要结转吗
  • 企业领用本企业生产的产品会计分录
  • 研发场地租赁计什么科目
  • 本期增加发生额是指
  • 公司用无形资产抵税
  • 没有订立合同的著作权属于什么人
  • 企业销售货物因违规处罚
  • 软件企业产品如何销售
  • 外贸企业免征增值税
  • 资产组可收回金额包含商誉的可收回金额吗
  • 金银首饰的消费税在什么环节
  • 兼职劳务报酬要交个税吗
  • 所得税汇算清缴补税的会计处理
  • 五险一金个人缴纳部分
  • mac如何修改图片像素大小
  • 收到别的公司对公转账往来
  • 单位延缓缴纳社保员工可以要求赔偿吗
  • 银行进账单是银行开吗
  • 预计利润表中的销售成本如何计算
  • php curl_exec
  • php23种设计模式
  • 路由配置中network怎么用
  • 国内来料加工会亏本吗
  • vue国际化解决方案
  • vue项目更新后还是老代码
  • 交易性金融资产的入账价值
  • 支付中间人佣金违法吗
  • 营改增后房地产企业增值税如何核算
  • 织梦怎么用
  • mysql有什么优势和特点
  • 法人如何提取公积金
  • 个体工商户如何用工
  • 预付款项为什么这么多
  • 个人社保信息变更流程
  • 工业企业的会计核算程序
  • mysql数据库中进入mysql库的命令
  • 车出险理赔需要什么材料
  • 非盈利组织企业所得税主表如何填列
  • 加计抵减与加计抵消区别
  • 制作费用和管理费用
  • 物流公司账务处理流程及方法
  • 工程设计费收入在所得税申报表应填入
  • 管理费用和财务费用属于什么科目
  • 工程施工中购买的设备一直未入账需要评估吗
  • 招标付款条件及比例
  • 新准则下企业开什么发票
  • 企业债与公司债的还款有区别
  • sql解析框架
  • sql2005 create file遇到操作系统错误5拒绝访问 错误1802
  • sql中函数 判断是否是null
  • 线上MYSQL同步报错故障处理方法总结(必看篇)
  • SQL中distinct 和 row_number() over() 的区别及用法
  • 教你鉴别耳机音质的好坏的几大技巧
  • xp系统的搜索
  • 远程操作win10
  • linux文件latin1转换为utf
  • linux vmware卸载
  • 64位win7安装kb3038314补丁更新失败临时解决方法
  • 如何更改win10管理员账户
  • cocos怎么用
  • 在vs中搭建opengl环境
  • js基于对象的特点是什么
  • node.js deno
  • java程序员练手项目
  • 基于像素的分类方法
  • node.js中的http.response.end方法使用说明
  • jquery easyui开发指南
  • 简述javascript中的函数
  • javascript运行环境有哪些
  • 增值税纳税申报操作流程
  • 开票系统增值税专票税率选多少
  • 租房协议中怎样签字
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设