Текущее время: Вт, июл 01 2025, 05:58

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 22 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Мысли по оптимизации
СообщениеДобавлено: Ср, фев 01 2006, 14:58 
Старший специалист
Старший специалист

Зарегистрирован:
Вт, ноя 15 2005, 11:00
Сообщения: 288
Смысл такой: в отчет нужно вывести данные по кварталам. Что будет быстрее: 4 select с ограничениями по каждому кварталу- into itab
или
1 select - а в нем анализ даты и раcпихивать по таблицам в самом select'e?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: c
СообщениеДобавлено: Ср, фев 01 2006, 15:03 
Директор
Директор

Зарегистрирован:
Чт, авг 18 2005, 17:00
Сообщения: 1174
Откуда: РФ
Юзай se30

_________________
Покупайте отечественную продукцию! - и благополучие вернется к вам же!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, фев 01 2006, 15:06 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Чт, окт 27 2005, 17:13
Сообщения: 1068
Откуда: Из бессрочного бана
Пол: Мужской
В целях оптимизации предпочтительнее делать один select into table itab + соответствующая сортировка и последующая обработка полученной таблицы.

_________________
В бессрочном бане


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, фев 01 2006, 15:07 
Старший специалист
Старший специалист

Зарегистрирован:
Вт, ноя 15 2005, 11:00
Сообщения: 288
Это понятно, но в Тесте ничего не отличу - может кто из личного опыта уже знает. Если в 1 случае идет агрегирование в selecte по group, а во 2-м уже программно суммирование


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, фев 01 2006, 15:16 
Гость
тогда попробуй st05, там куча возможностей для оценки производительности


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения: Re: Мысли по оптимизации
СообщениеДобавлено: Ср, фев 01 2006, 15:17 
Старший специалист
Старший специалист

Зарегистрирован:
Ср, авг 18 2004, 09:17
Сообщения: 477
Откуда: Москва
Пол: Мужской
Морской написал(а):
Смысл такой: в отчет нужно вывести данные по кварталам. Что будет быстрее: 4 select с ограничениями по каждому кварталу- into itab
или
1 select - а в нем анализ даты и раcпихивать по таблицам в самом select'e?

А как ты по таблицам "распихаешь" в самом селекте? select - endselect?

Вообще в твоем случае - 1 select в itab и потом обработка внутренней таблицы программно. Можно и без сортировки обойтись.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Мысли по оптимизации
СообщениеДобавлено: Ср, фев 01 2006, 15:20 
Старший специалист
Старший специалист

Зарегистрирован:
Вт, ноя 15 2005, 11:00
Сообщения: 288
Дмитрий написал:
А как ты по таблицам "распихаешь" в самом селекте? select - endselect?


select.... .
здесь анализ строки таблицы
endselect.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, фев 01 2006, 15:23 
Гость
имеет значение предполагаемый размер внутренней таблицы, если она большая, то быстрее будет выполнить агрегирование в select
т.к. время записи данных во внутреннюю таблицу может быть довольно велико


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, фев 01 2006, 15:25 
Старший специалист
Старший специалист

Зарегистрирован:
Ср, авг 18 2004, 09:17
Сообщения: 477
Откуда: Москва
Пол: Мужской
Морской написал(а):
Это понятно, но в Тесте ничего не отличу - может кто из личного опыта уже знает. Если в 1 случае идет агрегирование в selecte по group, а во 2-м уже программно суммирование


Во втором случае сделай агрегирование по дням, если есть месяц, то по месяцам и потом программное суммирование. Все равно это предпочтительней, чем 4 селекта.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, фев 01 2006, 15:26 
Старший специалист
Старший специалист

Зарегистрирован:
Вт, ноя 15 2005, 11:00
Сообщения: 288
В общем смысл ясен - буду делать 2 варианта. В продуктиве погоняю. Вообще в книгах по оптимизации пишут, что все агрегирование делать только в select.


Последний раз редактировалось Морской Ср, фев 01 2006, 15:29, всего редактировалось 1 раз.

Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Мысли по оптимизации
СообщениеДобавлено: Ср, фев 01 2006, 15:26 
Старший специалист
Старший специалист

Зарегистрирован:
Ср, авг 18 2004, 09:17
Сообщения: 477
Откуда: Москва
Пол: Мужской
Морской написал(а):
Дмитрий написал:
А как ты по таблицам "распихаешь" в самом селекте? select - endselect?


select.... .
здесь анализ строки таблицы
endselect.

об этой конструкции забудь навсегда, если думаешь об оптимизации.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, фев 01 2006, 15:30 
Старший специалист
Старший специалист

Зарегистрирован:
Ср, авг 18 2004, 09:17
Сообщения: 477
Откуда: Москва
Пол: Мужской
nyar написал(а):
имеет значение предполагаемый размер внутренней таблицы, если она большая, то быстрее будет выполнить агрегирование в select
т.к. время записи данных во внутреннюю таблицу может быть довольно велико

Если мы сделаем группировку по дням, то вряд ли понадобится таблица более, чем с 366 записями... :)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, фев 01 2006, 15:39 
Гость
ну да, сперва в select'е наиболее укрупненно агрегируем (например для бухгалтерии это может быть поле "месяц финансового года"), а потом программно суммируем


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, фев 01 2006, 15:41 
Старший специалист
Старший специалист

Зарегистрирован:
Ср, авг 18 2004, 09:17
Сообщения: 477
Откуда: Москва
Пол: Мужской
Морской написал(а):
В общем смысл ясен - буду делать 2 варианта. В продуктиве погоняю. Вообще в книгах по оптимизации пишут, что все агрегирование делать только в select.

Дело в том, что OpenSQL урезан в синтаксисе, поэтому сделать подобное агрегирование только в запросе нельзя.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, фев 01 2006, 15:48 
Старший специалист
Старший специалист

Зарегистрирован:
Вт, ноя 15 2005, 11:00
Сообщения: 288
Дмитрий написал:
Морской написал(а):
В общем смысл ясен - буду делать 2 варианта. В продуктиве погоняю. Вообще в книгах по оптимизации пишут, что все агрегирование делать только в select.

Дело в том, что OpenSQL урезан в синтаксисе, поэтому сделать подобное агрегирование только в запросе нельзя.


Дак в этом и вопрос. Если 4 select с group by, то можно.


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

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


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

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


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

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