powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Insert Into Sorted Shared Temp Table и как с ним бороться
2 сообщений из 2, страница 1 из 1
Insert Into Sorted Shared Temp Table и как с ним бороться
    #36913164
mwolf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть сгенерённый запрос:
Код: plaintext
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.
SELECT DISTINCT(p.person_id), p.UASCII_LAST_NAME, p.UASCII_FIRST_NAME, p.MODIFIED_BY_AFFILIATE 
FROM person p 
    JOIN mtm_attrib2person a2pFilter 
        ON a2pFilter.person_id = p.person_id 
        AND a2pFilter.datetime_deleted IS NULL 
    JOIN attribute aFilter 
        ON aFilter.attribute_id = a2pFilter.attribute_id 
        AND aFilter.attribute_type_id IN ( 2685 , 10911 ) -- <--!!!
        AND aFilter.datetime_deleted IS NULL 
        AND aFilter.UASCII_NAME IN ( 'ABDUCENS', 'ABUSE' ) -- <--!!!
    JOIN mtm_person2organization p2o 
        ON p2o.person_id = p.person_id 
        AND p2o.active_fl = '1' 
        AND p2o.datetime_deleted IS NULL 
    JOIN config C 
        ON C.organization_id = p2o.organization_id 
        AND C.datetime_deleted IS NULL 
    JOIN mtm_person2role p2r 
        ON p.person_id = p2r.person_id 
        AND p2r.datetime_deleted IS NULL 
        AND (p2r.datetime_start IS NULL OR p2r.datetime_start < CURRENT TIMESTAMP) 
        AND (p2r.datetime_end IS NULL OR p2r.datetime_end > CURRENT TIMESTAMP)
    JOIN ROLE r 
        ON  r.role_id = p2r.role_id         
        AND r.datetime_deleted IS NULL 
        AND C.config_id = r.config_id 
WHERE C.config_id =  1392  
    AND p.username IS NOT NULL 
    AND p.active_fl = '1' 
    AND p.datetime_deleted IS NULL 
ORDER BY p.UASCII_LAST_NAME, p.UASCII_FIRST_NAME
Если в условиях IN в строках помеченных <--!!! содержатся по одному значению, то план такого запроса приложен как be_execution_plan_1_values.png . Запрос работает около получаса, но всё же работает. Если IN содержат несколько значений, то план превращается в страх и ужас приложенный как be_execution_plan_2_values.png . Появляется гора темповых таблиц, и дождаться выполнения этого запроса мне не удавалось.
Пробовал считать количество. Если убрать последний джоин таблицы ROLE , то получается 728684 строк, вытягивается быстро, а в плане появляется одна темповая таблица.
Что можно, тут сделать?
...
Рейтинг: 0 / 0
Insert Into Sorted Shared Temp Table и как с ним бороться
    #36913167
mwolf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
собственно второй план
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Insert Into Sorted Shared Temp Table и как с ним бороться
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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