diff options
Diffstat (limited to 'support-files/dtrace/query-execandqc.d')
-rw-r--r-- | support-files/dtrace/query-execandqc.d | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/support-files/dtrace/query-execandqc.d b/support-files/dtrace/query-execandqc.d new file mode 100644 index 00000000000..64599223f55 --- /dev/null +++ b/support-files/dtrace/query-execandqc.d @@ -0,0 +1,36 @@ +#!/usr/sbin/dtrace -s +# +# Show query execution times, indicating whether the query-cache was used + +#pragma D option quiet + +dtrace:::BEGIN +{ + printf("%-20s %-20s %-40s %2s %-9s\n", "Who", "Database", "Query", "QC", "Time(ms)"); +} + +mysql*:::query-start +{ + self->query = copyinstr(arg0); + self->connid = arg1; + self->db = copyinstr(arg2); + self->who = strjoin(copyinstr(arg3),strjoin("@",copyinstr(arg4))); + self->querystart = timestamp; + self->qc = 0; +} + +mysql*:::query-cache-hit +{ + self->qc = 1; +} + +mysql*:::query-cache-miss +{ + self->qc = 0; +} + +mysql*:::query-done +{ + printf("%-20s %-20s %-40s %-2s %-9d\n",self->who,self->db,self->query,(self->qc ? "Y" : "N"), + (timestamp - self->querystart) / 1000000); +} |