|
|
|
Cкан партиционированной таблицы медленнее непарциционированной.
|
|||
|---|---|---|---|
|
#18+
andrey_anonymous, С таким количеством партитиций (хотя это еще по божески), я бы начал смотреть в ASH (если доступен), на что время уходит, не исключено, что сам запрос может парсится приличное время, а исполняется довольно быстро. Ну в любом случае, можно было бы определить на что уходит время. Best regards Maxim ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2016, 13:28 |
|
||
|
Cкан партиционированной таблицы медленнее непарциционированной.
|
|||
|---|---|---|---|
|
#18+
Maxim Demenkoне исключено, что сам запрос может парсится приличное время, а исполняется довольно быстро. Запрос к единственной таблице с единственным индексом - и минуту парсится? Что-то сомневаюсь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2016, 13:35 |
|
||
|
Cкан партиционированной таблицы медленнее непарциционированной.
|
|||
|---|---|---|---|
|
#18+
Фухх :).... У меня на локальных индексах все нормально .... Код: 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. 40. 41. 42. 43. 44. 45. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2016, 13:38 |
|
||
|
Cкан партиционированной таблицы медленнее непарциционированной.
|
|||
|---|---|---|---|
|
#18+
AlexFF__|, Ещё раз. Мы ищем не просто максимальное значение поля-ключа секционирования во всей таблице. Мы ищем максимум этого поля для строк, удовлетворяющих доп.условию acc = '014654567 ' and currcode = '000' ;по полям, не входящим в ключ секционирования. Лично я даже не могу дать гарантии, что строки лежат в одной секции. Откуда есть уверенность, что они будут именно в последней секции? Может оказаться, что строки со значениями acc = '014654567 ' and currcode = '000'; есть вообще только в первой секции. Какой профит я получу, сканируя секции в обратном порядке? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2016, 13:40 |
|
||
|
Cкан партиционированной таблицы медленнее непарциционированной.
|
|||
|---|---|---|---|
|
#18+
Добрый Э - ЭхКакой профит я получу, сканируя секции в обратном порядке?Что как только они появятся в данной секции, именно там будет максимальная дата. Нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2016, 13:44 |
|
||
|
Cкан партиционированной таблицы медленнее непарциционированной.
|
|||
|---|---|---|---|
|
#18+
andrey_anonymous, При очень большом количестве партиций (в таблице и в индехе) - хотя конечно понятие "очень большое" зависит от конкретной системы - возможны довольно серьезные проблемы с library cache / rowcache, особенно если система довольно нагружена. Best regards Maxim ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2016, 13:46 |
|
||
|
Cкан партиционированной таблицы медленнее непарциционированной.
|
|||
|---|---|---|---|
|
#18+
Да, забыл указать версию: Код: plsql 1. Спасибо, Ханч. Вариант Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. отрабатывает мгновенно. План у него такой: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2016, 14:39 |
|
||
|
Cкан партиционированной таблицы медленнее непарциционированной.
|
|||
|---|---|---|---|
|
#18+
партицировали-партицировали, да не выпартицировали. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2016, 14:45 |
|
||
|
Cкан партиционированной таблицы медленнее непарциционированной.
|
|||
|---|---|---|---|
|
#18+
Добрый Э - Эх Какой профит я получу, сканируя секции в обратном порядке? Ну тут все просто - условие останова. Если результат max() найден в секции n, то в секцию n-1 можно не заглячдывать. Правда имеет смысл только для min/max, для других функций, например avg, конечно нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2016, 14:55 |
|
||
|
Cкан партиционированной таблицы медленнее непарциционированной.
|
|||
|---|---|---|---|
|
#18+
д0kФухх :).... У меня на локальных индексах все нормально .... Но по праймари ключу - жопа.... Код: 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. индекс по 16 млрд записям сканировался больше часа. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2016, 15:05 |
|
||
|
Cкан партиционированной таблицы медленнее непарциционированной.
|
|||
|---|---|---|---|
|
#18+
д0kиндекс по 16 млрд записям сканировался больше часа. Parallel не? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2016, 15:33 |
|
||
|
Cкан партиционированной таблицы медленнее непарциционированной.
|
|||
|---|---|---|---|
|
#18+
andrey_anonymousд0kиндекс по 16 млрд записям сканировался больше часа. Parallel не? Не, паралелью я бы уложил пользователей по ВВ. вот интересно , план тот же а резульат кардинально другой ... Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2016, 15:58 |
|
||
|
Cкан партиционированной таблицы медленнее непарциционированной.
|
|||
|---|---|---|---|
|
#18+
д0kвот интересно , план тот же Не, не тот же план - см. внимательнее :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2016, 16:03 |
|
||
|
Cкан партиционированной таблицы медленнее непарциционированной.
|
|||
|---|---|---|---|
|
#18+
М-даа, знакомо, знакомо. Сразу ведь предложили - или глобальный индекс, или dynamic-ом перебирать партиции, генерируя имя на основании искомой даты ;-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2016, 16:06 |
|
||
|
Cкан партиционированной таблицы медленнее непарциционированной.
|
|||
|---|---|---|---|
|
#18+
Если без глобального индекса, то можно сделать некий гибридный вариант: Все это дело обернуть в функцию, которая генерирует и выполняет дайнамик запросы в количестве N штук начиная с последней партиции. Каждый такой запрос будет выполняться милисекунды по локальному индексу. Ну а если за N итераций искомого не нашли - запускать запрос по всем партициям. Но все равно основу механизма вам уже описывали... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2016, 16:19 |
|
||
|
Cкан партиционированной таблицы медленнее непарциционированной.
|
|||
|---|---|---|---|
|
#18+
Desert_Nomaddynamic-ом перебирать партиции, генерируя имя на основании искомой даты ;-)krokodaktilгенерирует и выполняет дайнамик запросы в количестве N штук начиная с последней партиции. 19497465 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2016, 16:24 |
|
||
|
Cкан партиционированной таблицы медленнее непарциционированной.
|
|||
|---|---|---|---|
|
#18+
Elic 19497465 ИИИИ???? Спасибо за пруф на синтаксис селекта с указание партиции как в явном виде, так и по значению ключа партицирования. Сам знал, но повторить никогда не помешает. :) А теперь можно пруф на то, где в постановке задачи написано, что известно, в какой партиции(или на какую дату) есть значение отвечающее WHERE? Не в каждой партиции есть искомое значение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2016, 16:34 |
|
||
|
Cкан партиционированной таблицы медленнее непарциционированной.
|
|||
|---|---|---|---|
|
#18+
Elic, спасибо, конечно, за пруф, но тут нет задачи узнать имя партиции. От чего исходим: "На втором сервере имеется такая же таблица-копия изменений остатков по счетам за последние 20 лет, но партиционированная по датам. Один день - одна партиция...". Тут люди хотят организовать поиск с последних партиций принудительно. Решение в лоб - брать предположительные дни, начиная с последнего, и опрашивать соответствующие партиции на предмет нашли/не нашли. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2016, 16:38 |
|
||
|
Cкан партиционированной таблицы медленнее непарциционированной.
|
|||
|---|---|---|---|
|
#18+
krokodaktilА теперь можно пруф на то, где в постановке задачи написано, что известно, в какой партиции(или на какую дату) есть значение отвечающее WHERE? Не в каждой партиции есть искомое значение.Это ты у себя спрашиваешь? Я лишь про то, что незачем нетривиально динамить при наличии статического синтаксиса. yon_broverОдин день - одна партиция ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2016, 16:42 |
|
||
|
Cкан партиционированной таблицы медленнее непарциционированной.
|
|||
|---|---|---|---|
|
#18+
Ну как, разобрались, что партиции сканируются в нужном порядке как минимум с 10g? Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2016, 18:28 |
|
||
|
Cкан партиционированной таблицы медленнее непарциционированной.
|
|||
|---|---|---|---|
|
#18+
yon_brover, трассу 10053 приложи и экспортни всю статистику по таблице зы. и дропни таблицу PLAN_TABLE ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2016, 00:27 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39322841&tid=1887276]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
180ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
| others: | 220ms |
| total: | 476ms |

| 0 / 0 |
