*** /usr/bin/mysqldumpslow 2006-06-16 14:13:07.000000000 +0300 --- /home/thierry/workspace/mysql/mydumpslow 2006-07-31 12:09:44.829819036 +0300 *************** *** 4,9 **** --- 4,10 ---- # Original version by Tim Bunce, sometime in 2000. # Further changes by Tim Bunce, 8th March 2001. # Handling of strings with \ and double '' by Monty 11 Aug 2001. + # Show database name by Thierry Randrianiriana 31st Jul 2006. use strict; use Getopt::Long; *************** *** 67,72 **** --- 68,74 ---- my @pending; my %stmt; + my $db; $/ = ";\n#"; # read entire statements using paragraph mode while ( defined($_ = shift @pending) or defined($_ = <>) ) { warn "[[$_]]\n" if $opt{d}; # show raw paragraph being read *************** *** 78,83 **** --- 80,87 ---- next; } + $db=$1 if(/use (.*);\n/i); + s/^#? Time: \d{6}\s+\d+:\d+:\d+.*\n//; my ($user,$host) = s/^#? User\@Host:\s+(\S+)\s+\@\s+(\S+).*\n// ? ($1,$2) : ('',''); *************** *** 121,126 **** --- 125,131 ---- $s->{r} += $r; $s->{users}->{$user}++ if $user; $s->{hosts}->{$host}++ if $host; + $s->{dbs}->{$db}++ if $db; warn "{{$_}}\n\n" if $opt{d}; # show processed statement string } *************** *** 144,149 **** my $user = (@users==1) ? $users[0] : sprintf "%dusers",scalar @users; my @hosts = keys %{$v->{hosts}}; my $host = (@hosts==1) ? $hosts[0] : sprintf "%dhosts",scalar @hosts; ! printf "Count: %d Time=%.2fs (%ds) Lock=%.2fs (%ds) Rows=%.1f (%d), $user\@$host\n%s\n\n", $c, $at,$t, $al,$l, $ar,$r, $_; } --- 149,156 ---- my $user = (@users==1) ? $users[0] : sprintf "%dusers",scalar @users; my @hosts = keys %{$v->{hosts}}; my $host = (@hosts==1) ? $hosts[0] : sprintf "%dhosts",scalar @hosts; ! my @dbs = keys %{$v->{dbs}}; ! my $db = (@dbs==1) ? $dbs[0] : sprintf "%ddbs",scalar @dbs; ! printf "Count: %d Time=%.2fs (%ds) Lock=%.2fs (%ds) Rows=%.1f (%d), Database: $db $user\@$host\n%s\n\n", $c, $at,$t, $al,$l, $ar,$r, $_; }