Текущее время: Вт, июл 29 2025, 13:03

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


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

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


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

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