Simple Optimization Problem

Поиск
Список
Период
Сортировка
От secret
Тема Simple Optimization Problem
Дата
Msg-id 36F7B427.4079B01@kearneydev.com
обсуждение исходный текст
Ответы Re: [SQL] Simple Optimization Problem  (Bruce Momjian <maillist@candle.pha.pa.us>)
Список pgsql-sql
    I need to run a report using some parameters that are optional, I'm
doing this by labeling "0" as the optional value.  IE here is a
simplified example:

CREATE TABLE po (po_id int4 PRIMARY KEY, data text);
    (insert a bunch of rows)

ftc=> explain select * from po where po_id=8888;
NOTICE:  QUERY PLAN:

Index Scan using ipo_poid_units on po  (cost=2.05 size=1 width=94)

EXPLAIN

ftc=> explain select * from po where (po_id=8888 or 0=8888);
NOTICE:  QUERY PLAN:

Seq Scan on po  (cost=449.96 size=1751 width=94)

EXPLAIN

    I was hoping PostgreSQL could optimize out the boolean condition
given in the where clause, but it causes it to disregard the index
instead of throwing out 0=8888 in the first stage.

    This is the only way I can think to do this, I have crystal reports
send through the SQL instead of doing the whole thing itself(Which
involves returning all possible rows... Sigh)... This query is taking 20
minutes as a result... Is there any hope in 6.5 of the optimizer
handling this better?

David Secret
MIS Director
Kearney Development Co., Inc.


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

Предыдущее
От: Herouth Maoz
Дата:
Сообщение: Re: [SQL] string containing (')
Следующее
От: Forgacs Tamas
Дата:
Сообщение: transaction-lock?