aktualizace založené na dotazech
8i | 9i | 10 g | 11 g | 12c | 13c | 18c | 19c | 21c | Různé | PL / SQL | SQL | RAC | WebLogic | Linux
Domů „Články“ Různé „Zde
Tento článek popisuje, jak lze tabulku aktualizovat pomocí dat z jiné tabulky.
- Nastavení
- Metoda poddotazů
- Metoda přímého zobrazení
- Metoda prohlášení SLOUČENÍ
Související články.
- Prohlášení o sloučení
Nastavení
Tabulka DEST_TAB
obsahuje 10 000 řádků. obsahuje 5 000 řádků, z nichž každý má shodnou hodnotu klíče s řádkem z DEST_TAB
tabulky, ale jiná data v CODE
a DESCRIPTION
sloupce.
V tomto okamžiku nevidíme žádnou z hodnot ve DESCRIPTION
tabulky DEST_TAB
obsahuje slovo „Aktualizováno“.
SELECT COUNT(*)FROM dest_tabWHERE description LIKE "Updated%"; COUNT(*)---------- 0SQL>
Cílem je aktualizovat řádky v tabulce DEST_TAB
s údaji z tabulky SOURCE_TAB
.
Metoda poddotazu
T První možností je provést aktualizaci DEST_TAB
tabulky pomocí poddotazu a získat tak správná data z SOURCE_TAB
tabulky. Všimněte si predikátu EXISTS
, který vylučuje řádky z DEST_TAB
tabulky bez odpovídajícího řádku v SOURCE_TAB
stůl. Bez toho budou mít neporovnané řádky jejich hodnoty nastaveny na NULL.
Níže je zobrazen plán provádění pro aktuální objem dat.
Pokud je pracovní zátěž dostatečně velká a server může zvládnout další pracovní zátěž, lze k paralelnímu běhu použít PARALLEL
nápovědu.
Metoda přímého zobrazení
Druhá možnost je spojit tyto dvě tabulky jako vložené zobrazení a založit na tom aktualizaci.
Plán provádění pro aktuální objem dat je uveden níže.
Pokud je pracovní zátěž dostatečně velká a server si poradí s extra zátěží, lze k paralelnímu spuštění použít PARALLEL
nápovědu.
Počet aktualizovaných řádků lze změnit přidáním klauzuli WHERE
buď v přímém zobrazení, nebo v hlavním prohlášení o aktualizaci.
- Prohlášení SLOUČIT
Doufám, že pomáhá. S pozdravem Tim …
Zpět nahoru.