Domanda

Stiamo mettendo a punto una massiccia applicazione che la nostra azienda ha appena scritto. Parte di tale messa a punto include la messa a punto dei database. Eseguiamo DB2 LUW su AIX. In particolare, siamo a 9,7 Fix Pack 4 (anche se speriamo di migrare a 10.1 Fix Pack 2 quest'anno).

Inizialmente abbiamo costruito tablespaces necessari solo per le dimensioni dei dati (cioè, se tutte le tabelle si adattano a un tablespace 4K, abbiamo creato tablespace 4K solo, essendo il nostro pensiero perché creare tablespaces per prendere più disco se non sono utilizzati). Questo era lo stesso anche per i tablespace temporanei.

Gli sviluppatori ci hanno detto di aver ottenuto prestazioni migliori aggiungendo un tablespace temporaneo 32k. Quindi tutti i loro tavoli vanno in tablespace 4K, 8K o 16K. Eppure hanno aggiunto un temporaneo 32k (che ha il suo bufferpool) e sostengono di aver dimezzato alcuni dei tempi di transazione della loro applicazione.

Quando ci penso, suppongo che abbia senso. Immagino che l'ottimizzatore veda lo spazio 32K come un ottimo posto per eseguire join/sort e ha più memoria a sua disposizione a 32k contro 4k.

Il mio collega collegata ha detto che (indipendentemente da quanto sopra), aveva letto da qualche parte che i DBA avrebbero sempre dovuto posizionare tablespace temporanei nei loro bufferpools. Quando gli ho chiesto che i link ci leggono, non riusciva a ricordare.

Mi chiedo ... i tablespace temporanei dovrebbero ottenere sempre i loro bufferpools? Questo aiuta con le prestazioni di join/ordin? È una buona pratica?

E in secondo luogo sul lato, ha senso creare sempre un bufferpool da 32k e tablespace temporanei 32K per quelli di unione/tipo?

Nessuna soluzione corretta

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a dba.stackexchange
scroll top