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

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

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

SY.
...
Рейтинг: 0 / 0
27.08.2019, 20:48
    #39854386
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в partiton table одну секцию закрыть для доступа
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
27.08.2019, 21:24
    #39854396
SY
SY
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в partiton table одну секцию закрыть для доступа
andrey_anonymousНу если уж углубляться, то with/without validation тоже неплохо бы вспомнить :)


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

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

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

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

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

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

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


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

SY.
...
Рейтинг: 0 / 0
28.08.2019, 17:45
    #39854814
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в partiton table одну секцию закрыть для доступа
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
28.08.2019, 17:59
    #39854822
SY
SY
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в partiton table одну секцию закрыть для доступа
andrey_anonymousС третьей стороны, partition by reference не обязательно требует глобальных индексов:


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

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



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

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

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


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