SAPфорум.RU
https://www.sapboard.ru/forum/

Чтение таблиц BSEG и BKPF
https://www.sapboard.ru/forum/viewtopic.php?f=13&t=97886
Страница 1 из 1

Автор:  oko_5 [ Вт, авг 13 2019, 16:18 ]
Заголовок сообщения:  Чтение таблиц BSEG и BKPF

Очень медленно выбирается информация из таблицы BSEG или BKPF.
В программе ставлю оператор , например

data: zbseg type table of bseg with header line initial size 0.
data: zbkpf type table of bkpf with header line initial size 0.
.....
select * from bseg into table zbseg where
gjahr = gjahr1 and bukrs = '010L' and ( HKONT in zrah ) .

или

select * from bkpf into table zbkpf where
gjahr = gjahr1 and monat >= period1 and monat <= period2
and bukrs = '010L' and blart <> 'AZ'.

Подскажите , возможно есть правила , как верно писать SELECT * для того что б выборка происходила быстрее !!!

Автор:  ilya [ Вт, авг 13 2019, 17:26 ]
Заголовок сообщения:  Re: Чтение таблиц BSEG и BKPF

Для чтения BSEG по таким условиям приходится переберать все записи таблицы. Посмотрите таблицы BSIK BSAK BSID BSAD

Автор:  Yozhhhhh [ Вт, авг 13 2019, 17:50 ]
Заголовок сообщения:  Re: Чтение таблиц BSEG и BKPF

Выборка из BSEG всегда будет жестяная, даже если по ключевым полям.
Что уж говорить про выборку по HKONT.
И уж молчу про то, что в BSEG лежит много хлама, которое Вам не нужно при таком обращении (например, памятные позиции, модели, контировки, долгосрочные проводки).
Все это не влияет на сальдо и бухгалтерскими проводками не является.
Отсекать такое нужно по BSTAT, которого нет в BSEG, оно есть только во вторичных индексах и в BKPF. Джонить в этих целях BSEG также не выйдет (кластер).

ilya написал(а):
Для чтения BSEG по таким условиям приходится переберать все записи таблицы. Посмотрите таблицы BSIK BSAK BSID BSAD

Судя по выборке, описанной автором топика, уж тогда говорить надо про BSIS, BSAS. Там по HKONT выборка пронесется молниеносно.
И BSIS, BSAS есть много полей из BKPF. То есть очень часто это уже готовые для работы массивы данных.
Есть лишь одна проблема: некоторые поля в BSIS с BSEG не совпадают (и не обязаны).
Например, тот же ZUONR, потому что в BSEG для реконсилляции ZUONR идет из ключа сортировки контрагента, а в BSIS - из ключа сортировки счета ГК.
Но при некотором комплексе подготовительных мероприятий (обеспечить синхронное заполнение BSIS и BSEG в части подобных полей) почти всегда для решения задачи можно ограничиться выборкой из BSIS, BSAS.

Автор:  pberezin [ Ср, авг 14 2019, 09:19 ]
Заголовок сообщения:  Re: Чтение таблиц BSEG и BKPF

а почему автор стандартные ЛБД не использует для выборки?
Или тоже медленно?

Автор:  oko_5 [ Ср, авг 14 2019, 10:20 ]
Заголовок сообщения:  Re: Чтение таблиц BSEG и BKPF

Спасибо .Выборка с таблицы BSIS идет намного быстрее чем с BSEG . Но почему в таблице BSIS поле SGTXT не заполнено для позиции документа хотя в в таблице BSEG-SGTXT поле заполнено для этого документа и в документе текст к позиции заполнен ?Мне нужно значение этого поля !

Автор:  thebestsaper [ Ср, авг 14 2019, 10:58 ]
Заголовок сообщения:  Re: Чтение таблиц BSEG и BKPF  Тема решена

Цитата:
Но почему в таблице BSIS поле SGTXT не заполнено для позиции документа хотя в в таблице BSEG-SGTXT поле заполнено для этого документа и в документе текст к позиции заполнен ?Мне нужно значение этого поля !


вы точно проверили, по конкретному документу-году-балансовой?
Возможно ноты какой то не хватает, сложно сказать, так как поле стандртаное. В любом случае, если у вас есть номер документа из BSIS, то можете обратно в BSEG обратиться (по конкретным документам BSEG работает быстро)

А вообще с такими вопросами обращайтесь к консультанту, так как он должен дать Вам ТЗ где будет расписано какие данные из каких таблиц тянуть. Возможно есть альтарнативы

Автор:  Yozhhhhh [ Чт, авг 15 2019, 01:24 ]
Заголовок сообщения:  Re: Чтение таблиц BSEG и BKPF

oko_5 написала:
Спасибо .Выборка с таблицы BSIS идет намного быстрее чем с BSEG . Но почему в таблице BSIS поле SGTXT не заполнено для позиции документа хотя в в таблице BSEG-SGTXT поле заполнено для этого документа и в документе текст к позиции заполнен ?Мне нужно значение этого поля !

SGTXT в BSIS и BSEG разъезжаться не должны.
Есть перечень полей, которые могут отличаться "на коробочном" решении, пример я привел выше.
Но SGTXT 100% отличаться не может.
Как уже отмечено выше, проверьте ключ.

Автор:  Yozhhhhh [ Чт, авг 15 2019, 01:27 ]
Заголовок сообщения:  Re: Чтение таблиц BSEG и BKPF

thebestsaper написал(а):
вы точно проверили, по конкретному документу-году-балансовой?
Возможно ноты какой то не хватает, сложно сказать, так как поле стандртаное. В любом случае, если у вас есть номер документа из BSIS, то можете обратно в BSEG обратиться (по конкретным документам BSEG работает быстро)
А вообще с такими вопросами обращайтесь к консультанту, так как он должен дать Вам ТЗ где будет расписано какие данные из каких таблиц тянуть. Возможно есть альтарнативы

После выборки в 200 тыс. позиций обращаться к BSEG по конкретным документам? Это убийственно будет.
Даже если набрать массив активных ключей и выбрать из BSEG в несколько выборок пачками, а потом делать read table, это все равно какая-то непозволительная роскошь.

Автор:  jack_nsk [ Чт, авг 15 2019, 09:36 ]
Заголовок сообщения:  Re: Чтение таблиц BSEG и BKPF

oko_5 написала:
Очень медленно выбирается информация из таблицы BSEG или BKPF.
Подскажите , возможно есть правила , как верно писать SELECT * для того что б выборка происходила быстрее !!!

правило только одно - произвести декластеризацию подобных таблиц
SAP Strategy for Cluster and Pool Tables
Цитата:
Cluster and pool tables have been introduced by SAP in early releases to efficiently store information from several application tables in one database table.
Cluster tables combine information from several tables logically belonging together. They allow efficient access to a whole application object without incurring joins on database level.
Pool tables combine a large number of individual small tables into one database table, which adressed problems with large numbers of individual database objects.

чтобы побороть эти тормоза нужно привести эти таблицы к обычным траспаретным таблицам
How to: Declustering and depooling with NW 7.4 SP03 and higher on databases other than SAP HANA
после этих манипуляций даже индексы дополнительные не придется создавать без особой необходимости

Автор:  thebestsaper [ Чт, авг 15 2019, 11:05 ]
Заголовок сообщения:  Re: Чтение таблиц BSEG и BKPF

Цитата:
После выборки в 200 тыс. позиций обращаться к BSEG по конкретным документам? Это убийственно будет.


ну тут зависит от того, что нужно и в каком объеме. Если из 200 тыс в BSID мы выбрали-отфильтровали по каким то признакам 10 конкретных документов, которые нам надо, почему не пойти в BSEG и не вытянуть инфу, которая нужна?

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/