Текущее время: Сб, июл 26 2025, 11:42

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 18 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Оптимизация запроса на ABAP
СообщениеДобавлено: Пт, янв 13 2012, 09:34 
Специалист
Специалист

Зарегистрирован:
Ср, окт 07 2009, 16:05
Сообщения: 106
Добрый день

Подскажите, пожалуйста, как можно оптимизировать запрос, чтоб он выполнялся побыстрее

Code:
SELECT
  BS~BELNR AS BELNR_01
  BS~GJAHR AS GJAHR_01
  BS~HKONT AS HKONT_01
  BS~DMBTR AS DMBTR_01
  BS~BUDAT AS BUDAT_01
  BS_1~zuonr AS LIFNR_01
  BS_1~SGTXT AS SGTXT_02
APPENDING CORRESPONDING FIELDS OF TABLE T
FROM BSIS AS BS
  INNER JOIN BSIS AS BS_1 ON ( BS~BELNR = BS_1~BELNR ) AND ( BS~GJAHR = BS_1~GJAHR ) AND ( BS_1~SHKZG = 'H' )
WHERE BS~BELNR IN BELNR_VV AND BS~GJAHR IN GJAHR_VV AND BS~HKONT IN HKONT_VV AND BS~SHKZG = 'S' AND BS~BUDAT IN BUDAT_VV and BS_1~ZUONR in LIFNR_VV.


В выборке ставлю ограничение по LIFNR_VV и по дате - за 1 месяц. Запрос возвращает меньше 10 строк, выполняется около 20 минут (


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Оптимизация запроса на ABAP
СообщениеДобавлено: Пт, янв 13 2012, 09:46 
Старший специалист
Старший специалист

Зарегистрирован:
Вт, ноя 18 2008, 10:40
Сообщения: 342
Откуда: Пермь
Пол: Мужской
Добавить BS~BUKRS = BS_1~BUKRS в join. LIFNR_VV это у вас ограничение не на bseg-lifnr?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Оптимизация запроса на ABAP
СообщениеДобавлено: Пт, янв 13 2012, 09:52 
Специалист
Специалист

Зарегистрирован:
Ср, окт 07 2009, 16:05
Сообщения: 106
zsap написал:
LIFNR_VV это у вас ограничение не на bseg-lifnr?


Code:
select-options: belnr_vv for bsis-belnr.
select-options: gjahr_vv for bsis-gjahr .
select-options: hkont_vv for bsis-hkont .
select-options: budat_vv for bsis-budat.
[b]select-options: lifnr_vv for bsis-zuonr .
[/b]


В таблиске bsis две строчки - в первой строчке в поле bsis-zuonr хранится обычный какой то номер, а во второй строчке хранится номер кредитора - как раз по которому мне нужно ограничивать. Эти строчки я различаю по полю ( BS_1~SHKZG она равна либо 'H' либо 'S' )

С BUKRS сейчас попробую


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Оптимизация запроса на ABAP
СообщениеДобавлено: Пт, янв 13 2012, 10:00 
Старший специалист
Старший специалист

Зарегистрирован:
Вт, ноя 18 2008, 10:40
Сообщения: 342
Откуда: Пермь
Пол: Мужской
Если кредитор по которому ищите ведется в сапе, можно попробовать сначала найти его контрольный счет lfb1-akont, и с ним уже идти в bsis (поле hkont)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Оптимизация запроса на ABAP
СообщениеДобавлено: Пт, янв 13 2012, 10:06 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пт, янв 21 2005, 12:40
Сообщения: 371
Пол: Мужской
Если выбираете из BSIS, то обязательно ставьте ограничение по BUKRS и HKONT (смотрите в этой таблице только один индекс).
Если нужно выбирать по известному кредитору - выбирайте из BSIK по BUKRS, LIFNR.
Все летать будет


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Оптимизация запроса на ABAP
СообщениеДобавлено: Пт, янв 13 2012, 10:08 
Специалист
Специалист

Зарегистрирован:
Ср, окт 07 2009, 16:05
Сообщения: 106
Да, кредитор ведется в SAP, но получается же что у нескольких кредиторов может быть один и тот же счет lfb1-akont. И не получится определить какой именно нужен если не связываться по коду BS_1~zuonr.

BS~BUKRS = BS_1~BUKRS - это добавила - все равно очень долго... такое ощущение что что-то ему не хватает.... (


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Оптимизация запроса на ABAP
СообщениеДобавлено: Пт, янв 13 2012, 10:31 
Старший специалист
Старший специалист

Зарегистрирован:
Вт, ноя 18 2008, 10:40
Сообщения: 342
Откуда: Пермь
Пол: Мужской
Так hkont-а и не хватает ) Попробуйте добавить. Что их несколько роли не играет (условие bsis-zuonr убирать не надо)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Оптимизация запроса на ABAP
СообщениеДобавлено: Пт, янв 13 2012, 10:34 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пн, май 12 2008, 09:07
Сообщения: 334
Откуда: Tbilisi, GE
Пол: Мужской
PP написал:
Если выбираете из BSIS, то обязательно ставьте ограничение по BUKRS и HKONT (смотрите в этой таблице только один индекс).
Если нужно выбирать по известному кредитору - выбирайте из BSIK по BUKRS, LIFNR.
Все летать будет


Поддерживаю!
Намного проще взять необходимые позиции из BSIK, а уж если для них чего-то не хватает - добрать из BSEG, BKPF - у вас будет полный ключ для обращения к этим таблицами после выборки необходимых позиций из BSIK.
Даже одним select, но все равно - если идете от кредитора - начинать от BSIK.

Посоветовать точнее можно лишь при более точном знании условия основной задачи.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Оптимизация запроса на ABAP
СообщениеДобавлено: Пт, янв 13 2012, 10:39 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пн, май 12 2008, 09:07
Сообщения: 334
Откуда: Tbilisi, GE
Пол: Мужской
Отдельно по ZUONR

Коллеги, это самое обыкновенное текстовое поле, которое от текста позиции отличается лишь тем, что система умеет сама заполнять его.
Опираясь на "ключ сортировки" указанный в атрибутах счета.

1. Значение этого поля может быть изменено пользователем;
2. При создании новых документов по модели предыдущих - значение поля не обновляется!

Вывод - НИ В КОЕМ СЛУЧАЕ не стоит полагаться на это поле при любых выборках.
Использовать из него информацию - можно, но строить на нем фундамент выборки искренне не рекомендую.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Оптимизация запроса на ABAP
СообщениеДобавлено: Пт, янв 13 2012, 10:49 
Специалист
Специалист

Зарегистрирован:
Ср, окт 07 2009, 16:05
Сообщения: 106
Изначально нужен отчет с номера счетов и с номерами кредиторов, в FBL1N - можно задать по кредитору, но не видно будет номер счета...

Как я понимаю все документы хранятся в табличке BSIS, если документ выравнен он попадает в BSAK, если не выравнен то в BSIK. Мне нужно будет просто связывать BSIS с BSAK и BSIS с BSIK. И должно получиться все нормально ? )


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Оптимизация запроса на ABAP
СообщениеДобавлено: Пт, янв 13 2012, 10:56 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
Skippy написал(а):
Как я понимаю все документы хранятся в табличке BSIS

И BSAS.
Одна и та же позиция документа будет храниться и в BSIS, и в BSIK, если она не выровнена, и в BSAS/BSAK, если выровнена.

_________________
С уважением,
Удав.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Оптимизация запроса на ABAP
СообщениеДобавлено: Пт, янв 13 2012, 11:01 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пн, май 12 2008, 09:07
Сообщения: 334
Откуда: Tbilisi, GE
Пол: Мужской
Skippy

Открытые или выравненные позиции? Открытые и выравненные позиции?
На текущий момент или на определенную дату?

Повторюсь, если важно ограничение по КРЕДИТОРУ в выбираемых позициях, то забыть о BSIS & BSAS - только BSIK [&BSAK]


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Оптимизация запроса на ABAP
СообщениеДобавлено: Пт, янв 13 2012, 11:06 
Специалист
Специалист

Зарегистрирован:
Ср, окт 07 2009, 16:05
Сообщения: 106
В отчете необходимо видеть и открытые и выравненные позиции на определенную дату (все операции за месяц), выборка может осуществляться как по номеру кредитора, так и по номеру счета. Номера счета, к сожалению, нет в табличке BSIK - поэтому необходимо связываться с ней. А так как в BSIK хранятся только не выравненные позиции то еще будет селект с BSAK.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Оптимизация запроса на ABAP
СообщениеДобавлено: Пт, янв 13 2012, 11:08 
Старший специалист
Старший специалист

Зарегистрирован:
Вт, ноя 18 2008, 10:40
Сообщения: 342
Откуда: Пермь
Пол: Мужской
Skippy написал(а):
Изначально нужен отчет с номера счетов и с номерами кредиторов, в FBL1N - можно задать по кредитору, но не видно будет номер счета...

bseg-hkont есть, а какой еще счет вы хотите там увидеть?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Оптимизация запроса на ABAP
СообщениеДобавлено: Пт, янв 13 2012, 11:08 
Специалист
Специалист

Зарегистрирован:
Ср, окт 07 2009, 16:05
Сообщения: 106
Удав написал(а):
Skippy написал(а):
Как я понимаю все документы хранятся в табличке BSIS

И BSAS.
Одна и та же позиция документа будет храниться и в BSIS, и в BSIK, если она не выровнена, и в BSAS/BSAK, если выровнена.


Странно, у меня почему-то в BSIS хранится и выравненная и не выравненная позиция - отличие в том, что выравненного документа одна строчка, а не выравненного документа две.


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

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


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

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


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

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