{SKIP}
К>> ИМХО, только !изменение! (что-то сродни prepeare)
К>> структыры where по значению парамета - было-бы очень
К>> полезно многим ....
AK> проще надо писать код, проще.
AK> :)
Хорошо, простайшая задача поиск товара по вхождению :)
с разными условиями скажем:
1. точное совпадение (тип поиска 1)
2. с начала (2)
3. с любой частью поля (3)
Задать на стороне клиента с макросами в FIBPlus НИЗЯ,
скажем запросик находится внутри SP в которой ещё
ищется цена товара, наличие на складе и прочяя :)
for select id, name from tovar
where ((:typesearch = 1) and (name = :searchstr))
or ((:typesearch = 2) and (name like :searchstr || '%'))
or ((:typesearch = 3) and (name like '%' || :searchstr || '%'))
do ....
вроде элементарно, оптимизатор правда пишет:
PLAN (TOVAR T INDEX (TOVAR_NAME))
НО !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Я думаю ты будешь удивлён ;)
Приведу пример:
=========================================================
select id, code from tovar
where ((:t = 1) and (code = :str))
or ((:t = 2) and (code != :str))
План
PLAN (TOVAR T INDEX (TOVAR_CODE))
Адаптированный план
PLAN (TOVAR T INDEX (TOVAR_CODE))
------ Performance info ------
Prepare time = 0ms
Execute time = 621ms
Avg fetch time = 621,00 ms
Current memory = 758═520
Max memory = 786═224
Memory buffers = 2═048
Reads from disk to cache = 2═126
Writes from cache to disk = 0
Fetches from cache = 404═825
=========================================================
select id, code from tovar
where ((:t = 1) and (code = :str))
План
PLAN (TOVAR T INDEX (TOVAR_CODE))
Адаптированный план
PLAN (TOVAR T INDEX (TOVAR_CODE))
------ Performance info ------
Prepare time = 0ms
Execute time = 10ms
Avg fetch time = 10,00 ms
Current memory = 662═452
Max memory = 786═224
Memory buffers = 2═048
Reads from disk to cache = 2
Writes from cache to disk = 0
Fetches from cache = 14
=========================================================
Так что есть смысл ? так это на манюсенькой таблице ...
А если туда ещё какой-то JOIN залепить ? прошу обратить
внимание на к-во Fetches ...
С уважением,
Константин Григорьевич.
===============
Если "низя", но очень "хотса" - то "мона" :)