|
|
|
Пропихнуть таблицу во вьюшку
|
|||
|---|---|---|---|
|
#18+
Коллеги, добрый день. Подскажите, есть ли способ ? Суть проблемы: есть запрос вида Код: plsql 1. 2. 3. В таблице всего 5 записей, на поле drv.uniq_id - уникальный индекс В таблицах из вьюшки по нескольку миллионов записей. По плану, сначала через HASH_JOIN собирается вся вьюшка, а затем HASH_JOIN c ведущей таблицей. Но если раскрыть вьюшку, всё собирается по индексам за доли секунды. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2017, 12:13 |
|
||
|
Пропихнуть таблицу во вьюшку
|
|||
|---|---|---|---|
|
#18+
Sah, пересказывать планы своими словами, конечно, интересно. Но лучше показать. Желательно вместе с запросов представления. Может оно у вас несливаемо-непропихиваемое.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2017, 12:29 |
|
||
|
Пропихнуть таблицу во вьюшку
|
|||
|---|---|---|---|
|
#18+
Меня, по сути, интересует вопрос, какого хрена оракл начинает полностью материализировать вьюшку, когда в условии соединения уникальные ключи? И в ведущей таблице всего 5 записей? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2017, 14:56 |
|
||
|
Пропихнуть таблицу во вьюшку
|
|||
|---|---|---|---|
|
#18+
SahМеня, по сути, интересует вопрос, какого хрена оракл начинает полностью материализировать вьюшку, когда в условии соединения уникальные ключи? И в ведущей таблице всего 5 записей? Ответ ищите в трассе 10053. Если ожидаете предметных советов на форуме - приводите конкретные листинги. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2017, 14:58 |
|
||
|
Пропихнуть таблицу во вьюшку
|
|||
|---|---|---|---|
|
#18+
Вдогонку вопрос, как пропихнуть предикаты во вьюшку. Прям бесит. Запрос такой : Код: plsql 1. 2. 3. 4. План при этом Код: 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. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. Если подставить предикаты в сам запрос, получим такой план: Код: 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. 38. 39. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2018, 11:05 |
|
||
|
Пропихнуть таблицу во вьюшку
|
|||
|---|---|---|---|
|
#18+
Sah, Если лень разбираться, перепиши запрос на родном синтаксисе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2018, 12:06 |
|
||
|
Пропихнуть таблицу во вьюшку
|
|||
|---|---|---|---|
|
#18+
Т.е. вместо JOIN - соединение в WHERE-кляузе? А хинта никакого нет, чтобы сначала предикаты применились? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2018, 15:17 |
|
||
|
Пропихнуть таблицу во вьюшку
|
|||
|---|---|---|---|
|
#18+
Sah Код: plaintext Код: plsql 1. 2. В первом случае все пучком, а во втором полное сканирование. Код: plsql 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. 38. 39. А то, что запросы неэквивалентны - это мелочь. Вместо того, чтоб беситься - пробуй иногда думать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2018, 15:53 |
|
||
|
Пропихнуть таблицу во вьюшку
|
|||
|---|---|---|---|
|
#18+
dbms_photoshopА то, что запросы неэквивалентны - это мелочь.Так нужно partition by добавить и все будет пучком - может именно это и нужно ТС? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2018, 16:18 |
|
||
|
Пропихнуть таблицу во вьюшку
|
|||
|---|---|---|---|
|
#18+
Андрей Панфиловdbms_photoshopА то, что запросы неэквивалентны - это мелочь.Так нужно partition by добавить и все будет пучком - может именно это и нужно ТС?Ну если ТС устроят новые результаты аналитики - то, конечно, пучком. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2018, 16:27 |
|
||
|
Пропихнуть таблицу во вьюшку
|
|||
|---|---|---|---|
|
#18+
Во, блин, просто в моём случае, результат-то будет один и тот же. Предикаты + доп. условия внутри вьюшки выводят на уникальный индекс. Совсем забыл, что аналитика может всё поломать. Спасибо. Буду думать как без аналитики выкрутиться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2018, 16:28 |
|
||
|
Пропихнуть таблицу во вьюшку
|
|||
|---|---|---|---|
|
#18+
partytion by стоял ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2018, 16:41 |
|
||
|
Пропихнуть таблицу во вьюшку
|
|||
|---|---|---|---|
|
#18+
Sah, Вот тут что-то было Установить с помощью Код: plaintext Использовать хинт, например /*+push_pred(@vallist_sub1 s)*/ Синтаксис работает следующим образом /*+HINT(@<<В КАКОМ МЕСТЕ ИСПОЛЬЗОВАТЬ ХИНТ>> стандартный синтаксис) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2018, 15:09 |
|
||
|
|

start [/forum/topic.php?fid=52&fpage=121&tid=1884260]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
150ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
100ms |
get tp. blocked users: |
1ms |
| others: | 223ms |
| total: | 514ms |

| 0 / 0 |
