|
|
|
join - тормозит!!!
|
|||
|---|---|---|---|
|
#18+
обычый select from ТаблицаA a join ТаблицаБ б on а.поле1 = б.поле2 - работает замечательно (0,09 сек). Но стоит только добавить в конце order by поле3 asc - начинаются дикие тормоза :(((30,0 сек) В чём дело-то? Вроде индексы все есть... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2002, 18:54 |
|
||
|
join - тормозит!!!
|
|||
|---|---|---|---|
|
#18+
"query plan" в студию! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2002, 19:01 |
|
||
|
join - тормозит!!!
|
|||
|---|---|---|---|
|
#18+
order by добавляет операцию сортировки. Если она производится на диске, то естественно все замедляется. Если есть возможность, то надо увеличить sort_area_size. Если нет, то настраивать дисковые сортировки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2002, 19:09 |
|
||
|
join - тормозит!!!
|
|||
|---|---|---|---|
|
#18+
в "sqlplus"е SQL> SET AUTOTRACE TRACEONLY SQL> your query сюда выложить то, что выдал SQLPLUS ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2002, 19:14 |
|
||
|
join - тормозит!!!
|
|||
|---|---|---|---|
|
#18+
Да, order by сортирует. Но почему select from Таблица1 order by - не тормозит, select join (без сортировки) - не тормозит, а select join order by - 30 сек??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2002, 19:17 |
|
||
|
join - тормозит!!!
|
|||
|---|---|---|---|
|
#18+
>Да, order by сортирует. Но почему select from Таблица1 order by - не >тормозит, select join (без сортировки) - не тормозит, а select join order by - >30 сек??? Наиболее вероятная причина, что вы соединяете таблицы не 1:1, а 1:многим. Поэтому результат содержит больше строк для сортировки, чем одна таблица. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2002, 19:23 |
|
||
|
join - тормозит!!!
|
|||
|---|---|---|---|
|
#18+
> 1:1, 1:многим - а как это выглядит в SQL??? Я просто даже не представляю, как заставить Oracle соединять именно 1:1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2002, 19:29 |
|
||
|
join - тормозит!!!
|
|||
|---|---|---|---|
|
#18+
хм, я не советовал соединять 1:1, а просто объяснил вам причину. Приведите в конце концов запрос и план выполнения, как вам MaxU советовал, тогда сможете рассчитывать на помощь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2002, 19:42 |
|
||
|
join - тормозит!!!
|
|||
|---|---|---|---|
|
#18+
Ура!!! я сам уже догнал!!! Всё дело в том, что сортировать надо не результат Joinа, а исходную таблицу, которую потом и join-ить со второй!!! Но всё равно спасибо, за сочуствие ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2002, 19:47 |
|
||
|
join - тормозит!!!
|
|||
|---|---|---|---|
|
#18+
А план так и не привел.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2002, 01:14 |
|
||
|
join - тормозит!!!
|
|||
|---|---|---|---|
|
#18+
кроме того такое решение (сортировка перед join) может привести к некорректным результатам запроса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2002, 15:19 |
|
||
|
join - тормозит!!!
|
|||
|---|---|---|---|
|
#18+
AndRew "...Всё дело в том, что сортировать надо не результат Joinа, а исходную таблицу, которую потом и join-ить со второй!!! ... " Вообще-то это ошибочный подход к решению проблемы: делать что-то, не понимая первопричины возникшей ситуации... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2002, 17:22 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=32080755&tid=1992419]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
281ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
65ms |
get tp. blocked users: |
2ms |
| others: | 223ms |
| total: | 617ms |

| 0 / 0 |
