如题线上数据库通常 会启用一些TRACE 用来记录:慢查询(1秒以上),死锁,DML语句 及高IO开效语句 这些TRACE 是定义在一个里面 ,还是分开多个TRACE两种方法哪个性能更好点?我的理解是:
分开写比较容易分类。。用到慢查询的就去找慢查询的 用到锁的时候去找锁
这样肯定方便些
但是同一个库中开了好几个跟踪是否更加影响性能?盼高手给个答案头一次发帖求答案,给100分。。欢迎高手答案,也欢迎大家讨论

解决方案 »

  1.   

    TRACE是有一个基线的 如果超过了基线才有必要跟踪 如果没有超过就没必要而且,跟踪并不是一直开着 很多时候是一段时间一段时间的跟踪来进行比对
      

  2.   


    把 .TRC 文件放到跟数据文件不同磁盘。。而且只捕捉指定ID的TRACE,负载很轻,你可以试一下。。
      

  3.   

    业务特殊性,对DML的操作需要能找到是谁操作的。所以跟踪常开。。好像做电商的一般TRACE都会常开的吧。。
      

  4.   

    是不是写错了?DML不会少哦你不会用触发器记录?无论DML或者DDL都是可以的
      

  5.   

    大家都不爱用跟踪呀? 跟踪负载真有那么吓人? 好奇怪啊。。有没有人跟我这样常开跟踪的,且跟踪多路ID的同学存在啊
    问题来了:因为不同事件的列不同
    比方说DEADLOCK 需要记的只有5,6列 而 RPC COMPLETE 需要记录的是另外10几列这些列有些重复有些不重复如果放到一张二维表中的话 最终的结果可能是 一个 20,30列的一张大表那么 TRC 文件如果是按表格方式记录的话  文件大小会增加明显(原因可参考大家常见的拆表操作)文件增大意味着更多的IO负载合在一处说不定不如分开写性能好(推理的结果,未测试)
      

  6.   

    呵呵,没写错 DML 用跟踪 DDL 我们也是用触发器专门测试过DML触发器的性能比这个跟踪差很多。。还有锁 并发性等一系列问题
      

  7.   

    分开会更好一些,毕竟关注点不同,所需要的列也不同,筛选条件也不同。
    个人认为开多个trace要比综合在一起对服务器影响更小,印象中在一本书上也有看过。