K>> А нельзя написать так:

K>> select first 1 s1.id
K>> from search(:val1) s1
K>>   left join search(:val2) s2 on (s1.id = s2.id)
K>> where s2.id is not null
K>> order by ???

К>    Помоему так ещё тормознутей будет, но попробую ...
К>    Проблема в том что не знаешь с каким параметром
К>    сколько возвратиться записей ...

   Не не катит :( как я и говорил некоторый выиграш если по первому
   параметру выбирается меньше чем по второму и то БЕЗ ORDER BY в
   обратном случаея просто вешаю сервак всерьез и надолго :(

   Наверное надо немножко обьяснить этот запрос генериться
   "пулемётом" исходя из выбранных пользователем полей и значений
   т.е. фактически процедура search имеет 3 параметра имя таблицы,
   имя поля и отбираемое значение. Я таким образом хочу реализовать
   "фильтр" с логической операцией "И" на стороне сервера и этих
   "параметров" м.б. несколько ...
   Построить прям по таблицах с каким либо join пока не получается
   (в SP поиска чего только не нашпиговано вплоть до проверки ACL)
   куча ветвлений и т.д. и т.п.
   Сеёчас это делается на стороне клиента обычным фильтром с
   соответственным БЕШЕННЫМ пожиранием сетевого трафика (я уж не
   говорю о памяти сжираемой на "клиенте") т.к. тянется весь
   многомиллионник на клиента ... Так бало сделано до меня, да и
   обьемы были поменьше ... ;)

   Да и на другом моём проэкте в всязи с применением ООПБД,
   задницей чуствую, придётся что-то подобное искать ...
   
С уважением,
Константин Григорьевич.
===============
Если "низя", но очень "хотса" - то "мона" :)



--~--~---------~--~----~------------~-------~--~----~
-~----------~----~----~----~------~----~------~--~---

Ответить