MERGE-lause
8i | 9i | 10g | 11g | 12c | 13c | 18c | 19c | 21c | Muut | PL / SQL | SQL | RAC | WebLogic | Linux
Etusivu ”Artikkelit” 9i ”täällä
MERGE
-lauseke otettiin käyttöön Oracle 9i: ssä ehdollisen lisäyksen tai päivittämisen vuoksi tietoja sen läsnäolosta riippuen, prosessi, joka tunnetaan myös nimellä ”ylöspäin”. MERGE
-lauseke vähentää taulukon skannauksia ja voi suorittaa operaation tarvittaessa rinnakkain.
- Syntaksi
- Suorituskyky
Aiheeseen liittyvät artikkelit.
- MERGE-lause
- MERGE-lauseen parannukset Oracle Database 10g
syntaksit
Harkitse seuraavaa esimerkkiä, jossa HR_RECORDS
-taulukon tiedot yhdistetään EMPLOYEES
taulukko.
Lähde voi olla myös kysely.
Suorituskyky
MERGE
-lauseke on optimoitu yhdistämään tietojoukkoja yksittäisten rivien sijasta, kuten alla olevassa esimerkissä on esitetty.
Luo seuraavat testitaulukot. Lähdetaulukko sisältää kaikki ALL_OBJECTS
view, kun taas kohdetaulukko sisältää noin puolet riveistä.
Seuraava koodi vertaa neljän yhdistämistoiminnon suorituskykyä. Ensimmäinen käyttää suoraa MERGE
-lausetta. Toinen käyttää myös lauseketta MERGE
, mutta rivi riviltä. Kolmas suorittaa päivityksen ja lisää ehdollisesti rivin, jos päivitys koskettaa nollaa riviä. Neljäs lisää rivin ja suorittaa sitten päivityksen, jos lisäys epäonnistuu indeksiarvon kaksoisarvolla.
Lähdössä näkyy suora MERGE
-lauseke on järjestys suuruusluokkaa nopeammin kuin lähin kilpailija. Päivitys / lisäys suorittaa melkein kaksinkertaisen lisäyksen / päivityksen nopeuden ja tasaamisen rivi riviltä MERGE
.
Vain päivityksen / lisäyksen vertailu ja lisäys- / päivitysmenetelmät erikseen, on muistettava, että vertailut vaihtelevat taulukon tietojen mukaan. Jos suurinta osaa tiedoista ei jo ole, lisäys- / päivitystapa voi olla parempi. Jos suurin osa tiedoista on jo läsnä, päivitys / lisää-lähestymistapa on todennäköisesti parempi. Jos et ole varma, käytä vain yhdistämistä, koska se on selkeämpi.
Sen lisäksi, että suora MERGE
-lauseke on nopeampi, koska se on DML-käsky, se voi voidaan suorittaa helposti rinnakkain suorituskyvyn parantamiseksi edelleen edellyttäen, että palvelimesi pystyy käsittelemään ylimääräisen kuormituksen.
Lisätietoja:
- MERGE-lause
- MERGE Statement Enhancements in Oracle Database 10g
- YHDISTÄ
Toivottavasti tämä auttaa. Terveisin Tim …
Takaisin alkuun.