Actualizări bazate pe interogări

8i | 9i | 10g | 11g | 12c | 13c | 18c | 19c | 21c | Diverse | PL / SQL | SQL | RAC | WebLogic | Linux

Acasă „Articole” Diverse „Aici

Acest articol descrie modul în care un tabel poate fi actualizat folosind datele dintr-un alt tabel.

  • Configurare
  • Metodă de interogare
  • Metodă de vizualizare în linie
  • Metodă de declarație MERGE

Articole conexe.

  • Instrucțiune MERGE

Configurare

Tabelul DEST_TAB conține 10.000 de rânduri. conține 5.000 de rânduri, fiecare dintre ele având o valoare cheie potrivită cu un rând din tabelul DEST_TAB, dar date diferite în CODE și DESCRIPTION coloane.

În acest moment nu putem vedea niciuna dintre valorile din DESCRIPTION coloana din tabelul DEST_TAB conține cuvântul „Actualizat”.

SELECT COUNT(*)FROM dest_tabWHERE description LIKE "Updated%"; COUNT(*)---------- 0SQL>

Scopul este de a actualiza rânduri din tabelul DEST_TAB cu datele din tabelul SOURCE_TAB.

Metoda de interogare

T prima opțiune este să faceți o actualizare a tabelului DEST_TAB folosind o subconsultare pentru a extrage datele corecte din tabelul SOURCE_TAB. Observați predicatul EXISTS pentru a exclude rândurile din tabelul DEST_TAB fără niciun rând din SOURCE_TAB masă. Fără aceasta, rândurile neegalate vor avea valorile setate la NULL.

Planul de execuție pentru volumul de date curent este prezentat mai jos.

Dacă volumul de lucru este suficient de mare și serverul poate faceți față volumului de lucru suplimentar, PARALLEL indiciu poate fi folosit pentru a face acest lucru în paralel.

Metodă de vizualizare în linie

este să alăturați cele două tabele ca o vizualizare în linie și să bazați actualizarea pe aceasta.

Planul de execuție pentru volumul de date curent este prezentat mai jos.

Dacă volumul de lucru este suficient de mare și serverul poate face față sarcinii de lucru suplimentare, PARALLEL indiciu poate fi folosit pentru a face acest lucru în paralel.

Numărul de rânduri actualizate poate fi modificat prin adăugarea o WHERE clauză fie pentru vizualizarea în linie, fie pentru declarația principală de actualizare.

  • Declarație MERGE

Sper că acest lucru ajută. Cu respect Tim …

Înapoi la început.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *