SAP R/3 форум ABAP консультантов
Russian ABAP Developer's Club

Home - FAQ - Search - Memberlist - Usergroups - Profile - Log in to check your private messages - Register - Log in - English
Blogs - Weblogs News

Оптимизация. Особенности СУБД?



 
Post new topic   Reply to topic    Russian ABAP Developer's Club Forum Index -> ABAP
View previous topic :: View next topic  
Author Message
Dmitriy
Аналитик
Аналитик


Age: 47
Joined: 14 Nov 2008
Posts: 300
Location: Russia

PostPosted: Thu Mar 03, 2011 2:52 pm    Post subject: Оптимизация. Особенности СУБД? Reply with quote

Коллеги, добрый день.
Обнаружил в топике http://www.sapnet.ruviewtopic.php?t=302 (как раз занимаюсь сейчас оптимизацией):
Quote:
I ran the program a number of times in a 4.7 environment with DB2 databases...
The following statement:
Code:
SELECT bukrs belnr gjahr 
FROM bkpf 
INTO TABLE bkpf_int 
  WHERE bukrs IN s_bukrs
    AND belnr IN s_belnr 
    AND gjahr EQ p_gjahr.

Is far less efficient than (Намного менее эффективно чем):
Code:
SELECT t001~bukrs bkpf~belnr bkpf~gjahr
FROM bkpf
 INNER JOIN t001 ON
 t001~bukrs EQ bkpf~bukrs
 INTO TABLE bkpf_int
 WHERE t001~bukrs IN s_bukrs
   AND bkpf~belnr IN s_belnr
   AND bkpf~gjahr EQ p_gjahr.
when a range of company codes is used.

Для Oracle 10 это не так: первый SELECT в среднем быстрее на 10-15%... Особенности СУБД, диспетчера запросов?

_________________
ABAP/4 You
Back to top
View user's profile Send private message
Удав
Гуру
Гуру


Age: 48
Joined: 25 Jan 2008
Posts: 580
Location: Москва

PostPosted: Thu Mar 03, 2011 4:17 pm    Post subject: Reply with quote

По-моему просто напутали.
Как SELECT по ОДНОЙ таблице может выполняться быстрее, чем по ДВУМ? Тем более одна из которых буферизована Smile
Есть конечно сложные случаи, но в целом я руководствуюсь нотами 766349 (FAQ: Oracle SQL optimization) и 825653 - Oracle: Common misconceptions .

_________________
С уважением,
Удав.
Back to top
View user's profile Send private message
Dmitriy
Аналитик
Аналитик


Age: 47
Joined: 14 Nov 2008
Posts: 300
Location: Russia

PostPosted: Thu Mar 03, 2011 4:21 pm    Post subject: Reply with quote

Удав wrote:
По-моему просто напутали.
Как SELECT по ОДНОЙ таблице может выполняться быстрее, чем по ДВУМ? Тем более одна из которых буферизована Smile
Есть конечно сложные случаи, но в целом я руководствуюсь нотами 766349 (FAQ: Oracle SQL optimization) и 825653 - Oracle: Common misconceptions .

Спасибо, а то уже начали приходить нехорошие мысли. Rolling Eyes

_________________
ABAP/4 You
Back to top
View user's profile Send private message
Armann
Модератор
Модератор



Joined: 01 Jan 2008
Posts: 422
Location: Moscow

PostPosted: Thu Mar 03, 2011 9:20 pm    Post subject: Reply with quote

Удав wrote:
Как SELECT по ОДНОЙ таблице может выполняться быстрее, чем по ДВУМ?

мне одному кажется что вы подтверждаете приведенную Дмитрием цитату? Wink

Удав wrote:
Тем более одна из которых буферизована Smile

это кстати роли не играет - такой запрос с джоином пройдет мимо буфера
Back to top
View user's profile Send private message Blog
Dmitriy
Аналитик
Аналитик


Age: 47
Joined: 14 Nov 2008
Posts: 300
Location: Russia

PostPosted: Thu Mar 03, 2011 10:18 pm    Post subject: Reply with quote

Armann wrote:
Удав wrote:
Как SELECT по ОДНОЙ таблице может выполняться быстрее, чем по ДВУМ?

мне одному кажется что вы подтверждаете приведенную Дмитрием цитату? Wink

А ведь точно! Причём на 100% уверен, что Удав имел ввиду обратное. Smile

P.S. Тот топик, как я понял, удалили. Но по-моему там аффтар кода был индус с несколько проблемным (небрежным?) инглишем.

_________________
ABAP/4 You


Last edited by Dmitriy on Fri Mar 04, 2011 1:47 am; edited 1 time in total
Back to top
View user's profile Send private message
Dmitriy
Аналитик
Аналитик


Age: 47
Joined: 14 Nov 2008
Posts: 300
Location: Russia

PostPosted: Thu Mar 03, 2011 11:40 pm    Post subject: Reply with quote

Коллеги, приношу свои извинения, похоже я зря ворчал на Седого... Мне кажется, я понял, как индус получил такой результат. Ещё не мерял, но возможно если задать в по БЕ интервал IBT0000ZZZZ при больших объемах данных, то как раз и получим "Is far less efficient than"...

UPD: правда вот на чуть более 9 тыс. записей доступной на данный момент BKPF ничего подобного, естественно, не наблюдается. Smile

_________________
ABAP/4 You
Back to top
View user's profile Send private message
Удав
Гуру
Гуру


Age: 48
Joined: 25 Jan 2008
Posts: 580
Location: Москва

PostPosted: Fri Mar 04, 2011 10:27 am    Post subject: Reply with quote

Armann wrote:
Удав wrote:
Как SELECT по ОДНОЙ таблице может выполняться быстрее, чем по ДВУМ?

мне одному кажется что вы подтверждаете приведенную Дмитрием цитату? Wink

Ну конечно перепутал Laughing

_________________
С уважением,
Удав.
Back to top
View user's profile Send private message
Удав
Гуру
Гуру


Age: 48
Joined: 25 Jan 2008
Posts: 580
Location: Москва

PostPosted: Fri Mar 04, 2011 10:31 am    Post subject: Reply with quote

Dmitriy wrote:
Мне кажется, я понял, как индус получил такой результат. Ещё не мерял, но возможно если задать в по БЕ интервал IBT0000ZZZZ при больших объемах данных, то как раз и получим "Is far less efficient than"...

Интересно, а какой вообще смысл в выборке по большому количеству БЕ? Обычно для таких целей хранилище данных используется Wink
Вот если бы речь шла о документах материала и заводах (WERKS), тогда лучше бы было разбить SELECT с IN на несколько с условием равенства (но опять же, не использовать INNER JOIN - это будет медленнее).

_________________
С уважением,
Удав.
Back to top
View user's profile Send private message
admin
Администратор
Администратор



Joined: 01 Sep 2007
Posts: 1640

PostPosted: Fri Mar 04, 2011 11:50 am    Post subject: Reply with quote

Коллеги, у вас у всех есть права на изменение записей в справочниках. Не стесняйтесь вносить изменения, если видите ошибки Wink
Back to top
View user's profile Send private message
John Doe
Модератор
Модератор


Age: 46
Joined: 05 Nov 2007
Posts: 725
Location: КраснАдар

PostPosted: Fri Mar 04, 2011 12:25 pm    Post subject: Reply with quote

Это я насоветовал сперва тему поднять для обсуждения Sad
Back to top
View user's profile Send private message Blog
Dmitriy
Аналитик
Аналитик


Age: 47
Joined: 14 Nov 2008
Posts: 300
Location: Russia

PostPosted: Fri Mar 04, 2011 5:59 pm    Post subject: Reply with quote

Удав wrote:
но опять же, не использовать INNER JOIN - это будет медленнее

Мне одному кажется, или?.. Laughing
Естественно, у меня не BKPF, про неё я бы и не стал спрашивать, тем более в примере выбор по ключам. Просто на определенном этапе, оптимизируя логистическую коммерческую, блин, тайну Rolling Eyes, в матчасти форума увидел это и несколько рановато пришли нехорошие мысли о форуме "Трудоустройство"...
admin wrote:
Коллеги, у вас у всех есть права на изменение записей в справочниках. Не стесняйтесь вносить изменения, если видите ошибки Wink

Буду разбивать на несколько выборок при участии VBFA и EKBE. Результат и так уже получен неплохой, выложить его можно будет несколько позже. Подавляющее число примеров на эту тему в сети уже просмотрены, нужные индексы сделаны, всем спасибо.

_________________
ABAP/4 You
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Russian ABAP Developer's Club Forum Index -> ABAP All times are GMT + 4 Hours
Page 1 of 1

 
Jump to:  
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.