|  | 
| 
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: | 12ms | 
| check forum access: | 3ms | 
| check topic access: | 3ms | 
| track hit: | 30ms | 
| get topic data: | 9ms | 
| get forum data: | 2ms | 
| get page messages: | 39ms | 
| get tp. blocked users: | 1ms | 
| others: | 12ms | 
| total: | 120ms | 

| 0 / 0 | 
