Текущее время: Ср, июл 30 2025, 21:54

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 20 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения: Re: Производительность
СообщениеДобавлено: Пт, апр 03 2009, 12:07 
Менеджер
Менеджер

Зарегистрирован:
Вт, авг 17 2004, 13:14
Сообщения: 664
Откуда: Москва
Пол: Мужской
Rednaxela написал:
Code:
SELECT * FROM BKPF APPENDING CORRESPONDING FIELDS OF TABLE RBKPF
WHERE BUKRS = BUKRS
   AND BLDAT IN ZDOCDATE
   AND BUDAT IN ZPSTDATE
   AND CPUDT IN ZENTDATE .

Был у меня случай, когда излишне навороченный и давно уже не читаемый отчет работал СЛИШКОМ долго. Его приходилось запускать в фоне на ночь. Индексов там тоже не было, выборка тоже шла по интервалу дат. Я оценил максимальный и минимальный номер документа в требуемом диапозоне дат и сделал избыточную выборку WHERE belnr BETWEEN l_min_belnr AND l_max_belnr. Потом в LOOP просто игнорировал случайные документы. Отчет стал выполняться за 2 минуты (!). Но использовать такой подход лучше в отчетах-помойках. Сильно понижается читаемость кода.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Производительность
СообщениеДобавлено: Пт, апр 03 2009, 12:39 
Специалист
Специалист

Зарегистрирован:
Чт, мар 22 2007, 14:40
Сообщения: 142
Пол: Мужской
Tim написал:
Был у меня случай, когда излишне навороченный и давно уже не читаемый отчет работал СЛИШКОМ долго. Его приходилось запускать в фоне на ночь. Индексов там тоже не было, выборка тоже шла по интервалу дат. Я оценил максимальный и минимальный номер документа в требуемом диапозоне дат и сделал избыточную выборку WHERE belnr BETWEEN l_min_belnr AND l_max_belnr. Потом в LOOP просто игнорировал случайные документы. Отчет стал выполняться за 2 минуты (!). Но использовать такой подход лучше в отчетах-помойках. Сильно понижается читаемость кода.


а как вы оценивали l_min_belnr и l_max_belnr ? империческим путем ? или же просто взяли max min из нумератора (SNRO) (допустим для текущего года и БЕ) ?

при использовании такого варианта, нужно учитывать размер выбираемых данных во внутреннюю табличку, а то окажеться, что вы выбираете половину таблички из БД во внутренюю т.е. в буффер памяти ;)) а она то не резиновая ;))


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Производительность
СообщениеДобавлено: Пт, апр 03 2009, 12:54 
Менеджер
Менеджер

Зарегистрирован:
Вт, авг 17 2004, 13:14
Сообщения: 664
Откуда: Москва
Пол: Мужской
Pokusannoe_Zubilo написал:
а как вы оценивали l_min_belnr и l_max_belnr ?

Это было 7 лет назад, я точно уже не скажу, как. Помню, что обошелся с помощью SELECT SINGLE. Агрегатные ф-ции не использовал.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Производительность
СообщениеДобавлено: Вс, сен 06 2009, 21:55 
Младший специалист
Младший специалист

Зарегистрирован:
Вт, мар 13 2007, 22:57
Сообщения: 71
Yellow Raven написала:
А можно использовать SORT + READ BINARY + LOOP ... FROM + IF ... EXIT ENDIF


приведите, пример кода. мне не понятно как эта комбинация применима.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Производительность
СообщениеДобавлено: Пн, сен 07 2009, 01:16 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Чт, мар 09 2006, 10:12
Сообщения: 565
Откуда: Волгодонск
Пол: Мужской
Code:
data: begin of itx occurs 0,
            y type ....
         end   of ity.
....................
sort itx by y.
read table itx with key y = Y binary search.
loop at itx from sy-tabix.
  if itx-y <> Y. exit. endif.
............................
endloop.

Дело в том что в этом случае loop начинается с позиции которую мы нашли с помощью binary search.

_________________
Изображение Попытка не пытка


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 20 ]  На страницу Пред.  1, 2

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB