Updates op basis van zoekopdrachten

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

Home “Artikelen” Misc “hier

Dit artikel beschrijft hoe een tabel kan worden bijgewerkt met gegevens uit een andere tabel.

  • Setup
  • Subquery-methode
  • Inline-weergavemethode
  • MERGE-instructie-methode

Gerelateerde artikelen.

  • MERGE-instructie

Setup

De DEST_TAB -tabel bevat 10.000 rijen. De SOURCE_TAB -tabel bevat 5000 rijen, die elk een overeenkomende sleutelwaarde hebben met een rij uit de DEST_TAB -tabel, maar verschillende gegevens in de CODE en DESCRIPTION kolommen.

Op dit punt kunnen we geen van de waarden zien in de DESCRIPTION kolom van de DEST_TAB tabel bevat het woord “Updated”.

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

Het doel is om de rijen in de DEST_TAB -tabel met de gegevens uit de SOURCE_TAB -tabel.

Subquery-methode

T De eerste optie is om de tabel DEST_TAB bij te werken met behulp van een subquery om de juiste gegevens uit de tabel SOURCE_TAB te halen. Let op het predikaat EXISTS om rijen uit de DEST_TAB -tabel uit te sluiten zonder overeenkomende rij in de SOURCE_TAB tafel. Zonder dit zullen de niet-overeenkomende rijen hun waarden hebben ingesteld op NULL.

Het uitvoeringsplan voor het huidige datavolume wordt hieronder getoond.

Als de werklast groot genoeg is en de server kan omgaan met de extra werklast, de PARALLEL hint kan worden gebruikt om deze parallel te laten draaien.

Inline View-methode

De tweede optie is om de twee tabellen samen te voegen als een inline-weergave en de update daarop te baseren.

Het uitvoeringsplan voor het huidige datavolume wordt hieronder weergegeven.

Als de werklast voldoende groot is en de server kan omgaan met de extra werklast, de PARALLEL hint kan worden gebruikt om dit parallel te laten draaien.

Het aantal bijgewerkte rijen kan worden gewijzigd door toe te voegen een WHERE -clausule voor ofwel de inline-weergave of de belangrijkste update-instructie.

  • MERGE-verklaring

Ik hoop dat dit helpt. Groeten Tim …

Terug naar de top.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *