HACK
                (DBS)
              
                
              
                  
                  
              1
              
             
            
              【 TiDB  使用环境】线上、测试、调研
【 TiDB 版本】
【遇到的问题】
集群版本:4.0.6
一个SQL没有commit,通过查看 INFORMATION_SCHEMA.CLUSTER_PROCESSLIST,能够查询到DIGEST,怎么查看这个DIGEST对应的SQL语句呢?
【复现路径】做过哪些操作出现的问题
【问题现象及影响】
【附件】
请提供各个组件的 version 信息,如 cdc/tikv,可通过执行 cdc version/tikv-server --version 获取。
             
            
              
              
              1 个赞
            
           
          
            
              
                啦啦啦啦啦
                
              
              
                  
                  
              2
              
             
            
              关联下CLUSTER_STATEMENTS_SUMMARY这个表或者STATEMENTS_SUMMARY_HISTORY看看
select QUERY_SAMPLE_TEXT from INFORMATION_SCHEMA.CLUSTER_STATEMENTS_SUMMARY_HISTORY where DIGEST='xxxxx'
             
            
              
              
              
            
           
          
            
              
                HACK
                (DBS)
              
              
                  
                  
              5
              
             
            
              根据txn_start_ts或者digest查看cluster_slow_quey表,都没有找到。
             
            
              
              
              
            
           
          
            
              
                啦啦啦啦啦
                
              
                
              
                  
                  
              6
              
             
            
            
              
              
              1 个赞
            
           
          
            
              
                啦啦啦啦啦
                
              
              
                  
                  
              8
              
             
            
              我这边6.1版本测试是可以的。cluster_slow_quey里没有正常,本身执行很快仅仅没提交的不会记录。可以适当调大上面的参数看看,有可能是SQL种类太多,被移除了。
             
            
              
              
              
            
           
          
            
              
                HACK
                (DBS)
              
              
                  
                  
              9
              
             
            
              我这个是个人的测试环境。
我感觉cluster_statements_summary(这个视图现在总的记录条数也就15条)这个视图查看出来的信息不准呀,我刚刚执行了一个SQL,然后在这个视图里面就查看不到。
             
            
              
              
              1 个赞
            
           
          
            
              
                啦啦啦啦啦
                
              
                
              
                  
                  
              10
              
             
            
              select QUERY_SAMPLE_TEXT from INFORMATION_SCHEMA.CLUSTER_STATEMENTS_SUMMARY a join INFORMATION_SCHEMA.processlist b on a.DIGEST=b.DIGEST;
试试这个行吗,我这没问题
             
            
              
              
              
            
           
          
            
              
                HACK
                (DBS)
              
              
                  
                  
              11
              
             
            
              
你这样试一试,看看两次出来的SQL是一样的吗?
SESSION1:
use testdb;
begin;
update t set name=‘aaa’ where id=1;
—查看这个DIGEST对应的SQL
commit;
update t set name=‘bbb’ where id=2;
—查看这个DIGEST对应的SQL
             
            
              
              
              1 个赞
            
           
          
            
              
                HACK
                (DBS)
              
              
                  
                  
              13
              
             
            
              我测试了好几遍,有时候准,有时候不准,感觉就是INFORMATION_SCHEMA.CLUSTER_STATEMENTS_SUMMARY里面的内容更新的不及时,不准。
             
            
              
              
              1 个赞
            
           
          
            
              
                HACK
                (DBS)
              
              
                  
                  
              14
              
             
            
              重新复测了一遍,还是有问题,过程如下:
tidb_stmt_summary_history_size=24
tidb_stmt_summary_max_sql_length=4096
tidb_stmt_summary_max_stmt_count=200
tidb_stmt_summary_refresh_interval=1800
问题:
多次执行类似 update tabname set name=? where id=?  形式的SQL,查看表中记录的SQL内容,只能看到第一次执行对应的SQL语句。
测试过程:
SESSION1:
begin;
update zjp set name=‘DDD’ where id=3;
SESSION2:
查看这个SQL对应的DIGEST,查看该DIGEST对应的SQL文本
select query_sample_text from information_schema.cluster_statements_summary where digest=‘xxx’;
查看到的文本就是刚才执行的SQL语句。
SESSION1:
commit;将刚才的修改提交
update zjp set name=‘BBB’ where id=2;
SESSION2:
select query_sample_text from information_schema.cluster_statements_summary where digest=‘xxx’;
查看到的文本仍然是第一次执行的SQL文本,没有看到第二次的(update zjp set name=‘BBB’ where id=2;)。
             
            
              
              
              1 个赞
            
           
          
            
              
                h5n1
                (H5n1)
              
              
                  
                  
              17
              
             
            
              好像没地能查去,记录SQL信息的就这些地方,前面基本都提到了
             
            
              
              
              
            
           
          
            
              
                system
                (system)
                  关闭
              
              
                  
                  
              20
              
             
            
              该主题在最后一个回复创建后60天后自动关闭。不再允许新的回复。