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.