Posted: Wed May 13, 2009 1:29 pm Post subject: Отказ от выборки из BSET
Добрый день.
Столкнулся с проблемой производительности при выборке из BSET.
Code:
select * from bset appending corresponding fields of table all_bsis
where bukrs = SEL_BUKR
and HKONT in SEL_ACC
and MWSKZ in S_MWSKZ
and belnr in S_IDOCS
and ( txgrp = '1' or txgrp = '2' )
and MWSKZ <> space
and kbetr = 0.
Есть мысль повысить производительность, за счет отказа от bseg и реализации выборки напрямую из БД.
BSET является кластером, значит данные собраны из нескольких таблиц.
Вот вопрос что это за таблицы? Подскажите кто знает.
И еще вопросик: Названия некоторых столбцов в кластере могут не совпадать с названиями столбцов в таблицах БД. Есть ли какой-нидь документик, где описывается соотношение названий столбцов?
Age: 165 Joined: 04 Oct 2007 Posts: 1218 Location: Санкт-Петербург
Posted: Wed May 13, 2009 2:45 pm Post subject:
Добрый день!
Думаю, вы заблуждаетесь и путаете кластерную таблицу с view.
BSET хранится в таблице RFBLG, посмотрите ее структуру в se11, будет видно, что она состоит из ключа, нескольких служебных полей и одного длинного тектового поля, в котором хранятся все неключевые данные bset.
При чтении из кластерной таблицы важно, чтобы в условии where присутствовали ключевые поля в правильной последовательности, тогда выборка будет быстрой.
Для начала попробуйте поменять порядок полей в условии where вашего селекта, как указано ниже, возможно, оптимизатор не отработал.
Code:
select * from bset appending corresponding fields of table all_bsis
where bukrs = SEL_BUKR
and belnr in S_IDOCS
and HKONT in SEL_ACC
and MWSKZ in S_MWSKZ
and ( txgrp = '1' or txgrp = '2' )
and MWSKZ <> space
and kbetr = 0.
Спасибо за пояснения.
Правда у меня пишется что это "Таблица кластера".
Время работы не поменялось.
У меня тут глупый вопрос.
se30 показывает что 102 сек затрачивается на fetch bset.
Правильно ли я понимаю, что выборка не зависит от наличия ключевых полей?
Может, всетаки, есть возможность обойтись без bset?
Age: 48 Joined: 25 Jan 2008 Posts: 580 Location: Москва
Posted: Wed May 13, 2009 7:01 pm Post subject:
axaxa wrote:
Правильно ли я понимаю, что выборка не зависит от наличия ключевых полей?
Правильно
axaxa wrote:
Может, всетаки, есть возможность обойтись без bset?
Попробуйте разобраться, какая цель выборки.
Судя по select, нужно выбрать все записи с нулевой ставкой НДС.
Можно разбить работу на 2 части:
1. Выбрать записи кодов налога со ставками из A003 + KONP, оставить только те коды налога в S_MWSKZ, у которых есть запись с KONP-KBETR = 0. Правильную последовательность выборки можно посмотреть по трассировке через ST05 транзакции FTXP.
2. Выбрать записи из прозрачных таблиц BSIS, BSAS(если счета налогов у вас выравниваются) по условиям
select * from bsis appending corresponding fields of table all_bsis
where bukrs = SEL_BUKR
and belnr in S_IDOCS
and HKONT in SEL_ACC
and MWSKZ in S_MWSKZ.
На BSIS/BSAS хотя бы индексы можно нужные создать _________________ С уважением,
Удав.
Age: 165 Joined: 04 Oct 2007 Posts: 1218 Location: Санкт-Петербург
Posted: Fri May 15, 2009 3:27 pm Post subject:
axaxa wrote:
Время выполнения fetch от чего зависит? И можно ли его как-нибудь снизить?
Спасибо.
От самого селекта, от правильности работы оптимизатора (актуальности статистики), от загрузки сервера базы данных в момент выборки.
Снизить время выполнения возможно как правильным написанием самого селекта, чтобы в условии where максимально использовались поля, по которым существует индекс, так и уменьшение количества выбираемых полей. Но последнее влияет в меньшей степени.
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum You cannot attach files in this forum You can download files in this forum
All product names are trademarks of their respective companies. SAPNET.RU websites are in no way affiliated with SAP AG. SAP, SAP R/3, R/3 software, mySAP, ABAP, BAPI, xApps, SAP NetWeaver and any other are registered trademarks of SAP AG. Every effort is made to ensure content integrity. Use information on this site at your own risk.