powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Как в partiton table одну секцию закрыть для доступа
28 сообщений из 28, показаны все 2 страниц
Как в partiton table одну секцию закрыть для доступа
    #39854278
Зурбаган
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Надо одну секцию в partiton table закрыть для выборок по ней. Планирую в эту партицию заливать данные и потом строить локальные индексы.
На ум приход создать вью и прописать условие, которое исключит раздел из поиска.
Может есть более кошерный способ?
...
Рейтинг: 0 / 0
Как в partiton table одну секцию закрыть для доступа
    #39854285
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зурбаганболее кошерный способ?
Без подробностей сложно, но как вариант FGAC
...
Рейтинг: 0 / 0
Как в partiton table одну секцию закрыть для доступа
    #39854289
Фотография SeaGate
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зурбаганболее кошерный способ?

About Exchanging Partitions and Subpartitions
...
Рейтинг: 0 / 0
Как в partiton table одну секцию закрыть для доступа
    #39854291
Фотография кит северных морей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЗурбаганПланирую в эту партицию заливать данные и потом строить локальные индексы.
зачем именно вы хотите закрыть доступ?
...
Рейтинг: 0 / 0
Как в partiton table одну секцию закрыть для доступа
    #39854294
Зурбаган
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
кит северных морейзачем именно вы хотите закрыть доступ?
Таблица - "боевая", по ней постоянно кто-то что-то ищет.
И тут я начну заливать в партицию данные с отключенными индексами. И что получится?
...
Рейтинг: 0 / 0
Как в partiton table одну секцию закрыть для доступа
    #39854299
Фотография кит северных морей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зурбаганкит северных морейзачем именно вы хотите закрыть доступ?
Таблица - "боевая", по ней постоянно кто-то что-то ищет.
И тут я начну заливать в партицию данные с отключенными индексами. И что получится?
нужно разбираться, как именно вы заливаете данные - возможен вариант, что индексы можно и не отключать - но вообще в таких случаях, как уже написали, имеет смысл смотреть в сторону exchange partition
...
Рейтинг: 0 / 0
Как в partiton table одну секцию закрыть для доступа
    #39854306
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зурбаганзаливать в партицию данные с отключенными индексамиДавай ddl "отключения".

ЗурбаганИ что получится?
...
Рейтинг: 0 / 0
Как в partiton table одну секцию закрыть для доступа
    #39854307
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зурбаганзаливать в партицию данные
Однако это совсем другая задача.
Не "исключить из поиска", а "залить данные".
Создаете non-partitioned таблицу, льете в нее данные, создаете индексы, идентичные локальным боевой, и выполняете exchange partition.
...
Рейтинг: 0 / 0
Как в partiton table одну секцию закрыть для доступа
    #39854312
Зурбаган
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
andrey_anonymous Создаете non-partitioned таблицу, льете в нее данные, создаете индексы, идентичные локальным боевой, и выполняете exchange partition.
non-partitioned таблица должна быть в том же табличном пространстве, что и partitioned таблица? Или не имеет значения?
...
Рейтинг: 0 / 0
Как в partiton table одну секцию закрыть для доступа
    #39854319
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зурбаганnon-partitioned таблица должна быть в том же табличном пространстве, что и partitioned таблица? Или не имеет значения?
Она должна быть там, где должны лежать данные. При exchange partition данные никуда перемещаться не будут, это словарная операция
...
Рейтинг: 0 / 0
Как в partiton table одну секцию закрыть для доступа
    #39854368
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Однако не забываем про global indexes - UPDATE GLOBAL INDEXES.

SY.
...
Рейтинг: 0 / 0
Как в partiton table одну секцию закрыть для доступа
    #39854386
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SYОднако не забываем про global indexes - UPDATE GLOBAL INDEXES.
Ну если уж углубляться, то with/without validation тоже неплохо бы вспомнить :)

https://docs.oracle.com/database/121/VLDBG/GUID-E08650B4-06B1-43F9-91B0-FBF685A3B848.htm#VLDBG1156
...
Рейтинг: 0 / 0
Как в partiton table одну секцию закрыть для доступа
    #39854396
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymousНу если уж углубляться, то with/without validation тоже неплохо бы вспомнить :)


Я к тому что в реальной жизни exchange partition не совсем словарная операция.

SY.
...
Рейтинг: 0 / 0
Как в partiton table одну секцию закрыть для доступа
    #39854699
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SYЯ к тому что в реальной жизни exchange partition не совсем словарная операция.
exchange - словарная.
А вот валидация и перестроение глобального индекса (вариант - модный update indexes) - нет.
И того, и другого можно избежать, если принять во внимание жизненный цикл данных на этапе проектирования.
...
Рейтинг: 0 / 0
Как в partiton table одну секцию закрыть для доступа
    #39854704
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymousИ того, и другого можно избежать, если принять во внимание жизненный цикл данных на этапе проектирования.

И как же избежать перестроение глобального индекса при partition exchange? Не создавать ?

SY.
...
Рейтинг: 0 / 0
Как в partiton table одну секцию закрыть для доступа
    #39854706
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SYНе создавать ?
Именно :)
...
Рейтинг: 0 / 0
Как в partiton table одну секцию закрыть для доступа
    #39854718
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymousИменно :)

Т.е. оставим referential integrity на усмотрение приложения (т.е на усмотрение девелоперов)...

SY.
...
Рейтинг: 0 / 0
Как в partiton table одну секцию закрыть для доступа
    #39854725
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SYТ.е. оставим referential integrity на усмотрение приложения (т.е на усмотрение девелоперов)...
На больших системах это достаточно частый вариант.
Он работоспособен, если между "усмотрением приложения" и "усмотрением девелопера" нет тождества, зато есть архитектурный надзор.
Ссылочная целостность может обеспечивается базовыми объектами/библиотеками приложения, также встречал вариант, когда согласование ddl типа добавления поля в таблицу или создания индекса выносилась на уровень вице-президента компании-разработчика :)

А на мелких системах и индекс перестроить не грех, современное железо многое позволяет.
...
Рейтинг: 0 / 0
Как в partiton table одну секцию закрыть для доступа
    #39854726
Зурбаган
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В общем, я точно знаю что во временной таблице данные будут для одного раздела, поэтому буду применять without validation.
Если еще и с опцией INCLUDING INDEXES выполнить, то локальные индексы тоже перенесутся и будут валидные?
...
Рейтинг: 0 / 0
Как в partiton table одну секцию закрыть для доступа
    #39854728
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зурбагантоже перенесутся и будут валидные?
Да
...
Рейтинг: 0 / 0
Как в partiton table одну секцию закрыть для доступа
    #39854780
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymousНа больших системах это достаточно частый вариант.


Согласен что такие системы (особенно DWH) имеют место быть, но очень часто (если не чаще) мы имеем master/detail таблицы и посему партицирование by reference где без RI никак.

SY.
...
Рейтинг: 0 / 0
Как в partiton table одну секцию закрыть для доступа
    #39854814
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SYочень часто (если не чаще) мы имеем master/detail таблицы и посему партицирование by reference где без RI никак.
OLTP - да, у них свои тараканы, но эти системы обычно не очень крупные.
Миксы OLTP+DWH типа биллингов и платежных систем начиная с некоторого масштаба склонны к поддержанию целостности на уровне приложения, а также обзаводятся инструментами ILM.

Ну и про "никак" применительно к секционированию по ссылке - слишком сильное утверждение, если говорим про этап проектирования, даже для OLTP.

С третьей стороны, partition by reference не обязательно требует глобальных индексов:
Код: 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.
create table dropme_t(id number, somedata varchar2(300)
                     ) partition by range (id) interval (1000)
                     (partition p1 values less than (0) segment creation deferred)
;
Table created

create index dropme_t$id on dropme_t(id) local
;
Index created

alter table dropme_t add constraint dropme_t$pk primary key (id) using index dropme_t$id
;
Table altered

create table dropme_child_t( id number, id_parent number not null, somedata varchar2(300)
                           , constraint dropme_t$fk foreign key (id_parent) references dropme_t(id)
                           ) partition by reference(dropme_t$fk)
;
Table created

create index dropme_child_t$id on dropme_child_t(id_parent, id) local
;
Index created

alter table dropme_child_t add constraint dropme_child_t$pk primary key (id_parent, id) using index dropme_child_t$id
;
Table altered

create table dropme_child2_t( id number not null, id_parent number not null, somedata varchar2(300)
                            , constraint dropme_child_t$fk foreign key (id_parent, id) references dropme_child_t(id_parent,id)
                            ) partition by reference(dropme_child_t$fk)
;
Table created

...
Рейтинг: 0 / 0
Как в partiton table одну секцию закрыть для доступа
    #39854822
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymousС третьей стороны, partition by reference не обязательно требует глобальных индексов:


Не улавливаю смысл партицирования по ID особенно когда ID это artificial key.

SY.
...
Рейтинг: 0 / 0
Как в partiton table одну секцию закрыть для доступа
    #39854824
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SY
Не улавливаю смысл партицирования по ID особенно когда ID это artificial key.



Хотя для data purge можно худо-бедно приспособить.

SY.
...
Рейтинг: 0 / 0
Как в partiton table одну секцию закрыть для доступа
    #39854833
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SYНе улавливаю смысл партицирования по ID особенно когда ID это artificial key.
Мы же не обсуждаем конкретную систему/проект, верно?
Просто напоминаю, что PK/UK можно построить на префиксированном локальном индексе, и, как следствие, принципиальная возможность использовать ссылочное секционирование на локальных индексах существует.

Все зависит от требований к системе и проектных решений, т.е. от тех компромиссов, которые были приняты на этапе проектирования.
И нет, я не утверждаю, что глобальные индексы - абсолютное зло .
Но стараюсь их избегать.
...
Рейтинг: 0 / 0
Как в partiton table одну секцию закрыть для доступа
    #39915950
Зурбаган
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
То есть,
Создается non-partition table в том же табличном пространстве, где и partition table целевая таблица находится.
Индексы создаются такие же как и локальные в partition table.
Данные переливаются в non-partition table.
При exchange partition по сути на уровне словаря БД происходит отметка, что данные теперь находятся в partition table, а индексы теперь являются локальными в partition table.

Я правильно понял?
...
Рейтинг: 0 / 0
Как в partiton table одну секцию закрыть для доступа
    #39916890
RichardIV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Зурбаган,
Думаю, что индексы надо будет перестраивать.
...
Рейтинг: 0 / 0
Как в partiton table одну секцию закрыть для доступа
    #39918478
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RichardIV
Зурбаган,
Думаю, что индексы надо будет перестраивать.

Что заставляет Вас так думать?
...
Рейтинг: 0 / 0
28 сообщений из 28, показаны все 2 страниц
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Как в partiton table одну секцию закрыть для доступа
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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