|
Oracle or MSSQL 2000. Кто быстрее?
|
|||
---|---|---|---|
#18+
2mahoune Я же сказал, что я переписал, как посоветовал ora600. И что? Сервер уже 40 минут в глубоком ступоре. По-моему использовать join более чем на одну таблицу в Oracle нельзя. по крайней мере у меня не получается. Все это глубокое IMHO. Так что сильно не пинайте. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2002, 17:44 |
|
Oracle or MSSQL 2000. Кто быстрее?
|
|||
---|---|---|---|
#18+
запрос не идентичен ms-овскому : в ms-овском к ТОВАРЫ присоединяется ТОВАР и ЮРЛИЦО, а в ораклевом вообще черт знает что. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2002, 17:51 |
|
Oracle or MSSQL 2000. Кто быстрее?
|
|||
---|---|---|---|
#18+
Как Вы объясняете ... SELECT "A2"."Index" FROM ... "A2"."Товар"(+) ??? Выясняете НАЛИЧИЕ ТОГО ЧТО НЕ ОБЯЗАТЕЛЬНО ? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2002, 17:57 |
|
Oracle or MSSQL 2000. Кто быстрее?
|
|||
---|---|---|---|
#18+
А где еще это условие из ms запроса потерялось? AND (([A39].[DocID]<100017)) Кроме того было 2 предложения: 1. Переписать запрос без exist 2. Собрать статистику Товарищ их по каким-то причинам проигнорировал и теперь утверждает, что в оракле нельзя джоинить больше двух таблиц. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2002, 17:59 |
|
Oracle or MSSQL 2000. Кто быстрее?
|
|||
---|---|---|---|
#18+
Переписал запрос. Теперь он выполняется примерно за 1 минуту. Мне не нравится в статистике строчка 7(там где CARTESIAN). Кто-нибудь поможет переписать запрос без EXISTS? Вот текст запроса: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
Код: 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2002, 18:22 |
|
Oracle or MSSQL 2000. Кто быстрее?
|
|||
---|---|---|---|
#18+
Так был же выше уже переписан. Вы что не все постинги в топике читаете? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2002, 18:27 |
|
Oracle or MSSQL 2000. Кто быстрее?
|
|||
---|---|---|---|
#18+
to Andy Написав запрос я использовал ваш второй оракловый вариант запроса, который работал 5мин. Я немного ошибся. Чтобы соответствовал этому второму запросу с exist надо в моем расставить скобочки: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8.
Если что давайте план. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2002, 18:30 |
|
Oracle or MSSQL 2000. Кто быстрее?
|
|||
---|---|---|---|
#18+
2.dba Где??? Тот запрос, что написал ora600 вообще не работает - сервер впадает в тяжелый ступор. Укажите, пожалйста, где этот запрос? может я что проглядел? :( ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2002, 18:35 |
|
Oracle or MSSQL 2000. Кто быстрее?
|
|||
---|---|---|---|
#18+
Это было на один постинг выше чем запроc ORA600, тот который повторил сейчас mms. Единственное с чем я несогласен это то что скобки тут будут хоть на что-то влиять - тут везде AND, а значит порядок операций не сущесвенен. А как все-таки со статистикой? Когда она собиралась? И почему в ms запросе на одно условие больше? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2002, 18:50 |
|
Oracle or MSSQL 2000. Кто быстрее?
|
|||
---|---|---|---|
#18+
На одно условие больше - так это просто copy/paste виноват. В реальных тестах этого условия нет. НО ВОТ ОН ЗАПРОС! Работает _ВСЕГО_ 2 секунды: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9.
А вот ее план Код: 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. 32. 33. 34. 35. 36. 37.
Но хочется продолжить обсуждения и добиться более значительного превосходства над MS :)) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2002, 19:25 |
|
Oracle or MSSQL 2000. Кто быстрее?
|
|||
---|---|---|---|
#18+
Поставьте инициализационный параметр optimizer_index_cost_adj = 1 ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2002, 19:34 |
|
Oracle or MSSQL 2000. Кто быстрее?
|
|||
---|---|---|---|
#18+
Плюсики из запроса убери будет по быстрее :) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2002, 19:34 |
|
Oracle or MSSQL 2000. Кто быстрее?
|
|||
---|---|---|---|
#18+
>Плюсики из запроса убери будет по быстрее :) так, а если человеку принципиально нужны outer join, то тогда что? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2002, 19:35 |
|
Oracle or MSSQL 2000. Кто быстрее?
|
|||
---|---|---|---|
#18+
2.dba Сорри за глупый вопрос, но где же поставить этот самый параметр? (optimizer_index_cost_adj = 1) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2002, 19:37 |
|
Oracle or MSSQL 2000. Кто быстрее?
|
|||
---|---|---|---|
#18+
SQL> alter session set optimizer_index_cost_adj = 1; но это только на уровне сессии (в которой будешь выполнять запрос) - чтоб попробовать. А если понравится :-), то надо отредактировать файл init<SID>.ora и перестартовать базу. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2002, 19:41 |
|
|
start [/forum/topic.php?fid=52&msg=32064241&tid=1992823]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
32ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
2ms |
others: | 250ms |
total: | 386ms |
0 / 0 |