CftClub.ru
Клуб специалистов ЦФТ-Банк

Маленькие ошибки с большими ... - медленный mod

 
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Разработка в PL/PLUS. Оптимизация запросов Oracle
Предыдущая тема :: Следующая тема  
Автор Сообщение
oradba81
Гость



СообщениеЧт Дек 09, 2010 18:02   Маленькие ошибки с большими ... - медленный mod Ответить с цитатой
Полезность: Нет оценки
цикл тем о том "КАК НЕ надо Делать".

в контексте:
http://www.cftclub.ru/viewtopic.php?t=1752

про "медленный mod"

Код:
declare
  n number;
  counter number:=0;
begin
  for cur in (select * from document where create_date = :pdt )
  loop
    .....
    if ((counter mod 50) = 0 ) then
      &debug('Обработано '||counter);
    end if;
  end loop;
end;
Admin
Site Admin


Вступление в Клуб: 09.06.2007
СообщениеЧт Дек 09, 2010 22:50   Re: Маленькие ошибки с большими ... - медленный mod Ответить с цитатой
Полезность: Нет оценки
oradba81 пишет:

Код:
declare
  n number;
  counter number:=0;
begin
  for cur in (select * from document where create_date = :pdt )
  loop
    .....
    if ((counter mod 50) = 0 ) then
      &debug('Обработано '||counter);
    end if;
  end loop;
end;

А здесь в чём дело? Считаете, что mod вычисляется медленно? Или намекаете, что забыли в цикле увеличить counter? Но второе совершенно неочевидно из многоточия (может, счётчик увеличивается именно там)
И для чего в примере переменная n ?
"Если на стене висит ружьё - должно выстрелить"
oradba81
Гость



СообщениеПт Дек 10, 2010 11:14   Re: Маленькие ошибки с большими ... - медленный mod Ответить с цитатой
Полезность: Нет оценки
Admin пишет:
oradba81 пишет:

Код:
declare
  n number;
  counter number:=0;
begin
  for cur in (select * from document where create_date = :pdt )
  loop
    .....
    if ((counter mod 50) = 0 ) then
      &debug('Обработано '||counter);
    end if;
  end loop;
end;

А здесь в чём дело? Считаете, что mod вычисляется медленно? Или намекаете, что забыли в цикле увеличить counter? Но второе совершенно неочевидно из многоточия (может, счётчик увеличивается именно там)
И для чего в примере переменная n ?
"Если на стене висит ружьё - должно выстрелить"


Поясню
Admin пишет:
[Или намекаете, что забыли в цикле увеличить counter?

в одной из тем ответил, что в приведенном ошибки есть простые, а есть и сложные (это сделано специально), см тему:
http://www.cftclub.ru/viewtopic.php?t=1752

Admin пишет:
Считаете, что mod вычисляется медленно?

Уверен

Admin пишет:
[И для чего в примере переменная n ?

Это подсказка - в каком русле думать чтобы сделать быстрый код
r00st
Эксперт


Вступление в Клуб: 14.09.2007
СообщениеПт Дек 10, 2010 12:26    Ответить с цитатой
Полезность: Нет оценки
Есть мнение, что mod - не самое страшное зло, с которым встречается разработчик при решении задач.
Надеюсь, в конце топика автор предоставит пример(ы) с выкладками по сэкономленному времени выполнения процедур.
oradba81
Гость



СообщениеПт Дек 10, 2010 12:58    Ответить с цитатой
Полезность: Нет оценки
r00st пишет:
Есть мнение, что mod - не самое страшное зло, с которым встречается разработчик при решении задач.
Надеюсь, в конце топика автор предоставит пример(ы) с выкладками по сэкономленному времени выполнения процедур.


Прежде чем писать, Читать внимательно когда будем?

http://www.cftclub.ru/viewtopic.php?t=1752
oradba81 пишет:
Правильный ответ указывать НЕ буду, чтобы было надчем подумать, а не просто принимать готовенькое (что обычно часто забывается) .


oradba81 пишет:
Разгадок - не дам. Думайте!
А подсказки МОГУТбыть
r00st
Эксперт


Вступление в Клуб: 14.09.2007
СообщениеПт Дек 10, 2010 13:02    Ответить с цитатой
Полезность: Нет оценки
Простите, а Вы учить такими же методами собираетесь?
Кто последний в очереди?
oradba81
Гость



СообщениеПт Дек 10, 2010 13:08    Ответить с цитатой
Полезность: Нет оценки
r00st пишет:
Простите, а Вы учить такими же методами собираетесь?
Кто последний в очереди?


Просьба не перемешивать одну тему с другой.
Если есть вопрос в той теме, там и спрашивай.
На твой аналогичный вопрос, ответил где он был задан

http://www.cftclub.ru/viewtopic.php?t=1754
oradba81
Гость



СообщениеПн Дек 13, 2010 12:42    Ответить с цитатой
Полезность: Нет оценки
Подсказка:
что быстрее деление или вычитание?
И соответственно как на основе это можно переписать пример
.СергейПанин
Участник - экстремал


Вступление в Клуб: 24.06.2008
СообщениеПн Дек 13, 2010 12:53    Ответить с цитатой
Полезность: Нет оценки
oradba81 пишет:
Подсказка:
что быстрее деление или вычитание?
И соответственно как на основе это можно переписать пример


Код:

...
if n = 50 then
&debug('Обработано '||counter);
n := 0;
end if;
...
n:=n+1;
...

что то в этом духе что-ли?
oradba81
Гость



СообщениеПн Дек 13, 2010 13:01    Ответить с цитатой
Полезность: Нет оценки
DC_Sergey пишет:
oradba81 пишет:
Подсказка:
что быстрее деление или вычитание?
И соответственно как на основе это можно переписать пример


Код:

...
if n = 50 then
&debug('Обработано '||counter);
n := 0;
end if;
...
n:=n+1;
...

что то в этом духе что-ли?


5 баллов.
оказывается все просто
Показать сообщения:   
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Разработка в PL/PLUS. Оптимизация запросов Oracle Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах