Subject | [firebird-support] Re: Or vs Index |
---|---|
Author | Svein Erling Tysvaer |
Post date | 2003-07-17T10:39:38Z |
At 09:07 17.07.2003 +0000, you wrote:
of NATURAL or more than one index for all tables except the first. This
isn't neccessarily wrong, but if one of the indexes is far more selective
than the other I then modify the select to avoid the non-selective index
being used. Take the example I used in my previous answer, I would do
WHERE (HOSPITAL = :PARAM OR 2=0)
Since Firebird has no index on any of the constants 2 or 0, it cannot use
an index to find the hospital, I get the result I want and other users of
the database do not shout at me for making the database unavailable ;.)
For more specific help, you have to supply your query, plan and index
selectivity. Though I hope this gets you on the right track. Note that I
very rarely use outer joins (so I don't know how applicable such advice is
for such joins) and that these in general are slower than inner joins.
Set
- I support Firebird, I am a FirebirdSQL Foundation member.
- Join today at http://www.firebirdsql.org/ff/foundation
>I think I can use that to solve one of my past problem which untilWell, I always start with the plan the optimizer suggests, and look for use
>now haven't solve yet. I have a view which is very slow at first,
>what I did is to index all the field which where use in joining the
>table. Actually there are 4 tables in all in that view. But nothing
>happen.
>
>Can you give me an example how to we apply that or?
of NATURAL or more than one index for all tables except the first. This
isn't neccessarily wrong, but if one of the indexes is far more selective
than the other I then modify the select to avoid the non-selective index
being used. Take the example I used in my previous answer, I would do
WHERE (HOSPITAL = :PARAM OR 2=0)
Since Firebird has no index on any of the constants 2 or 0, it cannot use
an index to find the hospital, I get the result I want and other users of
the database do not shout at me for making the database unavailable ;.)
For more specific help, you have to supply your query, plan and index
selectivity. Though I hope this gets you on the right track. Note that I
very rarely use outer joins (so I don't know how applicable such advice is
for such joins) and that these in general are slower than inner joins.
Set
- I support Firebird, I am a FirebirdSQL Foundation member.
- Join today at http://www.firebirdsql.org/ff/foundation