Mi e' capitato anni fa che lavorando ogni qual volta l'utente finale cercava di fare dlle statistiche a mezzo di tabelle on line su un DB "operazionale" finva per rallentare l'intero sistema.
Allora io propongo di creare delle "copy table" che siano sempre allineate dallo stesso DB relazionale alle tabelle necessarie per effettuare le statistiche on line direttamente sulle "copy table" invece che sulle tabelle sorgenti. In questo modo le statistiche on line non andrebbero a toccate le tabelle sorgenti e dunque il lavoro puo' procedere in parallelo, senza alcun bisogno di utilizzare le tabelle che sono in essere per il funzionamento del mega-applicativo.
La sintesi SQL che immagino sarebbe del tipo:
SQL> create copytable nome tabella di copia table source nome tabella sorgente tablespace.....
Questo va fatto naturalmente per ogni tabella su cui e' necessario effettuare una o piu' statistiche (cioe' va fatto presumibilmente per un insieme di tabelle corrispondenti, ciascun insieme, ad una specifica statistica)
Opinioni in merito sono gradite.
Regards,
The frog
(Nota a margine: di solito le statistiche si preparano con delle "viste" -view- che impegnano un determinato numero di tabelle. In questo senso diremo che le view dovrebbero far riferimento interamente a delle copy-table. Ancora per le copytable dovrebbero essere previsti dei level consistency 1, quindi le copytable sarebbero fatte sui dati vivi della tabella e questo significa che non impegnerebbero quelli che su Oracle sono i "rollback-segment").
Allora io propongo di creare delle "copy table" che siano sempre allineate dallo stesso DB relazionale alle tabelle necessarie per effettuare le statistiche on line direttamente sulle "copy table" invece che sulle tabelle sorgenti. In questo modo le statistiche on line non andrebbero a toccate le tabelle sorgenti e dunque il lavoro puo' procedere in parallelo, senza alcun bisogno di utilizzare le tabelle che sono in essere per il funzionamento del mega-applicativo.
La sintesi SQL che immagino sarebbe del tipo:
SQL> create copytable nome tabella di copia table source nome tabella sorgente tablespace.....
Questo va fatto naturalmente per ogni tabella su cui e' necessario effettuare una o piu' statistiche (cioe' va fatto presumibilmente per un insieme di tabelle corrispondenti, ciascun insieme, ad una specifica statistica)
Opinioni in merito sono gradite.
Regards,
The frog
(Nota a margine: di solito le statistiche si preparano con delle "viste" -view- che impegnano un determinato numero di tabelle. In questo senso diremo che le view dovrebbero far riferimento interamente a delle copy-table. Ancora per le copytable dovrebbero essere previsti dei level consistency 1, quindi le copytable sarebbero fatte sui dati vivi della tabella e questo significa che non impegnerebbero quelli che su Oracle sono i "rollback-segment").