On 20 Sep 2006 at 13:23, Bill Moran wrote:

> In response to Frank Sweetser <[EMAIL PROTECTED]>:
> 
> > On Wed, Sep 20, 2006 at 09:44:24AM -0400, Bill Moran wrote:
> > > Try them out ... if they make a significant improvement, use them.
> > 
> > As an aid to experimenting with indexes, and to help people give more hard
> > data, perhaps it might be usefull to add an option to dbcheck to output the
> > results of running explain (mysql, I assume postgresql has an equivalent) on
> > the queries used.  This info is really useful to find hotspots that would
> > benefit the most from adding an index or two.
> 
> Well, I have statement logging and query duration logging turned on
> on PostgreSQL on our production system.  Running dbcheck shows a bunch
> of intense queries, Here are some of the killers:
> 
> duration: 153056.519 ms  statement: SELECT Filename.FilenameId,
>  File.FilenameId FROM Filename LEFT OUTER JOIN File ON
>  (Filename.FilenameId=File.FilenameId) WHERE File.FilenameId IS NULL
> 
> bacula=> explain SELECT Filename.FilenameId,File.FilenameId FROM
>  Filename LEFT OUTER JOIN File ON (Filename.FilenameId=File.FilenameId)
>  WHERE File.FilenameId IS NULL;
>                                          QUERY PLAN
> ---------------------------------------------------------------------------------------------
>  Merge Left Join  (cost=0.00..824877.11 rows=506718 width=8)
>    Merge Cond: ("outer".filenameid = "inner".filenameid)
>    Filter: ("inner".filenameid IS NULL)
>    ->  Index Scan using filename_pkey on filename  (cost=0.00..23530.19 
> rows=506718 width=4)
>    ->  Index Scan using file_fp_idx on file  (cost=0.00..676093.57 
> rows=9918925 width=4)
> (5 rows)
> 
> Notice that it's using existing indexes, it's the join that's rough.
> 
> This one is rough as well:
> duration: 185632.013 ms  statement: SELECT DISTINCT Path.PathId,
>  File.PathId FROM Path LEFT OUTER JOIN File ON (Path.PathId=File.PathId)
>  WHERE File.PathId IS NULL
>                                            QUERY PLAN
> -------------------------------------------------------------------------------------------------
>  Unique  (cost=1819887.33..1824163.31 rows=570131 width=8)
>    ->  Sort  (cost=1819887.33..1821312.65 rows=570131 width=8)
>          Sort Key: path.pathid, file.pathid
>          ->  Merge Left Join  (cost=1587495.88..1760367.99 rows=570131 
> width=8)
>                Merge Cond: ("outer".pathid = "inner".pathid)
>                Filter: ("inner".pathid IS NULL)
>                ->  Index Scan using path_pkey on path  (cost=0.00..22662.91 
> rows=570131 width=4)
>                ->  Sort  (cost=1587495.88..1612293.20 rows=9918925 width=4)
>                      Sort Key: file.pathid
>                      ->  Seq Scan on file  (cost=0.00..278755.25 rows=9918925 
> width=4)
> 
> The query plan on this seems to indicate that an index on pathid would
> be helpful.  It's interesting that I didn't see any measurable
> improvement.

If I can get access to the databases in question, I know I can get 
speed ouf ot it.

-- 
Dan Langille : Software Developer looking for work
my resume: http://www.freebsddiary.org/dan_langille.php



-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys -- and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Bacula-users mailing list
Bacula-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bacula-users

Reply via email to