由于这个问题,我将按照本指南使用dtrace找出从属 SQL 线程对临时表的操作。
这是我的脚本:
#!/usr/sbin/dtrace -s
#pragma D option quiet
dtrace:::BEGIN
{
printf("Tracing... Hit Ctrl-C to end.\n");
}
pid$target::*mysql_parse*:entry
{
self->query = copyinstr(arg1);
}
pid$target::*Slave_open_temp_tables*:return
{
@query[self->query] = count();
}
这就是我运行时得到的:
# ./Slave_open_temp_tables.d -p `pgrep -x mysqld`
proc-stub:rd_event_enable
proc-stub:rd_errstr err=26
dtrace: failed to compile script ./Slave_open_temp_tables.d: line 14: probe description pid29441::*Slave_open_temp_tables*:return does not match any probes
User defined signal 1
我也尝试过,create_myisam_tmp_table
但得到了相同的结果。
我哪里做错了?