Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / ждать без sleep / 25 сообщений из 83, страница 1 из 4
13.06.2007, 14:12
    #34591773
Muxx1986
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ждать без sleep
Как можно ждать в функции без использования системных ресурсов, не используя функцию процедуры dbms_lock.sleep.То есть есть ли какой-то аналог этой процедуры?
Просто подключение пакета сопряжено с некоторыми трудностями.
...
Рейтинг: 0 / 0
13.06.2007, 14:14
    #34591781
db-man
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ждать без sleep
Код: plaintext
1.
2.
3.
l_start := sysdate;
while sysdate - l_start <  10  /  24 / 3600  loop
  null; -- или любая операция занимающая время
end loop;
...
Рейтинг: 0 / 0
13.06.2007, 14:16
    #34591787
Muxx1986
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ждать без sleep
А ресурсы эта штука не жрет. Это же сколько сравнений надо сделать, чтоб одну секунду прождать?
...
Рейтинг: 0 / 0
13.06.2007, 14:21
    #34591810
mcureenab
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ждать без sleep
Muxx1986А ресурсы эта штука не жрет. Это же сколько сравнений надо сделать, чтоб одну секунду прождать?

Ещё как жрёт!

PS. На дурацкие вопросы, можно получить только дурацкие ответы.
...
Рейтинг: 0 / 0
13.06.2007, 14:23
    #34591820
a398
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ждать без sleep
Muxx1986Просто подключение пакета сопряжено с некоторыми трудностями.
Решать их.
...
Рейтинг: 0 / 0
13.06.2007, 14:24
    #34591827
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ждать без sleep
Muxx1986не используя dbms_lock.sleep. Просто подключение пакета сопряжено с некоторыми трудностями.Лучше их преодолеть. Например, DBA может обврапить этот вызов отдельной процедурой и выдать права только на неё.
Хотя после прогона парочки прогонов токих вечных циклов он сам прибежит искать консенсус :)

Ещё под выдерживание таймаута можно приспособить dbms_pipe, utl_tcp, utl_http, ... :)
...
Рейтинг: 0 / 0
13.06.2007, 14:25
    #34591828
db-man
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ждать без sleep
Muxx1986А ресурсы эта штука не жрет. Это же сколько сравнений надо сделать, чтоб одну секунду прождать?
Жрёт :)

А итераций не очень много:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
declare
  l_start date;
  cntr number;
  dummy number;
begin
  l_start := sysdate;
  cntr :=  0 ;
  while sysdate - l_start <  10  /  24 / 3600  loop
    cntr := cntr +  1 ;
  end loop;
  dbms_output.put_line('Iterations with NULL: ' || cntr);
  l_start := sysdate;
  cntr :=  0 ;
  while sysdate - l_start <  10  /  24 / 3600  loop
    dummy := sin(cos(tan(cntr)));
    cntr := cntr +  1 ;
  end loop;
  dbms_output.put_line('Iterations with OPs: ' || cntr);
end;

Iterations with NULL:  135315 
Iterations with OPs:  8023 
Для точности лучше не sysdate использовать, а dbms_utility.get_time
Еще наверняка можно на Java написать. Может кто умеет?
...
Рейтинг: 0 / 0
13.06.2007, 14:25
    #34591830
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ждать без sleep
Muxx1986Просто подключение пакета сопряжено с некоторыми трудностями.
Полагаю, Вам лучше эти трудности преодолеть.
Sleep, конечно, сделать можно - например, повиснуть на блокировке, которая освободится через заданное время параллельным процессом (на вскидку - можно соорудить из двух job и dbms_pipe), то это сильно напоминает удаление гланд через задний проход.
...
Рейтинг: 0 / 0
13.06.2007, 14:27
    #34591834
Muxx1986
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ждать без sleep
Какие остроумные ответы. Можно было бы просто написать "Не знаю".
Возможности обойтись без dbms_lock.sleep нету?
...
Рейтинг: 0 / 0
13.06.2007, 14:33
    #34591861
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ждать без sleep
Muxx1986Какие остроумные ответы. Можно было бы просто написать "Не знаю".
Возможности обойтись без dbms_lock.sleep нету?
Вы читать не умеете? Вам предложили несколько вариантов на выбор, но все сходятся в том, что лучшим решением будет все-таки использование dbms_lock.sleep.
...
Рейтинг: 0 / 0
13.06.2007, 14:34
    #34591865
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ждать без sleep
Muxx1986Какие остроумные ответы. Что ж. Тогда создавай себе и решай свои проблемы сам.
...
Рейтинг: 0 / 0
13.06.2007, 14:35
    #34591867
slepslap
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ждать без sleep
Muxx1986Какие остроумные ответы. Можно было бы просто написать "Не знаю".
Возможности обойтись без dbms_lock.sleep нету?

Блокировки допустимы?
...
Рейтинг: 0 / 0
13.06.2007, 14:52
    #34591925
Gluk (Kazan)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ждать без sleep
db-man
Код: plaintext
1.
2.
3.
l_start := sysdate;
while sysdate - l_start <  10  /  24 / 3600  loop
  null; -- или любая операция занимающая время
end loop;


убивать на месте
...
Рейтинг: 0 / 0
13.06.2007, 14:53
    #34591932
Gluk (Kazan)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ждать без sleep
slepslap Muxx1986Какие остроумные ответы. Можно было бы просто написать "Не знаю".
Возможности обойтись без dbms_lock.sleep нету?

Блокировки допустимы?

зачем решать через жопу то что всегда можно решить прямо ?
...
Рейтинг: 0 / 0
13.06.2007, 14:55
    #34591942
mcureenab
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ждать без sleep
slepslap Muxx1986Какие остроумные ответы. Можно было бы просто написать "Не знаю".
Возможности обойтись без dbms_lock.sleep нету?

Блокировки допустимы?

авторподключение пакета (dbms_lock) сопряжено с некоторыми трудностями


PS. Воистину, на одну здравую мысль есть бесконечное множество дурацких.
...
Рейтинг: 0 / 0
13.06.2007, 15:13
    #34592044
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ждать без sleep
mcureenab slepslapБлокировки допустимы?Твоя мысль неочевидна. Но если ты на вопрос отвечаешь словами автора, то сам же попадпешь в то самое множество
...
Рейтинг: 0 / 0
13.06.2007, 15:18
    #34592074
andreymx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ждать без sleep
а этот sleep - он точно нужен? Может, без него можно обойтись? Чего вы ждёте-то на сервере/от сервера?
...
Рейтинг: 0 / 0
13.06.2007, 15:24
    #34592092
db-man
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ждать без sleep
убивать на месте
Угу. Но это они сами виноваты - привилегию не хотят давать :)

Еще вот что есть: SYS.DBMS_BACKUP_RESTORE.SLEEP(10);
Но на этот пакет у вас 100% нет прав.
...
Рейтинг: 0 / 0
13.06.2007, 15:25
    #34592098
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ждать без sleep
db-man убивать на месте
Угу. Но это они сами виноваты - привилегию не хотят давать :)
Справедливости ради следует отметить, что не всегда возможно дать привилегии без остановки эксплуатируемой прикладной системы.
...
Рейтинг: 0 / 0
13.06.2007, 15:29
    #34592124
evgenyg
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ждать без sleep
Вызов :dbms_lock.sleep == semtimedop (SunOS star 5.10)
Таким образом напишите программку на C которая получит номер светофора используемый ораклом вызовите ее из оракла и будет вам счастье
...
Рейтинг: 0 / 0
13.06.2007, 15:36
    #34592151
Сына
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ждать без sleep
evgenygВызов :dbms_lock.sleep == semtimedop (SunOS star 5.10)
Таким образом напишите программку на C которая получит номер светофора используемый ораклом вызовите ее из оракла и будет вам счастье
Гыг )))
...
Рейтинг: 0 / 0
13.06.2007, 15:40
    #34592172
db-man
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ждать без sleep
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
create or replace
procedure my_sleep( p_sleep in number )
as language java
name 'java.lang.Thread.sleep( long )';
/

SQL> begin
   2     my_sleep( 5000 );
   3   end;
   4   /

PL/SQL procedure successfully completed.

Elapsed:  00 : 00 : 05 . 00 
...
Рейтинг: 0 / 0
13.06.2007, 15:41
    #34592178
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ждать без sleep
db-manas language java
А теперь вернемся к вопросу о ресурсах... Во что, говорите, обходится запуск такой функции?
...
Рейтинг: 0 / 0
13.06.2007, 15:48
    #34592211
Fucker
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ждать без sleep
Gluk (Kazan)зачем решать через жопу то что всегда можно решить прямо ?Как один из вариантов объяснения причин: http://www.neuro.net.ru/bibliot/b003/sx04060.html

А может мы просто отстали от жизни и это мода нынче такая: http://voffka.com/archives/2007/06/13/036254.html

Fucker
...
Рейтинг: 0 / 0
13.06.2007, 15:48
    #34592214
evgenyg
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ждать без sleep
Сына evgenygВызов :dbms_lock.sleep == semtimedop (SunOS star 5.10)
Таким образом напишите программку на C которая получит номер светофора используемый ораклом вызовите ее из оракла и будет вам счастье
Гыг )))
semop, semtimedop - semaphore operations , а как я это назвал без разницы :).
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / ждать без sleep / 25 сообщений из 83, страница 1 из 4
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]