|
DB2 7.2 on Win2000 скорость исполнения запроса
|
|||
---|---|---|---|
#18+
Отчего может притормаживаться исполнение SELECT в случае: Несколько просматриваемых таблиц в сотни тысяч записей. По Access плану все кажется ok (примерно 67 timerons). В Event monitor'е видно, что основная затрата по времени в транзакции чтения приходится на operation CLOSE (!!!). ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2003, 18:20 |
|
DB2 7.2 on Win2000 скорость исполнения запроса
|
|||
---|---|---|---|
#18+
Спасибо за внимание - разобрался :) Каюсь - по формулировке вопроса путь к причине был бы тернист. Все дело в формулировке запроса. Ситуация была следующая (в упрощенном варианте): WITH FF(DOC_TITLE) AS (SELECT DISTINCT B.DOC_TITLE FROM BODY B INNER JOIN GOODS_LIST G ON (B.GOODS = G.GOODS)) SELECT T.FIELD_1, T.FIELD_2 FROM TITLE T INNER JOIN FF ON (T.ID = FF.DOC_TITLE) Выяснилось, что если DISTINCT заменить группировкой, то уже работает с приемлемой скоростью (по замерам примерно в два раза). Видимо, больше ничего не придумаешь. WITH FF(DOC_TITLE) AS (SELECT B.DOC_TITLE FROM BODY B INNER JOIN GOODS_LIST G ON (B.GOODS = G.GOODS) GROUP BY B.DOC_TITLE) SELECT T.FIELD_1, T.FIELD_2 FROM TITLE T INNER JOIN FF ON (T.ID = FF.DOC_TITLE) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2003, 15:46 |
|
|
start [/forum/topic.php?fid=43&fpage=163&tid=1606583]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
26ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 129ms |
0 / 0 |