Re: Large querie with several EXISTS which will be often runned

Поиск
Список
Период
Сортировка
От Shridhar Daithankar
Тема Re: Large querie with several EXISTS which will be often runned
Дата
Msg-id 200306281505.00407.shridhar_daithankar@nospam.persistent.co.in
обсуждение исходный текст
Ответ на RE : Large querie with several EXISTS which will be often runned  ("Bruno BAGUETTE" <pgsql-ml@baguette.net>)
Список pgsql-performance
On Saturday 28 June 2003 14:47, Bruno BAGUETTE wrote:
> Do you mean this query ?
>
> SELECT
> products_options_groups.pk_prdoptgrp_id,products_options_groups.prdoptgr
> p_name
> FROM products_options_groups
> WHERE EXISTS
> (
>     SELECT *
>     FROM products_options_classification
>     INNER JOIN products_options ON products_options.pk_prdopt_id =
> products_options_classification.fk_prdopt_id
>     WHERE products_options_classification =
> products_options_groups.pk_prdoptgrp_id
>     AND products_options.fk_prd_id = [A PRODUCT ID WRITTEN HERE BY
> MY APP]
> )
> ORDER BY products_options_groups.prdoptgrp_name;

You can try

 SELECT
 products_options_groups.pk_prdoptgrp_id,products_options_groups.prdoptgr
 p_name
 FROM products_options_groups
 WHERE
 (
     SELECT  count(*)
     FROM products_options_classification
     INNER JOIN products_options ON products_options.pk_prdopt_id =
 products_options_classification.fk_prdopt_id
     WHERE products_options_classification =
 products_options_groups.pk_prdoptgrp_id
     AND products_options.fk_prd_id = [A PRODUCT ID WRITTEN HERE BY
 MY APP]
 )>0
 ORDER BY products_options_groups.prdoptgrp_name;

The count(*) trick will make it just another subquery and hopefully any
performance issues with exists/in does not figure. Some of those issues are
fixed in 7.4/CVS head though.

 HTH

 Shridhar


В списке pgsql-performance по дате отправления:

Предыдущее
От: "Bruno BAGUETTE"
Дата:
Сообщение: RE : Large querie with several EXISTS which will be often runned
Следующее
От: "Chris Hutchinson"
Дата:
Сообщение: 'best practises' to speed up sorting? tuning postgresql.conf