powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Секционирование таблицы
6 сообщений из 6, страница 1 из 1
Секционирование таблицы
    #39700357
MaXie
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток.

Есть таблица:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
CREATE TABLE TBL1(
    F_VAL INTEGER, 
    F_PART_KEY INTEGER AS (MOD(F_VAL, 2)) 
)
PARTITION BY LIST (F_PART_KEY)
(
    PARTITION PART_0 VALUES (0),
    PARTITION PART_1 VALUES (1)
);



Возможно ли исключить из таблицы виртуальный столбец, но при этом обеспечить такой же принцип секционирования?

Спасибо всем кто откликнется!
...
Рейтинг: 0 / 0
Секционирование таблицы
    #39700459
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну если сумеете - расскажите как... И особенно - как в Вашем случае работает partition pruning :)
...вообще в некоторых случаях можно было бы рассмотреть partition by reference, однако и тут, подозреваю, появится скрытый виртуальный атрибут. Oracle предпочитает этот путь имплементации различных функциональных нашлепок над базовыми механизмами хранения - от функциональных индексов до online redefinition.
...
Рейтинг: 0 / 0
Секционирование таблицы
    #39700466
IgorSm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
был слегка похожий вопрос
http://www.sql.ru/forum/1156349-1/sekcionirovanie-po-funkcii
Читали?
...
Рейтинг: 0 / 0
Секционирование таблицы
    #39700504
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MaXie,

Версия? Если >= 12C то:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
CREATE TABLE TBL1(
    F_VAL INTEGER,
    F_PART_KEY INTEGER INVISIBLE AS (MOD(F_VAL, 2))
)
PARTITION BY LIST (F_PART_KEY)
(
    PARTITION PART_0 VALUES (0),
    PARTITION PART_1 VALUES (1)
)
/



и не парься.

SY.
...
Рейтинг: 0 / 0
Секционирование таблицы
    #39700578
MaXie
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Благодарю за мысли! )

Постановка, безусловно, упрощена до предельно простого примера.
В реальности, речь идет о таблице, состав полей в которой не подлежит изменению("боевая" среда, таблица является частью "коробочного" продукта и т.д.). На эту таблицу создается "журнал"(лог материализованного представления), который, с целью максимально быстрой очистки, хочется секционировать, но таким образом, чтобы потом не "дропать" секции(необходимо принять как данное), а выполнять только "транкейт", т.е. использовать запись в секции "журнала" циклично, по аналогии с обычными REDO-журналами. Насколько я понимаю, ни каких иных полей, кроме тех что есть в базовой таблице, в "журнале" быть не может.


> andrey_anonymous

Идея заключается в том, чтобы иметь конечный набор секций и выполнять TRUNCATE обработанных данных в пределах секций, с целью их моментальной очистки. В любом смысле покопаюсь в направлении того, что сказали.

> IgorSm

Да, это именно то, в чем и заключается мой вопрос. Спасибо за ссылку! Сейчас буду смотреть. )

> SY

Версия 11.2, но в любом случае наличие каких либо столбцов, кроме базовых исключено. (
...
Рейтинг: 0 / 0
Секционирование таблицы
    #39700646
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MaXieПостановка, безусловно, упрощена до предельно простого примера.
В реальности, речь идет о таблице, состав полей в которой не подлежит изменению("боевая" среда, таблица является частью "коробочного" продукта и т.д.). На эту таблицу создается "журнал"(лог материализованного представления), который, с целью максимально быстрой очистки, хочется секционировать, но таким образом, чтобы потом не "дропать" секции(необходимо принять как данное), а выполнять только "транкейт", т.е. использовать запись в секции "журнала" циклично, по аналогии с обычными REDO-журналами. Насколько я понимаю, ни каких иных полей, кроме тех что есть в базовой таблице, в "журнале" быть не может.
Если речь про встроенные средства MATERIALIZED VIEW + MATERIALIZED VIEW LOG, то перед изобретением велосипедов имеет смысл ознакомиться с
Код: plaintext
Materialized View Refresh : Log Population and Purge (Doc ID 236233.1)

Если же изобретены какие-то собственные журналы и производные таблицы, то тут можно фантазировать на следующие темы
hash функцию при hash секционировании выбирать нельзя.
То есть, если не устраивает встроенный хеш алгоритм, а нужен именно mod(...,2), то тут без доп колонок ничего сделать нельзя.
(в 11-ке можно если сильно захотеть получить persisted invisible virtual columns)
Но скорее всего, учитывая временнУю специфику, можно секционировать по range/interval и удалять секции по мере устаревания.

Если журнал заполняется самописными средствами, то можно задействовать system partitioning и писать в желаемую секцию.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Секционирование таблицы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]