powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Рекомендация по запросу с предикантами
2 сообщений из 2, страница 1 из 1
Рекомендация по запросу с предикантами
    #39796909
Фотография Den_KP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день!
Всех с пятничкой! Друзья, честно скажу не силен еще в запросах, так сказать падаван.
Вопрос следующий: есть 2 запроса которые генерят резкую кратковременную нагрузку, по рекомендации oem tuning advisor, вышло следующее:
1-й джоб:
The predicate ABS("PO"."AMOUNT")=ABS(:B1) used at line ID 6 of the execution plan contains an expression on indexed column "AMOUNT". This expression prevents the optimizer from selecting indices on table "KKB_EXCH"."PARTNER_OPERATIONS".

2-й Джоб
The predicate ABS("OO"."AMOUNT")=ABS(:B1) used at line ID 6 of the execution plan contains an expression on indexed column "AMOUNT". This expression prevents the optimizer from selecting indices on table "KKB_EXCH"."OW4_OPERATIONS".

Вопрос: Как можно выполнить рекомендацию, непонятен момент как избавиться от этого, нужно ли, и можно ли понять benefit до начала рекомендации?

Джобы:
№1
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
SELECT  PO.OPERATION_ID
FROM    PARTNER_OPERATIONS PO
WHERE   PO.IS_ARCH              = 0
        AND PO.OPER_TYPE        = :B6
        AND PO.REQUEST_CATEGORY = 'Advice'
        AND PO.SKVIT_STATUS     = 2
        AND
        (
                (
                        :B4 IS NULL
                )
                OR
                (
                        (
                                (
                                        (
                                                :B5 = 1
                                        )
                                        AND PO.OPER_DATE <= :B4
                                )
                                OR
                                (
                                        PO.OPER_DATE = :B4
                                )
                        )
                )
        )
        AND
        (
                (
                        PO.RRN IS NULL
                )
                OR
                (
                        PO.RRN = :B3
                )
        )
        AND
        (
                (
                        PO.SRN IS NULL
                )
                OR
                (
                        PO.SRN = :B2
                )
        )
        AND ABS(PO.AMOUNT) = ABS(:B1 )
        AND ROWNUM         = 1



№2
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
SELECT  OO.OPERATION_ID
FROM    OW4_OPERATIONS OO
WHERE   OO.IS_ARCH              = 0
        AND OO.OPER_TYPE        = :B6
        AND OO.REQUEST_CATEGORY = 'Advice'
        AND OO.SKVIT_STATUS     = 2
        AND
        (
                (
                        :B4 IS NULL
                )
                OR
                (
                        (
                                (
                                        (
                                                :B5 = 1
                                        )
                                        AND OO.LOCAL_DATE <= :B4
                                )
                                OR
                                (
                                        OO.LOCAL_DATE = :B4
                                )
                        )
                )
        )
        AND
        (
                (
                        OO.RRN IS NULL
                )
                OR
                (
                        OO.RRN = :B3
                )
        )
        AND
        (
                (
                        OO.ARN IS NULL
                )
                OR
                (
                        OO.ARN = :B2
                )
        )
        AND ABS(OO.AMOUNT) = ABS(:B1 )
        AND ROWNUM         = 1
...
Рейтинг: 0 / 0
Рекомендация по запросу с предикантами
    #39796911
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Den_KPABS("PO"."AMOUNT")=ABS(:B1)Замени ABS= на IN
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Рекомендация по запросу с предикантами
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]