|
|
|
Партиционирование по дате с плавающим периодом
|
|||
|---|---|---|---|
|
#18+
Добрый день всем гуру! Появился в моей жизни "веселый" заказчик. Помимо прочего, хочет заказчик иметь таблицу, секционированную по дате, но чтобы период секционирования мог быть произвольным. Я в свое время очень подробно изучал вопрос секционирования в Oracle, но такого я там не находил. Прежде чем послать заказчика искать в Перу город Науи (в латинской транскрипции там еще посередине есть буква "h"), я бы хотел спросить у людей знающих - такое в принципе (хотя бы теоретически) возможно. Чтобы жили в рамках одной таблицы партиции за день, за месяц и за час? Заранее благодарен за ответы Oracle EE 11.2.0.4.0 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2016, 16:19:00 |
|
||
|
Партиционирование по дате с плавающим периодом
|
|||
|---|---|---|---|
|
#18+
А какие проблемы? Обычный (не интервальный) range-partitioning ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2016, 16:27:56 |
|
||
|
Партиционирование по дате с плавающим периодом
|
|||
|---|---|---|---|
|
#18+
Леонов Юрий, чисто теоретически - легко например, вычисляете из даты число, как yymmdd и секционируете по нему соответственно, числа yy0000 и yy0100 - yy1200 могут соответствовать годам и месяцам ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2016, 16:28:28 |
|
||
|
Партиционирование по дате с плавающим периодом
|
|||
|---|---|---|---|
|
#18+
Леонов Юрий, Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2016, 16:29:43 |
|
||
|
Партиционирование по дате с плавающим периодом
|
|||
|---|---|---|---|
|
#18+
понятно, то есть через жопу можно, но о потомстве не мечтайте... вот только сии антиквары хотят автоматическое создание партиций ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2016, 16:45:55 |
|
||
|
Партиционирование по дате с плавающим периодом
|
|||
|---|---|---|---|
|
#18+
Если хотят автоматическое - сталбыть представляют себе алгоритм определения размера следующей секции. Уточняйте требования и работайте, интервальное секционирование - не панацея и не серебряная пуля. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2016, 16:51:11 |
|
||
|
Партиционирование по дате с плавающим периодом
|
|||
|---|---|---|---|
|
#18+
АнтикварЕсли хотят автоматическое - сталбыть представляют себе алгоритм определения размера следующей секции . Уточняйте требования и работайте, интервальное секционирование - не панацея и не серебряная пуля. +1 Думаю, что Юрий не поинтересовался зачем.... Подозреваю, что заказчик создает электронный архив , с постановкой табличных простраств в RO и отсетгивание в траспортные пространства и записью на носители фиксированного объема для договременного хранения. То есть задача поставлена для оптимальной утилизации носителей длительного хранения..... В описании носителя будет описан период , который на нем лежит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2016, 17:04:37 |
|
||
|
Партиционирование по дате с плавающим периодом
|
|||
|---|---|---|---|
|
#18+
Леонов Юрийпонятно, то есть через жопу можно, но о потомстве не мечтайте... вот только сии антиквары хотят автоматическое создание партиций ну, создавать автоматически можно с диапазоном по_умолчанию, а потом, естественно , резать/клеить хотя и тут, получается жопа уныло ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2016, 17:29:55 |
|
||
|
Партиционирование по дате с плавающим периодом
|
|||
|---|---|---|---|
|
#18+
orawishну, создавать автоматически можно с диапазоном по_умолчанию, а потом, естественно , резать/клеить Резка/клейка на интервальном range partitioning? Если я ничего не путаю, то для этого надо перед операциями сделать табличку не-интервальной, или хотя бы переопределить базовую секцию на более свежую, иначе не взлетит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2016, 17:42:36 |
|
||
|
Партиционирование по дате с плавающим периодом
|
|||
|---|---|---|---|
|
#18+
Примерчик не покажете?orawishну, создавать автоматически можно с диапазоном по_умолчанию, а потом, естественно , резать/клеить Резка/клейка на интервальном range partitioning? Если я ничего не путаю, то для этого надо перед операциями сделать табличку не-интервальной, или хотя бы переопределить базовую секцию на более свежую, иначе не взлетит. ну, про интервальное секционирование здесь говорил не я ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2016, 17:51:25 |
|
||
|
Партиционирование по дате с плавающим периодом
|
|||
|---|---|---|---|
|
#18+
orawishну, про интервальное секционирование здесь говорил не я А в тезисе про "автоматическое создание секций по умолчанию" - имелся ввиду некий кастомный техпроцесс? Тогда не совсем понятно что значит "автоматическое". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2016, 17:54:30 |
|
||
|
Партиционирование по дате с плавающим периодом
|
|||
|---|---|---|---|
|
#18+
Ойнувсеorawishну, про интервальное секционирование здесь говорил не я А в тезисе про "автоматическое создание секций по умолчанию" - имелся ввиду некий кастомный техпроцесс? Тогда не совсем понятно что значит "автоматическое". кастомный? например, ~нашедулить на ~начало ~года 19431906 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2016, 18:23:03 |
|
||
|
Партиционирование по дате с плавающим периодом
|
|||
|---|---|---|---|
|
#18+
ОйнувсеТогда не совсем понятно что значит "автоматическое". автоматическое - обычно обозначает, что процесс выполняется механизмами без участия человека. Например, делаем табличку с полем, в котором храним признак текущий партиции. Всем вставляемым строкам партиционированной таблицы в поле партиционирования подставляем это значения из вспомогательной таблицы. По событию заполнения табличного пространства (скажем на 90%) текущей партиции, создаем новую партицию, меняем значение во вспомогательной и переводим старое пространство в режим ro. Для надежности в процедуре выбора значения для актуальной таблички делаем проверку заполненности текущего пространства и если больше тех же 90% ждем пока сменится текущее пространство. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2016, 09:01:04 |
|
||
|
Партиционирование по дате с плавающим периодом
|
|||
|---|---|---|---|
|
#18+
Сергей АрсеньевОйнувсеТогда не совсем понятно что значит "автоматическое". автоматическое - обычно обозначает, что процесс выполняется механизмами без участия человека. Например, делаем табличку с полем, в котором храним признак текущий партиции. Всем вставляемым строкам партиционированной таблицы в поле партиционирования подставляем это значения из вспомогательной таблицы. По событию заполнения табличного пространства (скажем на 90%) текущей партиции, создаем новую партицию, меняем значение во вспомогательной и переводим старое пространство в режим ro. Для надежности в процедуре выбора значения для актуальной таблички делаем проверку заполненности текущего пространства и если больше тех же 90% ждем пока сменится текущее пространство. :) 5 копеек дополнения: все индексы должны быть локально партиционированы, что бы устанвленное в ro пространство не мешало вставке новых записей в партицию находящуюся в rw пространстве не разбрасывать грабли в виде ORA-01502 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2016, 10:05:28 |
|
||
|
Партиционирование по дате с плавающим периодом
|
|||
|---|---|---|---|
|
#18+
Сергей АрсеньевНапример, делаем табличку с полем, в котором храним признак текущий партиции. Всем вставляемым строкам партиционированной таблицы в поле партиционирования подставляем это значения из вспомогательной таблицы. Жжешь напалмом. Открыли новый велосипедостроительный завод? :) :) :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2016, 12:01:26 |
|
||
|
Партиционирование по дате с плавающим периодом
|
|||
|---|---|---|---|
|
#18+
ванговательАнтикварЕсли хотят автоматическое - сталбыть представляют себе алгоритм определения размера следующей секции . Уточняйте требования и работайте, интервальное секционирование - не панацея и не серебряная пуля. +1 Думаю, что Юрий не поинтересовался зачем.... Подозреваю, что заказчик создает электронный архив , с постановкой табличных простраств в RO и отсетгивание в траспортные пространства и записью на носители фиксированного объема для договременного хранения. То есть задача поставлена для оптимальной утилизации носителей длительного хранения..... В описании носителя будет описан период , который на нем лежит. Ну конечно, я совсем уже лох, чтобы у заказчика не поинтересоваться... У заказчика есть DBA, который о себе самого высокого мнения, но не знает как снять трассу... Механизм выгрузки в external table уже реализован, причем механизм довольно таки гибкий. Просто этому тамбовскому волку (товарищем его язык не поворачивается назвать) хочется на боевой базе ручками партиции поюзать (разбить на части, склеить и т.п.)... Зачем ему это надо - одному Богу известно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2016, 13:53:12 |
|
||
|
Партиционирование по дате с плавающим периодом
|
|||
|---|---|---|---|
|
#18+
Леонов Юрий Прежде чем послать заказчика искать в Перу город Науи (в латинской транскрипции там еще посередине есть буква "h"), я бы хотел спросить Леонов Юрий Просто этому тамбовскому волку (товарищем его язык не поворачивается назвать) хочется на боевой базе ручками партиции поюзать (разбить на части, склеить и т.п.)... Зачем ему это надо - одному Богу известно. Мне кажется, что вы не по адресу обращаетесь. Вам к психотерапевту надо, пусть пропишет валерьяночки, новопасита , или чего покрепче .... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2016, 14:32:51 |
|
||
|
Партиционирование по дате с плавающим периодом
|
|||
|---|---|---|---|
|
#18+
ДаешьЗОЖСергей АрсеньевНапример, делаем табличку с полем, в котором храним признак текущий партиции. Всем вставляемым строкам партиционированной таблицы в поле партиционирования подставляем это значения из вспомогательной таблицы. Жжешь напалмом. Открыли новый велосипедостроительный завод? :) :) :) Нука , ткните плиз в доку, что ораклу сказать , что бы он сам при достижении табличным пространство обьема , ну допустьи 4.7 гиг ( обьем ДВД) автоматом созавал новое пространсво, создавал там следующие партиции переключал партиционирование для списка таблиц , а старое пространство ставил в рид онли и преобразовывал в транспортное. под запись на диск.... ась ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2016, 14:44:50 |
|
||
|
Партиционирование по дате с плавающим периодом
|
|||
|---|---|---|---|
|
#18+
ванговательВам к психотерапевту надо, пусть пропишет валерьяночки, новопасита , или чего покрепче .... Походу заказчик подтянулся :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2016, 14:45:00 |
|
||
|
Партиционирование по дате с плавающим периодом
|
|||
|---|---|---|---|
|
#18+
Упс, а-ооованговательВам к психотерапевту надо, пусть пропишет валерьяночки, новопасита , или чего покрепче .... Походу заказчик подтянулся :) Моему велосипеду уже лет 5, как минимум... Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2016, 14:57:52 |
|
||
|
Партиционирование по дате с плавающим периодом
|
|||
|---|---|---|---|
|
#18+
ванговательвсе индексы должны быть локально партиционированы, ну или в другом табличном пространстве. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2016, 16:53:17 |
|
||
|
Партиционирование по дате с плавающим периодом
|
|||
|---|---|---|---|
|
#18+
ванговательНука , ткните плиз в доку, что ораклу сказать , что бы он сам Ну честно говоря, он и так почти все сам делать может. Ну несколько команд надо. Не делать avtoextend. Подписаться на событие переполнения и сплитнуть текущую партицию с переносом старого по новому месту жительства. А потом это старое и в ro. И вообще велосипедов бояться, на природе не кататься. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2016, 17:06:10 |
|
||
|
Партиционирование по дате с плавающим периодом
|
|||
|---|---|---|---|
|
#18+
Леонов Юрийвот только сии антиквары хотят автоматическое создание партицийНу и какие проблемы? Делаешь, например, интеравальное по дню, в конце месяца мерджишь секции прошедшего месяца в одну. В конце года можешь клеить месяца. Ясное дело секции после этого перестают быть интервальными *_tab_partitions.interval = NO. Короче надо быть внимательным при работе с метаданными, чтоб понимать какая секция за день а какая за другой период. При желании даже по произвольному листу можно делать секционирование, но это другая история. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2016, 17:27:39 |
|
||
|
Партиционирование по дате с плавающим периодом
|
|||
|---|---|---|---|
|
#18+
Леонов Юрийхочется на боевой базе ручками партиции поюзать (разбить на части, склеить и т.п.)... Зачем ему это надо - одному Богу известно.Ручками на боевой базе ничего делать не надо, а вот партиции разбиают и кляет много кто. Надо только не забывать про перестройку индексов и другие тонкости при написании механизма. Открой для себя "retention and archiving policy" если боишься спросить, вспомни что при склеивании данные можно сжимать и прочее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2016, 17:33:21 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39277837&tid=1887837]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
182ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
| others: | 224ms |
| total: | 482ms |

| 0 / 0 |
