Domanda

Ho alcune domande sull'ottimizzazione di questo tipo di carico.

Uno crea una nuova tabella di dati da caricare in una tabella partizionata e quindi crea gli indici su questa nuova tabella.

  1. Dovresti costruire l'indice con l'opzione COMPUTE STATISTICS o utilizzare l'opzione Cascade di DBMS_Stats?

  2. Dovresti raccogliere le statistiche sul tavolo prima dello scambio o sulla partizione dopo lo scambio?

  3. Se lo fai dopo lo scambio e specifichi il nome della partizione nell'elenco dei parametri, quale interazione ha il parametro granularity? Ad esempio, se specifico un nome di partizione e quindi imposto la granularità su "GLOBAL AND PARTITION", tutto ciò fa Global? Fa solo quell'unica partizione?

È stato utile?

Soluzione

  

Dovresti costruire l'indice con l'opzione COMPUTE STATISTICS o utilizzare l'opzione Cascade di DBMS_Stats?

Se si tratta di un data warehouse, considera innanzitutto di non raccogliere affatto statistiche e di utilizzare il campionamento dinamico. In secondo luogo, se si raccolgono le statistiche, utilizzare le statistiche di calcolo sull'indice.

  

Dovresti raccogliere le statistiche sul tavolo prima dello scambio o sulla partizione dopo lo scambio?

Raccogli le statistiche sulla tabella new-data prima dello scambio per ottenere statistiche sulla partizione sui nuovi dati - raccogli successivamente le statistiche sulla tabella partizionata per raccogliere le statistiche della tabella

  

Se lo fai dopo lo scambio e specifichi il nome della partizione nell'elenco dei parametri, quale interazione ha il parametro granularity? Ad esempio, se specifico un nome di partizione e quindi imposto la granularità su "GLOBAL AND PARTITION", tutto ciò fa Global? Fa solo quella partizione?

Vedi sopra.

Seriamente, non dare alcuna possibilità a statistiche e campionamenti dinamici.

Altri suggerimenti

  1. DBMS_STATS è considerato il modo corretto di calcolare le statistiche per questa versione. Costruire l'indice con COMPUTE STATISTICS è fattibile, ma di solito si desidera calcolare tutte le statistiche contemporaneamente e scattare istantanee.

  2. Vuoi raccogliere le statistiche dopo lo scambio. In questo modo l'ottimizzatore farà la migliore ipotesi per l'esecuzione di query utilizzando i dati di tali partizioni.

  3. Perché dovresti mettere entrambi?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top