~ubuntu-branches/ubuntu/trusty/mariadb-5.5/trusty-proposed

« back to all changes in this revision

Viewing changes to support-files/dtrace/query-filesort-time.d

  • Committer: Package Import Robot
  • Author(s): Otto Kekäläinen
  • Date: 2013-12-22 10:27:05 UTC
  • Revision ID: package-import@ubuntu.com-20131222102705-mndw7s12mz0szrcn
Tags: upstream-5.5.32
Import upstream version 5.5.32

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#!/usr/sbin/dtrace -s
 
2
#
 
3
# Copyright (c) 2009 Sun Microsystems, Inc.
 
4
# Use is subject to license terms.
 
5
 
6
# This program is free software; you can redistribute it and/or modify
 
7
# it under the terms of the GNU General Public License as published by
 
8
# the Free Software Foundation; version 2 of the License.
 
9
 
10
# This program is distributed in the hope that it will be useful,
 
11
# but WITHOUT ANY WARRANTY; without even the implied warranty of
 
12
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
13
# GNU General Public License for more details.
 
14
 
15
# You should have received a copy of the GNU General Public License
 
16
# along with this program; if not, write to the Free Software
 
17
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
 
18
#
 
19
# Show the time taken for a query, including the time taken to 
 
20
# sort the results using filesort 
 
21
 
 
22
#pragma D option quiet
 
23
 
 
24
dtrace:::BEGIN
 
25
{
 
26
   printf("%-2s %-10s %-10s %9s %18s %-s \n",
 
27
          "St", "Who", "DB", "ConnID", "Dur microsec", "Query");
 
28
}
 
29
 
 
30
mysql*:::query-start
 
31
{
 
32
   self->query = copyinstr(arg0);
 
33
   self->who   = strjoin(copyinstr(arg3),strjoin("@",copyinstr(arg4)));
 
34
   self->db    = copyinstr(arg2);
 
35
   self->connid = arg1;
 
36
   self->querystart = timestamp;
 
37
   self->filesort = 0;
 
38
   self->fsdb = "";
 
39
   self->fstable = "";
 
40
}
 
41
 
 
42
mysql*:::filesort-start
 
43
{
 
44
  self->filesort = timestamp;
 
45
  self->fsdb = copyinstr(arg0);
 
46
  self->fstable = copyinstr(arg1);
 
47
}
 
48
 
 
49
mysql*:::filesort-done
 
50
{
 
51
   this->elapsed = (timestamp - self->filesort) /1000;
 
52
   printf("%2d %-10s %-10s %9d %18d Filesort on %s\n",
 
53
          arg0, self->who, self->fsdb,
 
54
          self->connid, this->elapsed, self->fstable);
 
55
}
 
56
 
 
57
mysql*:::query-done
 
58
{
 
59
   this->elapsed = (timestamp - self->querystart) /1000;
 
60
   printf("%2d %-10s %-10s %9d %18d %s\n",
 
61
          arg0, self->who, self->db,
 
62
          self->connid, this->elapsed, self->query);
 
63
}