Subject | Inappropriate optimization? |
---|---|
Author | jebem_ti_registraciju |
Post date | 2005-09-25T04:25:05Z |
In pseudo code
create procedure (param integer)
begin
for select * from table t
where (:param is null) or (t.field = :param)
suspend;
end
The intention was to enable procedure to return all
records if a parameter is not provided. Aditional
conditions are posible. When parameter is provided
we have unindexed reads of all records in a table,
causing extreme slow execution.
Is there a way to make this possible and fast?
if () then
for *
else
for *
is not an option because select is big, it has three unions.
create procedure (param integer)
begin
for select * from table t
where (:param is null) or (t.field = :param)
suspend;
end
The intention was to enable procedure to return all
records if a parameter is not provided. Aditional
conditions are posible. When parameter is provided
we have unindexed reads of all records in a table,
causing extreme slow execution.
Is there a way to make this possible and fast?
if () then
for *
else
for *
is not an option because select is big, it has three unions.