Hello, WildSery!
You wrote  on Fri, 08 Jun 2007 18:26:32 +0400:

 >> Пока пришел к не очень красивому решению, когда при получении порции
 >> очереди записи просто лочатся апдейтом - но скорость решения будет не
 >> велика, как я понимаю, из-за накладных расходов на when any do.
 W> Напиши менеджера, который будет раздавать данные, он сам себя лочить не
 W> будет.

В общем случае роботы могут быть на разных машинах...

 >> да, еще вопрос - почему не срабатывает
 >> row_count = row_count +1; - ведь фетчим вроде по одной записи?
 >> Проверка с генератором показывает, что обращений после начала
 >> выполнения запроса к row_count нет - что кажется странным.
 W> С чего ты взял, что не срабатывает? Срабатывает. Только запрос уже
 W> выполнился, с определённым значением, и перевыполняться он не будет.

Ну, срабатывает - имелось ввиду в плане увеличения кол-ва выбираемых записей :)
Запрос - first ведь на сам запрос не влияет, а только обрывает фетч, насколько
я помню. А for select фетчит по одной записи

 W> Про генераторы чё-та не осилил.

Если вызов генератора поставить в условие - т.е. where gen_id()=0, то он будет
вызываться каждый раз. Я попытался вставить вызов генератора вместо параметра
first, что б проверить, когда происходит обращение к этому параметру - для 
каждой
строки, по аналогии с параметрами в условии, или единожды для запроса(как собсно
и оказалось).
Охота знать, почему так сделано - неужто столь высоки накладные расходы?
Или я еще где что пропустил(например в самом механизме параметров)?

--
-=Все люди равны. После соответствующей обработки. (с) С.Е. Лец=-
With best regards,  Nikolay Ponomarenko


Ответить