Текущее время: Сб, авг 02 2025, 12:41

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 8 ] 
Автор Сообщение
 Заголовок сообщения: Cоздать ракурс c group by
СообщениеДобавлено: Вт, фев 17 2009, 08:34 
Начинающий
Начинающий

Зарегистрирован:
Чт, фев 12 2009, 17:12
Сообщения: 5
Пол: Мужской
Можно ли создать ракурс c конструкцией group by? если да, то как? если это невозможно, то как-нибудь уменьшить время выполнения запроса?
что-то навроде
Code:
SELECT MATNR SUM( LABST )
         INTO TABLE IMARD
         FROM MARD
         WHERE WERKS = WERKS
               GROUP BY MATNR .


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Cоздать ракурс c group by
СообщениеДобавлено: Вт, фев 17 2009, 08:47 
Специалист
Специалист

Зарегистрирован:
Чт, мар 22 2007, 14:40
Сообщения: 142
Пол: Мужской
Uralov написал:
Можно ли создать ракурс c конструкцией group by? если да, то как? если это невозможно, то как-нибудь уменьшить время выполнения запроса?
что-то навроде
Code:
SELECT MATNR SUM( LABST )
         INTO TABLE IMARD
         FROM MARD
         WHERE WERKS = WERKS
               GROUP BY MATNR .


на сколько я знаю ракурс с group by сделать нельзя, если не так пусть коллеги поправят,
но даже если бы это было возможно проблему производительности у Вас это бы не решило, ракурс в большенстве случаев это средство для удобства (т.к. по сути отрабатывают все те же select ы).
В данном случае посмотрите подхватывается ли index~0 в вашем селекте через ST05 (если он не подхватыватся то можно попросить базис пересобрать его, либо написать hint, либо новый индекс создайте для WERKS) так же было бы интерестно знать порядок кол-ва строк в MARD.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Cоздать ракурс c group by
СообщениеДобавлено: Вт, фев 17 2009, 09:55 
Начинающий
Начинающий

Зарегистрирован:
Чт, фев 12 2009, 17:12
Сообщения: 5
Пол: Мужской
Индекс есть по werks, он отрабатывает, всего в mard около 1,5 млн записей.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Cоздать ракурс c group by
СообщениеДобавлено: Вт, фев 17 2009, 10:21 
Специалист
Специалист

Зарегистрирован:
Чт, мар 22 2007, 14:40
Сообщения: 142
Пол: Мужской
хм, и что сильно тормозит ? план запроса тоже плохой ?

А если возможность по конкретной задаче, выбрать все таки сначала номера материалов которые нужны для нахождения остатков (и потом их включить в выборку по MARD) ? или о выбираемых материалах ни чего больше не изветстно ?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Cоздать ракурс c group by
СообщениеДобавлено: Вт, фев 17 2009, 11:19 
Начинающий
Начинающий

Зарегистрирован:
Чт, фев 12 2009, 17:12
Сообщения: 5
Пол: Мужской
нужны именно все материалы по заводу в разрезе складов, в отдельных случаях несколько заводов. в среднем время выполнения запроса только на один завод от 6 - 10 сек., а если их больше.... плюсом другие проблемные места :).
Понял, что ничего не попишешь уже, придется смириться... пользователям :oops:


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Cоздать ракурс c group by
СообщениеДобавлено: Вт, фев 17 2009, 11:40 
Специалист
Специалист

Зарегистрирован:
Чт, мар 22 2007, 14:40
Сообщения: 142
Пол: Мужской
попробуйте еще так

Code:
SELECT ..
INTO ..
FROM MARC
INNER JOIN MARD
   ON  MARD~matnr EQ MARC~matnr
   AND MARD~werks EQ MARC~werks
WHERE marc~werks EQ p_werks.


+ если по одному заводу не очень много материалов, можно попрбовать выбирать без group by а просто во внутренную табличку а потом делать collect. иногда это дает небольшое увеличение производительности а иногда и совсем на оборот, но поэксперементировать думаю можно.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Cоздать ракурс c group by
СообщениеДобавлено: Вт, фев 17 2009, 11:56 
Начинающий
Начинающий

Зарегистрирован:
Чт, фев 12 2009, 17:12
Сообщения: 5
Пол: Мужской
Спасибо, попробую с внутренними таблицами


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

Зарегистрирован:
Чт, мар 22 2007, 14:40
Сообщения: 142
Пол: Мужской
вообще странно что 1.5 милиона записей и для одного завода 5-6 секунд, с учетом индекса я думаю это слишком много.

у меня была похожая проблема и было кол-во записей ~20 милионов., и даже был индекс но он почему то отрабатывал всюду но только не в продуктивной системе ;)) после указания hint а для явного использования Z индекса по WERKS все стало куда более приемлимым (плюс, помоему, базисники обновляли статистику по MARD у).
посмотрите план запроса именно в той системе где самое большое кол-во записей что он показывает ?.


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 8 ] 

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


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

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


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

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