Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Как отследить почему становятся невалидными мат. представления? / 6 сообщений из 6, страница 1 из 1
02.12.2016, 10:54
    #39359159
Opus Magnum
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отследить почему становятся невалидными мат. представления?
Есть ряд таблиц по которым собраны мат. вьюшки.
Запросы переписываются, работает как надо, но ночью запускается процесс загрузки и некоторые представления приобретают статус INVALID. Притом выборочно, скажем, из 5 представлений, собранных по одной таблице, отваливается одно.
Не хочется создавать процедуру для их компиляции в конце процесса, но отследить что именно "портит" вьюшки не получается.
Перегружается очень большое количество данных, много-много объектов.
После обновления данных в этих таблицах, запускается процедура, в которую входит процесс обновления и компиляции представлений, если есть невалидные.
То есть, по описанию процесса обновления данных в Системе, далее эти таблицы не трогаются и, соответственно, вьюшки не должны изменяться.
Подскажите пожалуйста, что еще можно посмотреть, кроме загрузки данных в таблицы-источники?
Может ли рекомпиляция DIMENSION (без изменения структуры), уровни которых входят в параметры группировки мат. представлений, сделать мат. представление невалидным?
...
Рейтинг: 0 / 0
02.12.2016, 11:26
    #39359182
env
env
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отследить почему становятся невалидными мат. представления?
Opus MagnumМожет ли рекомпиляция DIMENSION (без изменения структуры), уровни которых входят в параметры группировки мат. представлений, сделать мат. представление невалидным?

Да может.

Также есть забавные баги при которых любой DML на объект по которому строится MV приводит к её инвалидации.

Укажите версию субд, использыемые опции и если есть специфичные патчи, то их тоже.
...
Рейтинг: 0 / 0
02.12.2016, 11:38
    #39359191
Opus Magnum
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отследить почему становятся невалидными мат. представления?
env,

EE 11.2.0.3.0 - 64

опции
Partitioning
Objects
Advanced replication
Bit-mapped indexes
Connection multiplexing
Connection pooling
Database queuing
Incremental backup and recovery
Instead-of triggers
Parallel backup and recovery
Parallel execution
Parallel load
Point-in-time tablespace recovery
Fine-grained access control
Proxy authentication/authorization
Change Data Capture
Plan Stability
Online Index Build
Coalesce Index
Managed Standby
Materialized view rewrite
Database resource manager
Spatial
Export transportable tablespaces
Transparent Application Failover
Fast-Start Fault Recovery
Sample Scan
Duplexed backups
Java
OLAP Window Functions
Block Media Recovery
Fine-grained Auditing
Application Role
Enterprise User Security
Oracle Data Guard
OLAP
Basic Compression
Join index
Trial Recovery
Data Mining
Online Redefinition
Streams Capture
File Mapping
Block Change Tracking
Flashback Table
Flashback Database
Transparent Data Encryption
Backup Encryption
Unused Block Compression
Result Cache
SQL Plan Management
SecureFiles Encryption
Real Application Testing
Flashback Data Archive
DICOM
Active Data Guard
Server Flash Cache
Advanced Compression
XStream
Deferred Segment Creation
...
Рейтинг: 0 / 0
02.12.2016, 11:53
    #39359207
env
env
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отследить почему становятся невалидными мат. представления?
Opus Magnum,

Сможете сделать тестовый образец вашей структуры мат вью?

В таком ключе:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
create table t1 ...;

create table t2 ....;

create materialized view log on t1 ....;

create view v1 ...;

create materialized view mv1 ....;

...

create materialized view mvN ...;

alter view v1 compile;

select * from dba_mviews where status != 'VALID';



Желательно, чтобы на образце было понятно взаимосвязь ваших объектов и какие операции по ним проходят. (заодно может и сами что найдёте, пока делаете образец)
...
Рейтинг: 0 / 0
02.12.2016, 12:25
    #39359240
Opus Magnum
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отследить почему становятся невалидными мат. представления?
Структура таблиц упрощена

Типичный пример, лишние поля убраны
Код: 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.
create table table1
(
id number not null,
p_date date not null,
id_dep number not null, --Подразделение в филиале
s number(13,2), --Сумма
s2 number(13,2) --Сумма по другому показателю
);

create table dep
(
id number not null, --PRIMARY KEY
dep_name varchar2 (50),
id_parent number --ID родителя в этой таблице
);

alter table table1
add constraint table1_fk_dep
foreign key (id_dep)
references dep(id) rely disable;

create materialized view mv1_table1 as
select sum (s) s1, sum (s2) s2, id_parent id_dep2
from table1 join dep d on id_dep = d.id
group by id_parent


...
Рейтинг: 0 / 0
07.12.2016, 14:26
    #39361831
Opus Magnum
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отследить почему становятся невалидными мат. представления?
Проблему решили "топором": собрали процедурку, которая компилит невалидные представления после окончания загрузки.

Но вот вопросик вдогонку, чтобы тем не плодить:

Есть DIMENSION, есть мат. вьюшка, есть исходная таблица.

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

Запрос не переписывается, указывая ошибку QSM-01102.

Констрейны (RELY DISABLE) и (NOT NULL) на нужных полях есть.
Дименшн валиден.

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


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