|
|
|
Архив со скользящим окном патиционирования
|
|||
|---|---|---|---|
|
#18+
Задача: 1. Есть мастер-таблица 2. Есть таблица деталей, связь по ID (миллионы записей) Необходимо хранить данные за последние 3 месяца (минус 3 от первой даты тек. месяца) Предполагается такой вариант: 1. Мастер-таблица патиционируется по trunc(date_field, 'mm') 2. В цикле идем по патициям мастера и смотрим данные какого месяца там хранятся (т.к. патиции будем создавать не на триггере и не знаем точно по имени в какой патиции данные какого месяца). 3. Если патиция подлежит удалению, то дропаем ее (с каскадным удалением по FK записей в деталях). После шринк таблицы деталей. И все вроде бы нормально. Но не нравится каскадное удаление с последующим шринком. Поэтому напрашивается вариант, чтобы в детали протянуть ту же самую дату из мастера и точно так же патиционировать по ней же детали. Тогда все было бы замечательно, но такой вариант на данный момент не реализуем (не наш софт). Поэтому вопрос, как нормально сделать без каскадного удаления с последующей "дефрагментацией"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.01.2018, 19:16 |
|
||
|
Архив со скользящим окном патиционирования
|
|||
|---|---|---|---|
|
#18+
NQueryв детали протянуть ту же самую дату из мастера и точно так же патиционировать по ней же детали.RTFM Reference Partitioning (FAQ) NQueryне наш софтА разве все остальные потуги этому не противоречат? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.01.2018, 19:31 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39578759&tid=1884637]: |
0ms |
get settings: |
10ms |
get forum list: |
20ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
60ms |
get topic data: |
13ms |
get forum data: |
4ms |
get page messages: |
55ms |
get tp. blocked users: |
2ms |
| others: | 205ms |
| total: | 379ms |

| 0 / 0 |
