|Syntactic Confectionery Delight|
Re: Where the advice to use DBI bind parameters can go wrong (long)by mpeppler (Vicar)
|on Jun 14, 2002 at 22:58 UTC||Need Help??|
For Sybase the optimizer determines index usage when the query is run the first time. So if the first request only has a trailing '%' and the column has an index it will be used. A subsequent query with a leading '%' won't be incorrect - the optimizer detects the leading '%' and while it uses the index it will look at all the values for a match.
However, if the first query has a leading '%' then you will get a table scan each time.
I ran the following:
The showplan output shows that the index is used, but the stats IO shows that the second execute() call does a lot more work: