Principiul organizării clusterelor

Clustering-ul este o metodă de stocare în comun a datelor asociate (tabele). Cluster - structura de memorie în care este stocat un set de tabele (în aceleași blocuri de memorie). Tabelele grupate ar trebui să aibă coloane comune utilizate pentru conexiune (de exemplu, cheia primară a tabelului PRODUCT și cheia externă a tabelului DELIVERY, a se vedea figura 4.8, b).

Figura 4.8. Datele noncluste (a) și grupate (b)

Cluster Key (QC) - ϶ᴛᴏ Un câmp sau un set de câmpuri comune tuturor tabelelor grupate. Fiecare tabelă stocată în cluster trebuie să aibă câmpuri corespunzătoare tipurilor și dimensiunilor câmpurilor cheii de cluster. Numărul de câmpuri din cheia clusterată este limitat (de exemplu, pentru baza de date Oracle8 această limită este de 16).

Stocare partajată înseamnă că datele din toate tabelele grupate cu aceeași valoare a cheii de cluster sunt stocate pe o singură pagină sau într-un bloc de memorie. Fizic, acest lucru este de obicei pus în aplicare după cum urmează: la începutul paginii (bloc), stocate în intrarea tabel pentru care cluster este o cheie primară (sau unic), urmată de înregistrarea celuilalt tabel (e) situat având în același cluster valoarea cheii. De fapt, datele sunt stocate sub forma de conectare ?? Eniya tabele de valori-cheie grupate. Din acest motiv, conectarea ?? ix grupate tabele în comparație cu tabelele stocate separat se face de 3-6 ori mai repede.

În cazul în care toate datele referitoare la aceeași valoare a cheii de cluster nu sunt plasate într-un bloc, este alocat un nou bloc de memorie, iar blocul anterior stochează o referință la acesta. Dar dacă sistemul vă permite să modificați dimensiunea blocului (în special Oracle DBMS), atunci când creați clusterul, este de dorit să setați dimensiunea blocului pe baza unei estimări a volumului mediu de înregistrări cu aceleași valori ale cheii de cluster. Dacă aceleași înregistrări ocupă doar o parte a blocului (de exemplu, o medie de 1K cu o dimensiune a blocului de 4K), atunci când creați o tabelă de cluster, puteți specifica numărul de valori QC pe bloc.

Valorile cheii de cluster a tabelului pot fi actualizate. Dar această actualizare poate provoca o mutare fizică a înregistrării, deoarece Locația înregistrării depinde de valoarea cheii de cluster. Din acest motiv, atributele actualizate frecvent nu sunt candidați buni pentru a introduce o cheie clustered.

Două avantaje de bază ale clusterelor:

  • Reduce timpul de conectare a tabelelor la valoarea cheii de cluster.
  • Fiecare valoare a cheii de cluster este stocată o singură dată, economisind astfel memoria.

Pe de altă parte, prezența clusterelor crește, de obicei, timpul operației de adăugare a înregistrărilor (INSERT): sistemul cheltuiește timp suplimentar în căutarea blocului la care ar trebui plasat noua înregistrare.

Articole similare