Popeanga ,
Its basically possible to get the info programatically.
see below is an example perl code that is getting the
plan data:
############### file test.pl #################
#!/usr/bin/perl
use DBI;
$dbh = DBI->connect('dbi:Pg:dbname=rmallah' , '','');
$your_query_here= 'select * from test';
$rows = $dbh -> selectall_arrayref("EXPLAIN ANALYZE $your_query_here");
foreach (@$rows) { print "$_->[0]\n";
}
$dbh -> disconnect();
#############################################
on running you get:
[rmallah@subho rmallah]$ ./test.pl
Seq Scan on test (cost=0.00..20.00 rows=1000 width=32) (actual time=0.02..0.05 rows=11 loops=1)
Total runtime: 0.19 msec
But be careful abt explain analyzing
queries that potentially modify data. (read more on docs of EXPLAIN)
we have to put the explain analyze in a transaction block which
shud eventually be rollbacked.
now that you have seen how to get lines of output from EXPLAIN using/hadling this
data is upto you application.
also note that the last like of EXPLAIN analyze carries the runtime.
hope it helps
Mallah.
-----------------------------------------
Get your free web based email at trade-india.com. "India's Leading B2B eMarketplace.!"
http://www.trade-india.com/