Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 как увеличить онлайн размер ключа in reference partitioning  [new]
AlexVin
Member

Откуда: E-burg
Сообщений: 1007
oracle 18

сабж вообще онлайн возможен? или только оффлайн?
примерчик для наглядности взял тут же на форуме 21723547

+
create table in_doc3 (
  in_id    number(10)
 ,doc_date timestamp default systimestamp not null
 ,constraint pk_in_doc3 primary key (in_id)
) partition by range(doc_date) (
  partition p_2017 values less than (to_date('01.01.2018','dd.mm.yyyy'))
 ,partition p_default values less than (maxvalue)
);
create table out_doc3 (
  out_id   number
 ,in_id    number(10) not null
 ,constraint pk_out_doc3 primary key (out_id)
 ,constraint fk_out_doc3$in_id foreign key (in_id) references in_doc3 (in_id)
) partition by reference (fk_out_doc3$in_id);
create index ik_out_doc3$in_id on out_doc3 (in_id) local;

ALTER TABLE in_doc3 MODIFY in_id NUMBER(19,0);
ALTER TABLE out_doc3 MODIFY in_id NUMBER(19,0);

ERROR at line 1:
ORA-14060: data type or length of a table partitioning column may not be
changed


begin
  dbms_redefinition.can_redef_table(uname => user, tname => 'IN_DOC3');
end;
/

ERROR at line 1:
ORA-23549: table "YOU"."IN_DOC3" involved in reference partitioning
ORA-06512: at "SYS.DBMS_REDEFINITION", line 283
ORA-06512: at "SYS.DBMS_REDEFINITION", line 5808
ORA-06512: at line 2

alter table OUT_DOC3 drop constraint FK_OUT_DOC3$IN_ID;
ERROR at line 1:
ORA-14650: operation not supported for reference-partitioned tables

drop table out_doc3;
drop table in_doc3;
2 апр 20, 14:41    [22109894]     Ответить | Цитировать Сообщить модератору
 Re: как увеличить онлайн размер ключа in reference partitioning  [new]
проходил мимо...
Member

Откуда: от верблюда
Сообщений: 1147
AlexVin,

вот смотрю я на документацию (а теперь ещё и на вас) и думаю - стоят ли все понциальные плюшки (а они действительно очень вкусны, особенно с недавно пофикшенными багами) всего этого геморроя?
причём ваш-то случай достаточно просто обойти при проектировании (используй сурогатные ключи, Люк), но ведь этот самый ключ может ещё и потребоваться перепартиционировать...
2 апр 20, 17:05    [22109979]     Ответить | Цитировать Сообщить модератору
 Re: как увеличить онлайн размер ключа in reference partitioning  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 18065
проходил мимо...
а они действительно очень вкусны

ммм?
2 апр 20, 17:34    [22110010]     Ответить | Цитировать Сообщить модератору
 Re: как увеличить онлайн размер ключа in reference partitioning  [new]
проходил мимо...
Member

Откуда: от верблюда
Сообщений: 1147
andrey_anonymous,

партишн-вайз джойн при соединении таблиц, партиционированных по референсу ИЗ РАЗНЫХ ВЕТОК референсов.
т.е., например.
операции партиционированы по дню, товарный состав - по референсу на операцию, финансовое движение - тоже по референсу на операцию. соединение товарного состава и финансового движения между собой может использовать партишн-вайз джоин. ТЕПЕРЬ может...
2 апр 20, 23:09    [22110204]     Ответить | Цитировать Сообщить модератору
 Re: как увеличить онлайн размер ключа in reference partitioning  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 18065
проходил мимо...
ТЕПЕРЬ может...

А без reference partitioning типа не мог? :)
6 апр 20, 13:22    [22111816]     Ответить | Цитировать Сообщить модератору
 Re: как увеличить онлайн размер ключа in reference partitioning  [new]
проходил мимо...
Member

Откуда: от верблюда
Сообщений: 1147
andrey_anonymous
проходил мимо...
ТЕПЕРЬ может...

А без reference partitioning типа не мог? :)

проходил мимо...
операции партиционированы по дню, товарный состав - по референсу на операцию, финансовое движение - тоже по референсу на операцию

расскажите как. разумеется, интересует выборка за период.
30 июн 20, 11:16    [22159512]     Ответить | Цитировать Сообщить модератору
 Re: как увеличить онлайн размер ключа in reference partitioning  [new]
кит северных морей
Member

Откуда: krsk / nyc / krsk
Сообщений: 766
проходил мимо...
расскажите как. разумеется, интересует выборка за период.

хранить в указанных таблицах поле "дата операции" и секционировать по нему. первичным ключом в таблице "операции" всё равно будет два поля.
30 июн 20, 11:28    [22159522]     Ответить | Цитировать Сообщить модератору
 Re: как увеличить онлайн размер ключа in reference partitioning  [new]
проходил мимо...
Member

Откуда: от верблюда
Сообщений: 1147
кит северных морей
проходил мимо...
расскажите как. разумеется, интересует выборка за период.

хранить в указанных таблицах поле "дата операции" и секционировать по нему. первичным ключом в таблице "операции" всё равно будет два поля.

это требование может быть неприемлемо по ряду причин. например, "указанных таблиц", несколько десятков на разных ветвях и уровнях мастер-деталей. а дата операции всё же может измениться (например, мы ведём учёт по дате проведения операции, а не дате создания), и что, каскадно менять все подчинённые таблицы?

и два поля в первичном ключе тут явно не нужно и вредно, в том числе и по той же самой причине.

да, нужен глобальный индекс на PK, но это не так страшно, как кажется на первый взгляд, и, более того, в реальной жизни это, скорее всего, будет не единственный глобальный индекс.

ЗЫ. я, в целом, не спорю, что можно даже гланды через неподходящее отверстие удалять. я просто радуюсь наличию механизма делать это ... мнээ... более естественным путём.
ЗЗЫ. но накладываемые ограничения заставляют задуматься об управляемости структуры. см. 22109979
30 июн 20, 14:38    [22159703]     Ответить | Цитировать Сообщить модератору
 Re: как увеличить онлайн размер ключа in reference partitioning  [new]
кит северных морей
Member

Откуда: krsk / nyc / krsk
Сообщений: 766
проходил мимо...
это требование может быть неприемлемо по ряду причин.

любое требование может быть неприемлемо по ряду причин. например, в систему через direct-path идет загрузка партиями, размер партии - до сотен миллионов строк, асинхронно (detail может загрузиться раньше, чем master). каким боком мне там глобальный ПК, не говоря уже о декларативной ссылочной целостности?

я вообще не очень понимаю, если честно, какой сценарий вы описываете. чтобы и PWJ, и изменяемый ключ секции, и ссылочная целостность. OLTP система со 100500 миллионов вставок в секунду, по которой вы одновременно гоняете аналитику с DOP >> 1?
30 июн 20, 15:29    [22159736]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить