Received: from localhost (maia-3.hub.org [200.46.204.184]) by postgresql.org (Postfix) with ESMTP id 1ADC19FA37A for ; Mon, 6 Aug 2007 11:59:46 -0300 (ADT) Received: from postgresql.org ([200.46.204.71]) by localhost (mx1.hub.org [200.46.204.184]) (amavisd-maia, port 10024) with ESMTP id 69196-04 for ; Mon, 6 Aug 2007 11:59:41 -0300 (ADT) X-Greylist: from auto-whitelisted by SQLgrey-1.7.5 Received: from sss.pgh.pa.us (sss.pgh.pa.us [66.207.139.130]) by postgresql.org (Postfix) with ESMTP id 2B08F9FB2A6 for ; Mon, 6 Aug 2007 11:59:11 -0300 (ADT) Received: from sss2.sss.pgh.pa.us (tgl@localhost [127.0.0.1]) by sss.pgh.pa.us (8.14.1/8.14.1) with ESMTP id l76Ewllc027460; Mon, 6 Aug 2007 10:58:47 -0400 (EDT) To: Henrik Zagerholm cc: pgsql-performance@postgresql.org Subject: Re: Extreme slow select query 8.2.4 In-reply-to: References: Comments: In-reply-to Henrik Zagerholm message dated "Mon, 06 Aug 2007 11:19:10 +0200" Date: Mon, 06 Aug 2007 10:58:47 -0400 Message-ID: <27459.1186412327@sss.pgh.pa.us> From: Tom Lane X-Virus-Scanned: Maia Mailguard 1.0.1 X-Archive-Number: 200708/45 X-Sequence-Number: 26175 Henrik Zagerholm writes: > ... FROM tbl_file_structure > JOIN tbl_file ON pk_file_id = fk_file_id > JOIN tbl_structure ON pk_structure_id = fk_structure_id > JOIN tbl_archive ON pk_archive_id = fk_archive_id > JOIN tbl_share ON pk_share_id = fk_share_id > JOIN tbl_computer ON pk_computer_id = fk_computer_id > JOIN tbl_filetype ON pk_filetype_id = fk_filetype_id > JOIN tbl_acl ON fk_file_structure_id = pk_file_structure_id > LEFT OUTER JOIN tbl_job ON tbl_archive.fk_job_id = pk_job_id > LEFT OUTER JOIN tbl_job_group ON tbl_job.fk_job_group_id = > pk_job_group_id > WHERE LOWER(file_name) LIKE LOWER('awstats%') AND > archive_complete = true AND job_group_type != 'R' GROUP BY > file_name, file_ctime, structure_path, pk_computer_id, filetype_icon, computer_name, > share_name, share_path ... Perhaps raising join_collapse_limit and/or work_mem would help. Although I'm not really sure why you expect the above query to be fast --- with the file_name condition matching 50K rows, and no selectivity worth mentioning in any other WHERE-condition, it's gonna have to do a heck of a lot of joining in any case. regards, tom lane