Текущее время: Чт, июл 31 2025, 17:22

Часовой пояс: 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 часа


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

Сейчас этот форум просматривают: Google [Bot]


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

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