Mukaan: Greg Robidoux | Päivitetty: 2019-10-29 | Kommentit (4) | Liittyvät: 1 | 2 | 3 | 4 | 5 | Enemmän > LIITTYÄ Taulukoita,
Ongelma
Joskus on tarpeen yhdistää tietoja useista taulukoista tai näkemyksiä intoone kattava aineisto. Tämä voi koskea taulukoita, joissa on samedatabase-järjestelmässä samanlainen data, tai ehkä on tarpeen yhdistää samanlainen data tietokantoihin tai evenacross-palvelimiin.
tässä vinkissä katsomme, miten UNION vs. UNIONALL-komentoja käytetään ja miten ne eroavat toisistaan.,
Ratkaisu
SQL Server sinulla on kyky yhdistää useita tietojoukkoja yhteen comprehensivedataset käyttämällä UNIONIN tai UNIONIN KAIKILLE toimijoille. On suuri ero näiden työn sekä lopullisen tulosjoukon, joka palautetaan, mutta pohjimmiltaan thesommands liittyä useita tietoja, jotka ovat samanlaisia rakenteita yhdeksi yhdistetty tietokokonaisuus.
UNIONIN
Tämän toiminnon avulla voit liittyä multipledatasets yhdeksi aineisto ja poistaa kaikki kaksoiskappaleet, jotka ovat olemassa. Basicallyit suorittaa erillisen operaation kaikissa sarakkeissa tulosjoukon.,
UNIONI
Tämän toiminnon uudelleen, voit joinmultiple datajoukoista yhteen datajoukkoon, mutta se ei poista päällekkäiset rivit.Koska tämä ei poista päällekkäisiä rivejä tämä prosessi on nopeampi, mutta jos et halua päällekkäisiä tietueita, sinun on käytettävä unionin operaattoria.,h-kyselyn on oltava sama määrä sarakkeita
Vinkki: Jos sinulla ei ole täsmälleen sama sarakkeita kaikki kyselyt käyttää oletuksena arvoa tai NULL-arvoa, kuten:
SELECT firstName, lastName, company FROM businessContactsUNIONSELECT firstName, lastName, NULL FROM nonBusinessContactsorSELECT firstName, lastName, createDate FROM businessContactsUNION ALLSELECT firstName, lastName, getdate() FROM nonBusinessContacts
UNIONIN vs., UNIONIN KAIKKI Esimerkkejä
katsotaanpa katsomaan muutamia yksinkertaisia esimerkkejä siitä, miten nämä komennot toimivat ja miten ne eroavat toisistaan. Kuten näet lopulliset tulossarjat eroavat toisistaan, mutta on olemassa SQL Server todella täydentää prosessia.
UNIONI
tässä ensimmäisessä esimerkissä käytämme UNIONIN KAIKKI operaattorin vastaan Employeetable päässä AdventureWorks-tietokannan. Tämä ei luultavasti ole jotain woulddo, mutta tämä auttaa havainnollistamaan eroja näiden kahden toimijan.
taulukossa dbo on 290 riviä.Työntekijä.,
SELECT * FROM HumanResources.EmployeeUNION ALLSELECT * FROM HumanResources.EmployeeUNION ALLSELECT * FROM HumanResources.Employee
Kun tämä kysely suoritetaan, tulos on 870 riviä. Tässä on 290 riviä, jotka on palautettu 3 kertaa. Tiedot on vain koottu yksi dataset päälle muiden dataset.
tässä on tämän kyselyn toteutussuunnitelma. Voimme nähdä, että taulukko oli queried3 kertaa ja SQL Server teki Ketjuuntuminen askel liität kaikki tiedot.
UNIONIN
tässä seuraavassa esimerkissä käytetään UNION operaattoria vastaan Työntekijä tableagain päässä AdventureWorks-tietokannan.,
SELECT * FROM HumanResources.EmployeeUNIONSELECT * FROM HumanResources.EmployeeUNIONSELECT * FROM HumanResources.Employee
Kun tämä kysely suoritetaan, tulos on 290 rivit. Vaikka yhdistimme tiedot kolme kertaa UNIONIN operaattori poistaa päällekkäisiä kirjaa ja thereforereturns vain 290 ainutlaatuinen riviä.
tässä on tämän kyselyn toteutussuunnitelma. Voimme nähdä, että SQL Server-ensimmäinen queried2 taulukoita, sitten teki Merge Join-operaatio yhdistää kaksi ensimmäistä tablesand sitten se teki toisen Yhdistä Liittyä yhdessä pohti kolmannen taulukon kyselyn.,Joten voimme nähdä oli paljon enemmän työtä, joka oli tehtävä saada tämä tulos verrattuna unionin kaikki.
UNIONIN vs. UNIONIN KAIKKI Esimerkkejä Lajitella Aihekokonaisuuksien Indeksi Sarake
Jos otamme tämän askeleen pidemmälle ja tehdä ERÄÄNLAINEN dataa ClusteredIndex sarake saamme nämä suorittamisen suunnitelmat. Tästä voimme nähdä, että executionplan, että SQL Server käyttää on sama jokainen näistä toiminta, jopa vaikka lopullinen tulos vahvistetaan edelleen sisältävät 870 rivit UNIONIN KAIKKI ja 290 rowsfor UNIONISSA.,
UNIONIN KAIKKI toteutussuunnitelman kanssa lajittele aihekokonaisuuksien indeksi sarake
UNIONIN toteutussuunnitelman kanssa lajittele aihekokonaisuuksien indeksi sarake
UNIONIN vs. UNIONIN KAIKKI Esimerkit, Joilla Tavallaan Ei-indeksoitu Sarake
Tässä on toinen esimerkki, tehdä sama asia, mutta tällä kertaa teen LAJITELLA anon indeksoitu sarake. Kuten näette suorittamisen suunnitelmat ovat taas samanlaiset, thesetwo kyselyitä, mutta tällä kertaa sen sijaan, että käyttämällä MERGE LIITTYÄ, KETJUUNTUMINEN ja SORToperations käytetään.,
- katsomaan näitä muita vinkkejä, jotka voivat olla hyödyllisiä käyttää unionin toimijat
- Vertaamalla Useita Datajoukkoja kanssa INTERSECTand PAITSI toimijoiden
- SQL Server-Neljä-osa nimeäminen
- Vertaa SQL Server Tulokset Kaksi Kyselyt käyttäen UNIONIN
Viimeksi Päivitetty: 2019-10-29
author
Katso kaikki vinkkini
Leave a Reply