Обсуждение: Perl script to pull SQL statements from CommLog

Поиск
Список
Период
Сортировка

Perl script to pull SQL statements from CommLog

От
David Gardner
Дата:
Thought this might be usefull to others. Every once and a while I start wondering what MS Access is doing to my
queries,and want to get an idea if the client app is actually using my indexes. I wrote a little Perl script to extract
theSQL statements from the CommLog output to make it easy for me to copy-paste statements into pgAdmin3.  It takes the
logfile in as a command line parameter, and spits the SQL statements to standard out, so running it looks like this: 
getSQLfromLog.pl psqlodbc_4364.log > output2.sql

Feel free to use/modify whatever. I'm not much of a Perl guy, so I won't be offended if you point out any errors/bugs.

---
David Gardner, IT
The Yucaipa Companies
(310) 228-2855


---------------------------  getSQLfromLog.pl ---------------------
#! /usr/bin/perl
# Author: David Gardner davidgardner28@gmail.com

if ($#ARGV == -1 ) {
  print ("Usage: getSQLfromLog.pl <source file>\n") and die;
} else {
  $fileName = $ARGV[0];
  open (SOURCE, $fileName) or die "Failed to open $fileName";
}

for $line (<SOURCE>) {
  if ($line =~ /query='/) {
    @fields = split(',', $line, 2);
    $query = $fields [1];
    $query =~ s/\ query='//ig;
    $query =~ s/'$//ig;
    print "$query";
  }
}

close SOURCE;