|
Разбиение секционированной таблицы на подсекции. Перенос данных
|
|||
---|---|---|---|
#18+
Добрый день! Плаваю в теме секционирования, прошу помочь. Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production Есть таблица вида Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Размер таблицы чуть меньше террабайта с индексами, интервально делится по 6 дней В таблице Поле SYS_ID неравномерно, это суточные данные, месячные, квартальные и тп. Хочу На тестовом сервере протестировать вариант с добавлением подсекций Насколько понимаю, это будет вариант приведенный ниже Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
Первичные вопросы ) 1) Правильный ли вариант с разбиением на секции таблицы, использование LIST? 2) Возможно текущую таблицу TEST_D разбить на подсекции? Или требуется перегонять данные в новую таблицу? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2019, 17:31 |
|
Разбиение секционированной таблицы на подсекции. Перенос данных
|
|||
---|---|---|---|
#18+
IgorSm1) Правильный ли вариант с разбиением на секции таблицы, использование LIST? вы не делите таблицу на секции просто ради того, чтобы поделить ее на секции. вы решаете какие-то прикладные задачи. ускорить чтение данных. ускорить загрузку данных. упростить загрузку данных. упростить операции по обслуживанию таблицы. и т.д. какую конкретно задачу вы хотите решить, добавив в таблицу подсекции? когда будет понимание задачи - тогда можно будет разбираться, правильно ли вы ее решаете. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2019, 17:44 |
|
Разбиение секционированной таблицы на подсекции. Перенос данных
|
|||
---|---|---|---|
#18+
IgorSm, автор Код: plsql 1.
Странное какое-то партицирование. Почему именно 6 дней а не неделя? авторSYS_ID неравномерно, это суточные данные, месячные, квартальные И все в одной таблице? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2019, 20:44 |
|
Разбиение секционированной таблицы на подсекции. Перенос данных
|
|||
---|---|---|---|
#18+
flexgenИ все в одной таблице? А почему бы и нет? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2019, 20:49 |
|
Разбиение секционированной таблицы на подсекции. Перенос данных
|
|||
---|---|---|---|
#18+
andrey_anonymousА почему бы и нет? Я не знаю что у него там, но если в таблице хранятся "сырые" данные, скажем, посуточно, и агрегированные за месяц/квартал/год то это минимум странно. Я просто не понял этой фразы: авторSYS_ID неравномерно, это суточные данные, месячные, квартальные Поэтому переспросил. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2019, 20:57 |
|
Разбиение секционированной таблицы на подсекции. Перенос данных
|
|||
---|---|---|---|
#18+
flexgenскажем, посуточно, и агрегированные за месяц/квартал/год то это минимум странно. Не более странно, чем автоматически плодить таблицы под агрегаты высоких порядков. Если есть возможность организовать эффективный доступ к агрегатам в общей таблице, то городить дополнительные не нужно. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.08.2019, 15:11 |
|
Разбиение секционированной таблицы на подсекции. Перенос данных
|
|||
---|---|---|---|
#18+
Добрый день Спасибо, что откликнулись Извините за несвоевременный ответ. 1)Основная задача это ускорение чтение данных, если такая операция как загрузка данных будет осуществляться быстрее, то тоже отлично. Далее, да сейчас все данные в одной таблице. В текущей реализации переделка программного кода с выделением отдельной таблицы, со слов разработчиков, трудоёмка и может обрасти новыми багами ) Да и сущностей туда будет еще добавляться. Деление на 6 дней исторически сложилось. Да и на форме они в основном смотрят по 6 дней по суточным данным. Повторюсь, SYS_ID - это какой тип данных, суточные, месячные и свои какие-то. Сейчас из этой таблички стали смотреть, в основном два разных типа пользователя, каждый по своему типу данных Выборка по временным меткам по D_TIME в 99% случаев будет, к нему же выполняется выборка по SYS_ID. LIST в этом случае кажется весьма эффективным. Но вопрос , насколько будет эффективнее по времени выборки разбиение на подсекции чем тот же локальный индекса по полям "D_TIME", "SYS_ID") ?; 2) Ну и, первично, чтоб протестировать производительность мне надо отдать тестерам таблицы с таким же объемом данных. Ну и здесь "Возможно текущую таблицу TEST_D разбить на подсекции? Или требуется перегонять данные в новую таблицу?" Данные в этом случае хранятся физически по другому? Создаём новую и переносим данные через EXCHANGE PARTITION? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2019, 13:39 |
|
Разбиение секционированной таблицы на подсекции. Перенос данных
|
|||
---|---|---|---|
#18+
IgorSm, можно руками пересоздать таблицу (создать таблицу нужной структуры, перелить данные, старую дропнуть, новую переименовать как старую), можно и не руками - есть пакет dbms_redefinition, он должен справиться по времени примерно одинаково получается (как-то давно довелось потестить) сабпартицирование by list выглядит подходяще =) только вопрос - как я понимаю, агрегат 30 дней лежит с D_TIME = последнему дню периода (ну или первому, не суть) такие агрегаты считаются каждый день или один раз в месяц? т.е. месяц 30 дней включает в себя 5 партиций по 6 дней только в одной сабпартиции с SYS_ID=30 будут лежать данные или все таки в каждой? з.ы. и раз уж все равно пересоздавать, может, сделать партиции по дню? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2019, 14:22 |
|
Разбиение секционированной таблицы на подсекции. Перенос данных
|
|||
---|---|---|---|
#18+
chidoriami, спасибо за хорошие вопросы. Отпуск негативно сказался на мозговой деятельности ) Иногда таки надо пойти помучать разработчиков и аналитиков. А не смотреть текущую реальность ) Итого Поле SYS_ID неравномерно сейчас, но будет стремится к тому что это поле будет равномерно ) Аналог грубый -прогноз температуры на месяц Есть фактическое измерение температуры, измеренное на каждый день Есть прогнозное, но будет записываться на каждый день. Раньше это была запись раз в месяц. Сейчас сделали модель, что будет красиво распределять на дни итого авторТакие агрегаты считаются каждый день или один раз в месяц? Будут каждый день. авторт.е. месяц 30 дней включает в себя 5 партиций по 6 дней только в одной сабпартиции с SYS_ID=30 будут лежать данные или все таки в каждой? Будут лежать в каждой авторз.ы. и раз уж все равно пересоздавать, может, сделать партиции по дню? Так исторически сложилось )выборка самая обычная по 5-6 дней поэтому так и делали Но можно пробовать. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2019, 16:06 |
|
|
start [/forum/topic.php?fid=52&msg=39854697&tid=1882129]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
33ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
others: | 16ms |
total: | 142ms |
0 / 0 |