Come si fa a Oracle decidere quali blocchi sono assenti nella cache del buffer per una query?

0

Domanda

Si supponga che abbiamo eseguito la query riportata di seguito.

select * from employees where salary > 10000;

Dopo qualche tempo, abbiamo eseguito la query riportata di seguito.

select * from employees where salary > 500;

Il secondo, tendono a tornare più blocchi. Ma abbiamo già avere alcuni di questi blocchi nella cache del buffer a causa della query precedente. Forse alcuni di loro vengono eliminati modulo buffer cache, ma alcuni o di tutti i blocchi dalla prima query può ancora esiste. Così qui, il server di database deve sapere che blocchi già esistenti e quelli da leggere dal disco inoltre.

La mia domanda è, come fa il database trovare e decidere quali blocchi di leggere il disco inoltre?

1

Migliore risposta

3

Oracle utilizza il LRU tecnica ( che sta per 'meno utilizzato di recente'). Si tratta di un algoritmo di computer utilizzato per gestire i dati in una cache. Quando la cache è piena e hai bisogno di spazio per cose nuove - è eliminare il meno utilizzato di recente per primo (cose non è stato utilizzato per un po', ma sono nella cache consumo di spazio).

Non è specifico per i blocchi di dati e blocchi di dati non sono davvero tenuti in LRU elenco, sono gestiti da un tocco di conte in questi giorni - ma che toccano il conte algoritmo è molto simile a un LRU così si può pensare di esso in questo modo.

In breve, quando si sente LRU, pensare a una cache che gestisce alcuni dati (dati), e tende a eliminare gli elementi dalla cache a seconda che essi sono stati utilizzati più o meno recente. Più di recente, qualcosa è stato utilizzato - il più probabile è quello di rimanere nella cache.

Ogni blocco ha un DBA - blocco di dati di indirizzo - che consiste in un file# e blocco. Questo identifica in modo univoco un blocco in un database. Oracle utilizza che la "chiave" per identificare il blocco nella cache del buffer.

Se si esegue una query, se alcuni blocchi non sono nella cache, è perché la LRU sia stata autorizzata per allocare più le cose che sono più utilizzate di recente. Non è garanzia, ma se avete bisogno di questo tipo di garanzia, è possibile utilizzare diverse piscine nel buffer cache, soprattutto, è possibile utilizzare il KEEP piscina per mantenere a cui si accede frequentemente segmenti nel buffer cache.

Spero che chiarisce.

2021-10-28 11:08:38

@oramas, dubbi circa la risposta ?
Roberto Hernandez

In altre lingue

Questa pagina è in altre lingue

Русский
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................