|
|
|
Долго обновляет данные в секционных таблицах
|
|||
|---|---|---|---|
|
#18+
Помогите понять в чем дело, при апдейте данных в секциях, например update 30-40тыс строк, из 1 млн в секции, запрос обрабатывается около 3-6 минут, причем время всегда разное Таблицы, разбиты на секции вот таким методом: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. в каждой секции примерно 1млн записей, дополнительных индексов по полю period нет вот пример апдейта строк на клиенте Код: plsql 1. 2. 3. 4. 5. Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2018, 21:03 |
|
||
|
Долго обновляет данные в секционных таблицах
|
|||
|---|---|---|---|
|
#18+
tem@ Код: plsql 1. 2. 3. 4. Да уж. С такими партициями только between-ы писать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2018, 21:05 |
|
||
|
Долго обновляет данные в секционных таблицах
|
|||
|---|---|---|---|
|
#18+
AmKadДа уж. С такими партициями только between-ы писать. А чем плох данный метод разбиения на секции? Мне нужно чтоб именно по периоду 012018-122018 были секции ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2018, 21:38 |
|
||
|
Долго обновляет данные в секционных таблицах
|
|||
|---|---|---|---|
|
#18+
tem@А чем плох данный метод разбиения на секции? Ну попробуй выбрать например все за 2015, 2016 и 2017 год и подумай насколько легче было бы PERIOD = 'YYYYMM'. А потом подумай почему было бы еще лучше если бы PERIOD был бы не VARCHAR2 а DATE, и partitioning был бы не LIST а RANGE с INTERVAL 1 месяц. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2018, 00:00 |
|
||
|
Долго обновляет данные в секционных таблицах
|
|||
|---|---|---|---|
|
#18+
tem@пример апдейта строк на клиенте Код: plsql 1. 2. 3. 4. 5. построчный апдейт 30 тысяч строк это 60 тысяч обменов клиентов-сервер. Сетевая латенция может составлять пару миллисекунд, что в сумме даст пару минут только на сетевой обмен. А ведь еще и коммит! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2018, 08:00 |
|
||
|
Долго обновляет данные в секционных таблицах
|
|||
|---|---|---|---|
|
#18+
Плюс титаническая битва за библиотечный кэш и парсинг, парсинг, парсинг... Не говоря уже о доступе через непрефиксированный PK (глобальный индекс), который убьет partition pruning. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2018, 11:48 |
|
||
|
Долго обновляет данные в секционных таблицах
|
|||
|---|---|---|---|
|
#18+
Переделал таблицы под секции: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. Убрал первичный ключ, скорость записи в таблицу увеличилась, но тут вопрос уже в другом, при добавлении в первую секцию данные добавляются быстро, при последующем добавлении в другую секцию данные добавляются уже в 1,5 раза дольше, затем в 3 раза дольше, почему так? Что еще неправильно делаю? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2018, 10:44 |
|
||
|
Долго обновляет данные в секционных таблицах
|
|||
|---|---|---|---|
|
#18+
tem@Что еще неправильно делаю?Врёшь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2018, 10:58 |
|
||
|
Долго обновляет данные в секционных таблицах
|
|||
|---|---|---|---|
|
#18+
-2-tem@Что еще неправильно делаю?Врёшь. В чем ((((( ? Да и вроде все как есть говорю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2018, 11:11 |
|
||
|
Долго обновляет данные в секционных таблицах
|
|||
|---|---|---|---|
|
#18+
tem@-2-пропущено... Врёшь. В чем ((((( ? Да и вроде все как есть говорю tem@, Код: 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.08.2018, 11:18 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39693977&tid=1883536]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
176ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
2ms |
| others: | 244ms |
| total: | 511ms |

| 0 / 0 |
