Fragmentarea tabelului în Oracle - Produse software

Recomandat pentru:
  • Oracle Database 9i Versiunea 1
  • Baza de date Oracle 9i R2
  • Oracle Database 10g Versiunea 1
  • Baza de date Oracle 10g R2
  • Oracle Database 11g Versiunea 1

Când rândurile nu sunt stocate unul lângă altul sau dacă rândurile sunt împărțite în mai multe blocuri, performanța este degradată deoarece acele rânduri necesită acces suplimentar la bloc.

Trebuie înțeles că fragmentarea tabelului este diferită de fragmentarea fișierelor. Când o serie de operații DML sunt efectuate pe un tabel, tabelul este fragmentat deoarece DML-ul nu eliberează spațiul liber până la HWM.

HWM este un indicator al BLOCURILOR UTILIZATE din baza de date. Blocurile care duc la linia HWM sunt blocuri utilizate și conțin date. Aceste date pot fi șterse. Oracle știe care blocuri înainte de HWM nu conțin date, citește blocurile de deasupra HWM atunci când efectuează o scanare completă a tabelului.

Clauza DDL resetează întotdeauna HWM.

Cum să găsiți fragmentarea tabelului?

Dimensiunea tabelului (cu fragmentare)

Total = 72952 - 30604 = 42348 Kb este folosit fără niciun rezultat.

Diferența dintre cele două valori este de aproape 60% și Pctfree este de 10% (implicit), ca urmare, 50% din spațiu nu este utilizat și este inactiv deoarece nu conține date.

Cum să resetați HWM / să eliminați fragmentarea?

Acest lucru va necesita reorganizarea tabelului fragmentat.

Există patru opțiuni pentru reorganizarea tabelelor fragmentate:

  1. schimba masa. mutați + reconstruiți indecși
  2. export / trunchiere / import
  3. creați tabel ca select (CTAS)
  4. dbms_redefinition

Opțiunea 1 „alterează tabelul . mutați + reconstruiți indecșii”

Opțiune: 2 „Creați tabel ca selectare”

Opțiune:3 „export/trunchi/import”

Opțiune: 4 „dbms_redefinition”

Ce metodă ți se potrivește, uită-te la situație.