SQL Server Architecture (selitys)

โšก ร„lykรคs yhteenveto

SQL Server ArchiRakenne noudattaa asiakas-palvelin-mallia, joka on organisoitu kolmeen ydinkerrokseen: protokollakerros verkkoviestintรครคn, relaatiomoottori kyselyiden kรคsittelyyn ja tallennusmoottori tiedonhallintaan ja -hakuun.

  • โœ… Protokollan valinta: Valitse Jaettu muisti paikallisille yhteyksille, TCP/IP etรคkรคytรถlle tai Nimetyt putket lรคhiverkkoympรคristรถille verkkotopologiasi mukaan.
  • ???? Kyselyn kรคsittely: Relaatiomoottori jรคsentรครค syntaksin, optimoi suoritussuunnitelmat monivaiheisen kustannusanalyysin avulla ja delegoi tiedonhaun tallennusmoottorille.
  • ๐Ÿ“ฆ Tallennuksen hallinta: Datatiedostot kรคyttรคvรคt 8 kt:n sivuja, jotka on ryhmitelty laajuuksiin, joissa Buffer Vรคlimuistia kรคsittelevรค pรครคllikkรถ ja ACID-vaatimustenmukaisuutta varmistava transaktiopรครคllikkรถ.
  • ๐Ÿ”’ Suorituskyvyn optimointi: Buffer Vรคlimuisti vรคhentรครค I/O:ta tarjoamalla usein kรคytettyรค dataa muistista, kun taas vรคlimuistin suunnittelu tallentaa suoritussuunnitelmat kyselyiden uudelleenkรคyttรถรค varten.
  • โšก Liiketoimi Integrity: Etukรคteen tapahtuva lokikirjaus ja laiskakรคyttรถ Writer prosessit toimivat yhdessรค varmistaakseen datan kestรคvyyden ja tehokkaan muistinhallinnan.
  • ๐Ÿ“‹ Tietovirta: Jokainen kysely kรคy lรคpi TDS-pakettien koodauksen, CMD-jรคsennyksen, optimoinnin, suorituksen ja tallennuskerroksen vuorovaikutuksen ennen kuin tulokset palautuvat asiakkaalle.

SQL Server Archirakenne

MS SQL Server on asiakas-palvelin-arkkitehtuuri. MS SQL Server -prosessi alkaa asiakassovelluksen lรคhettรคmรคllรค pyynnรถllรค. SQL Server hyvรคksyy, kรคsittelee ja vastaa pyyntรถรถn kรคsitellyillรค tiedoilla. Kรคydรครคn lรคpi koko arkkitehtuuri yksityiskohtaisesti alla:

Kuten alla oleva kaavio osoittaa, SQL Serverissรค on kolme pรครคkomponenttia Archirakenne:

  1. Protokollakerros
  2. Relaatiomoottori
  3. Varastointi Moottori

SQL Server ArchiRakennekaavio, joka nรคyttรครค protokollakerroksen, relaatiomoottorin ja tallennusmoottorin komponentit

Protokollakerros โ€“ SNI

SQL Serverin protokollakerros, joka tunnetaan myรถs nimellรค Server Network Interface (SNI), tukee kolmenlaisia โ€‹โ€‹asiakas-palvelin-arkkitehtuureja. Jokainen protokolla palvelee erilaista verkkoskenaariota. Nรคiden protokollien ymmรคrtรคminen on olennaista ennen kuin tutkitaan, miten kyselyitรค kรคsitellรครคn sisรคisesti.

Jaettu muisti

Tarkastellaan aamuvarhaisen keskustelun tilannetta. Tom ja hรคnen รคitinsรค ovat samassa loogisessa paikassa, kotonaan. Tom pyytรครค kahvia ja รคiti tarjoilee sen suoraan. Samoin SQL Server tarjoaa jaetun muistin protokollan, kun asiakas ja palvelin toimivat samalla koneella. Molemmat kommunikoivat jaetun muistin kautta ilman verkon lisรคkuormitusta.

Jaetun muistin protokollakaavio, joka nรคyttรครค asiakkaan ja SQL Serverin samassa koneessa

Analogia: Tom yhdistรครค asiakkaan (Client), รคiti (Mom) SQL Serverin, koti (Home) koneen (Machine) ja verbaalinen kommunikaatio jaetun muistin protokollaan.

Jaetun muistin protokollan analogiakarttaping asiakas Tomille ja SQL Server รคidille

Kokoonpanohuomautuksia: In SQL Management Studiopaikallisen yhteyden โ€Palvelimen nimiโ€ -vaihtoehto voi olla โ€.โ€, โ€localhostโ€, โ€127.0.0.1โ€ tai โ€Kone\Instanssiโ€.

TCP / IP

Oletetaan nyt, ettรค Tom haluaa kahvia kaupasta, joka sijaitsee 10 km pรครคssรค. Tom on kotona ja kahvila on vilkkaalla torilla. He kommunikoivat matkapuhelinverkon kautta. Samoin SQL Server tarjoaa TCP / IP-protokolla kun asiakas ja SQL Server ovat eri koneilla, jotka ovat yhteydessรค toisiinsa verkon kautta.

TCP/IP-protokollakaavio, joka nรคyttรครค asiakkaan ja SQL Serverin etรคkoneissa

Analogia: Tom yhdistetรครคn asiakkaaseen, kahvila SQL Serveriin, koti ja markkinapaikka etรคsijainteihin ja matkapuhelinverkko TCP/IP-protokollaan.

TCP/IP-protokollan analogiakarttaping etรคasiakas-palvelin-viestintรค

Kokoonpanohuomautuksia: SQL Management Studiossa TCP/IP-yhteyden โ€Palvelimen nimiโ€ -vaihtoehdon on oltava โ€Palvelimen kone\instanssiโ€. SQL Server kรคyttรครค TCP/IP-yhteyksille oletusarvoisesti porttia 1433.

Nimetyt putket

Lopuksi Tom haluaa vihreรครค teetรค naapuriltaan Sierralta. He ovat samassa fyysisessรค paikassa, naapureita, ja kommunikoivat sisรคisen verkon kautta. Samoin SQL Server tarjoaa Named Pipe -protokollan, kun asiakas ja palvelin ovat yhteydessรค toisiinsa lรคhiverkon (LAN) kautta.

Named Pipes -protokollakaavio lรคhiverkkopohjaisille SQL Server -yhteyksille

Analogia: Tom kartoittaa asiakkaaseen, Sierra kartoittaa SQL Serveriin, naapurit kartoittavat lรคhiverkkoon ja verkon sisรคinen kartoittaa nimetyn putken protokollaan.

Kokoonpanohuomautuksia: Nimetyt putket ovat oletusarvoisesti poissa kรคytรถstรค, ja ne on otettava kรคyttรถรถn SQL Configuration Managerin kautta.

Mikรค on TDS?

Nyt kun kolme asiakas-palvelinarkkitehtuurityyppiรค ovat selvรคt, tรคssรค katsaus TDS:รครคn:

  • TDS on lyhenne sanoista Tabular Data Stream.
  • Kaikki kolme protokollaa kรคyttรคvรคt TDS-paketteja.
  • TDS on kapseloitu verkkopaketteihin, mikรค mahdollistaa tiedonsiirron asiakaskoneelta palvelinkoneelle.
  • TDS:n kehitti alun perin Sybase, ja sen omistaa nyt Microsoft.

Seuraavassa taulukossa vertaillaan kolmea SQL Server -yhteysprotokollaa:

Ominaisuus Jaettu muisti TCP / IP Nimetyt putket
Verkon laajuus Sama kone Etรคkรคyttรถ (WAN/Internet) Vain lรคhiverkko
Oletusportti N / A 1433 445
Suorituskyky Nopein (ei verkon ylikuormitusta) Hyvรค (optimoitu WAN-verkkoon) Hyvรค (optimoitu lรคhiverkolle)
Oletusarvoisesti kรคytรถssรค Kyllรค Kyllรค Ei
Paras kรคyttรถkotelo Paikallinen kehitys ja testaus Tuotannon etรคkรคyttรถ Luotettavat lรคhiverkkoympรคristรถt

Koska protokollakerros kรคsittelee verkkoliikennettรค, seuraava vaihe SQL Server -arkkitehtuurissa on itse kyselyn kรคsittely. Tรคssรค kohtaa relaatiomoottori ottaa ohjat kรคsiinsรค.

Relaatiomoottori

Relaatiomoottori tunnetaan myรถs kyselyprosessorina. Se sisรคltรครค SQL Server -komponentit, jotka mรครคrittรคvรคt, mitรค kyselyn on tehtรคvรค ja miten se voidaan suorittaa tehokkaimmin. Se vastaa kรคyttรคjien kyselyiden suorittamisesta pyytรคmรคllรค tietoja tallennusmoottorilta ja kรคsittelemรคllรค palautetut tulokset.

Kuten arkkitehtuurikaaviossa on esitetty, relaatiomoottorissa on kolme pรครคkomponenttia:

CMD jรคsentรคjรค

Protokollakerrokselta vastaanotettu data vรคlitetรครคn relaatiomoottorille. CMD-jรคsennin on ensimmรคinen komponentti, joka vastaanottaa kyselydatan. Sen pรครคtehtรคvรคnรค on tarkistaa kysely syntaktisten ja semanttisten virheiden varalta ja luoda sitten kyselypuu.

CMD Parser -komponentti, joka nรคyttรครค syntaktisen tarkistuksen, semanttisen tarkistuksen ja kyselypuun luomisen

Syntaktinen tarkistus: Kuten kaikilla muillakin ohjelmointikielillรค, SQL Serverillรค on ennalta mรครคritetty joukko avainsanoja ja kielioppisรครคntรถjรค. SELECT, INSERT, UPDATE ja monet muut kuuluvat ennalta mรครคritettyyn avainsanaluetteloon. CMD-jรคsennin varmistaa, ettรค syรถte noudattaa nรคitรค sรครคntรถjรค. Jos kรคyttรคjรคn syรถte poikkeaa odotetusta syntaksista, jรคsennin palauttaa virheen.

Esimerkiksi: Kuvitellaan venรคlรคinen, joka kรคvelee japanilaiseen ravintolaan ja tilaa ruokaa venรคjรคksi. Tarjoilija ymmรคrtรครค vain japania eikรค pysty kรคsittelemรครคn tilausta. Vastaavasti, jos kรคyttรคjรค kirjoittaa โ€SELECRโ€ โ€SELECTโ€:n sijaan, CMD-jรคsennin palauttaa virheen, koska se ei tunnista avainsanaa.

Semanttinen tarkistus: Normalisoija suorittaa tรคmรคn. Se tarkistaa, ovatko kyselyn kohteena olevat sarakenimet, taulukoiden nimet ja muut objektit todella olemassa kaavassa. Jos ne ovat olemassa, normalisoija sitoo ne kyselyyn. Tรคtรค prosessia kutsutaan myรถs sidonnaksi. Kun kรคyttรคjรคn kyselyt sisรคltรคvรคt VIEW-nรคkymรคn, normalisoija korvaa sen sisรคisesti tallennetulla nรคkymรคmรครคrityksellรค.

Esimerkiksi: Running SELECT * from USER_ID aiheuttaisi jรคsentimen heittรคvรคn virheen semanttisen tarkistuksen aikana, jos taulukkoa USER_ID ei ole tietokannassa.

Luo kyselypuu: Tรคssรค vaiheessa luodaan erilaisia โ€‹โ€‹suorituspuita, jotka edustavat kyselyn eri suoritustapoja. Kaikki puut tuottavat saman halutun tulosteen.

Optimizer

Optimoija luo kรคyttรคjรคn kyselylle suoritussuunnitelman. Tรคmรค suunnitelma mรครคrittรครค, miten kysely suoritetaan. Kaikkia kyselyitรค ei ole optimoitu. Optimointi koskee DML (Data Modification Language) -komentoja, kuten SELECT, INSERT, DELETE ja UPDATE. DDL-komentoja, kuten CREATE ja ALTER, ei ole optimoitu, vaan ne kรครคnnetรครคn sisรคiseen lomakkeeseen.

SQL Server Optimizer -tyรถnkulku, joka nรคyttรครค kolme optimointivaihetta

Kyselyn hinta lasketaan tekijรถiden, kuten suorittimen kรคytรถn, muistin kรคytรถn ja syรถte-/tulostustarpeiden, perusteella. Optimoijan tehtรคvรคnรค on lรถytรครค halvin ja kustannustehokkain suoritussuunnitelma, ei vรคlttรคmรคttรค ehdottomasti paras.

Esimerkiksi: Kuvittele, ettรค haluat avata verkkopankkitilin. Yhden pankin kysely kestรครค korkeintaan kaksi pรคivรครค. Sinulla on myรถs lista 20 muusta pankista, joiden kyselyn suorittaminen voi kestรครค lyhyemmรคn ajan. Kaikkien 20 pankin lรคpi hakeminen ei vรคlttรคmรคttรค tarjoa nopeampaa vaihtoehtoa, ja itse haku vie aikaa. Olisi ollut parempi valita ensimmรคinen pankki. Samoin SQL-optimoija kรคyttรครค kattavia ja heuristisia algoritmeja kyselyn suoritusajan minimoimiseksi.

Optimoija etsii kolmessa vaiheessa:

Vaihe 0: Triviaalin suunnitelman etsintรค

Tรคmรค on optimointia edeltรคvรค vaihe. Joillekin kyselyille on olemassa vain yksi kรคytรคnnรถllinen suunnitelma, joka tunnetaan triviaalisuunnitelmana. Lisรคhakuja ei tarvitse tehdรค, koska mikรค tahansa lisรคhaku lรถytรคisi saman suoritussuunnitelman lisรคkustannuksilla.

Vaihe 1: Transaktioiden kรคsittelysuunnitelmien etsiminen

Tรคmรค sisรคltรครค sekรค yksinkertaisten ettรค monimutkaisten suunnitelmien haun. Yksinkertaisen suunnitelman haku kรคyttรครค sarake- ja indeksitietojen tilastollista analyysia, ja se on tyypillisesti rajoitettu yhteen indeksiin taulukkoa kohden. Jos yksinkertaista suunnitelmaa ei lรถydy, suoritetaan monimutkaisempi haku, johon sisรคltyy useita indeksejรค taulukkoa kohden.

Vaihe 2: Rinnakkaiskรคsittely ja optimointi

Jos edelliset strategiat eivรคt tuota riittรคvรครค suunnitelmaa, optimoija etsii rinnakkaiskรคsittelymahdollisuuksia koneen kรคsittelyominaisuuksien perusteella. Jos rinnakkaiskรคsittely ei ole mahdollista, alkaa viimeinen optimointivaihe, jossa kรคytetรครคn kaikkia jรคljellรค olevia vaihtoehtoja parhaan mahdollisen suoritussuunnitelman lรถytรคmiseksi.

Kyselyn suorittaja

Kyselyiden suorittaja kutsuu tallennusmoottorin Access Methodia. Se tarjoaa suoritussuunnitelman, joka sisรคltรครค suorittamiseen tarvittavan tiedonhakulogiikan. Kun tiedot on vastaanotettu tallennusmoottorista, tulos julkaistaan โ€‹โ€‹protokollakerrokselle ja lรคhetetรครคn loppukรคyttรคjรคlle.

Kyselyn suorittaja vรคlittรครค suoritussuunnitelman tallennusmoduulin Access-metodille

Kun relaatiomoottori on mรครคrittรคnyt kyselyn suoritustavan, tallennusmoottori kรคsittelee fyysiset dataoperaatiot. Tรคmรค kerros hallinnoi, miten tiedot tallennetaan, tallennetaan vรคlimuistiin ja noudetaan levyltรค.

Varastointi Moottori

Tallennusmoottori vastaa datan tallentamisesta tallennusjรคrjestelmรครคn, kuten levylle tai SAN-jรคrjestelmรครคn, ja sen hakemisesta tarvittaessa. Ennen tallennusmoottorin komponenttien tarkastelua on tรคrkeรครค ymmรคrtรครค, miten data fyysisesti tallennetaan.

Tallennusmoottorin arkkitehtuuri, joka nรคyttรครค kรคyttรถtavan, Buffer Manager ja Transaktiopรครคllikkรถ

Tiedostot ja niiden laajuus

Datatiedostot tallentavat tiedot fyysisesti datasivujen muodossa, joiden jokaisen sivun koko on 8 kt. Tรคmรค on pienin tallennusyksikkรถ tiedostoissa. SQL ServerTietosivut on loogisesti ryhmitelty laajennuksiin (extents). Yhdellekรครคn objektille ei ole suoraan mรครคritetty yksittรคistรค sivua; sen sijaan yllรคpito tehdรครคn laajennusten kautta. Jokaisella sivulla on sivun otsikko (96 tavua), joka sisรคltรครค metatietoja, kuten sivutyypin, sivunumeron, kรคytetyn tilan, vapaan tilan sekรค osoittimet seuraavalle ja edelliselle sivulle.

tiedostotyypit

SQL Server -tiedostotyypit, joissa nรคkyvรคt ensisijaiset, toissijaiset ja lokitiedostot

Ensisijainen tiedosto: Jokaisessa tietokannassa on yksi pรครคtiedosto. Se tallentaa kaikki tรคrkeรคt tiedot, jotka liittyvรคt taulukoihin, nรคkymiin, triggereihin ja muihin objekteihin. Tiedostopรครคte on tyypillisesti .mdf, mutta se voi olla mikรค tahansa tiedostopรครคte.

Toissijainen tiedosto: Tietokanta voi sisรคltรครค useita toissijaisia โ€‹โ€‹tiedostoja tai olla sisรคltรคmรคttรค niitรค. Nรคmรค ovat valinnaisia โ€‹โ€‹ja sisรคltรคvรคt kรคyttรคjรคkohtaisia โ€‹โ€‹tietoja. Tiedostopรครคte on tyypillisesti .ndf, mutta se voi olla mikรค tahansa tiedostopรครคte.

Lokitiedosto: Tunnetaan myรถs nimellรค Write-Ahead Logs. Tiedostopรครคte on .ldf. Lokitiedostoja kรคytetรครคn tapahtumien hallintaan, ei-toivotuista instansseista palautumiseen ja vahvistamattomien tapahtumien peruutukseen.

Tallennusmoottorissa on kolme pรครคkomponenttia. Jokaisella on oma roolinsa tiedonsaannin ja eheyden hallinnassa.

Kรคyttรถmenetelmรค

Access Method toimii rajapintana kyselyn suorittajan ja Buffer Manager tai tapahtumalokit. Se ei itse suorita kyselyรค, mutta mรครคrittรครค sen tyypin:

  • Jos kysely on SELECT-lauseke (DML), se vรคlitetรครคn Buffer Jatkokรคsittelyn pรครคllikkรถ.
  • Jos kysely on Ei-SELECT-lauseke (DDL ja DML), se vรคlitetรครคn tapahtumien hallinnalle. Tรคmรค sisรคltรครค enimmรคkseen UPDATE-, INSERT- ja DELETE-lausekkeita.

Kรคyttรถtapa reitittรครค SELECT-kyselyt kohteeseen Buffer Managerista ja Non-SELECTistรค tapahtumien hallintaan

Buffer Johtaja

Buffer Manager hallitsee ydintoimintoja, kuten suunnitelmavรคlimuistia, tietojen jรคsennystรค ja virheellisten sivujen kรคsittelyรค.

Buffer Pรครคkรคyttรคjรคn arkkitehtuuri, joka nรคyttรครค suunnitelmavรคlimuistin, Buffer Vรคlimuistin ja datan tallennuksen vuorovaikutus

Suunnitelman vรคlimuisti

Nykyinen kyselysuunnitelma: Buffer Hallinta tarkistaa, onko suoritussuunnitelma tallennetussa suunnitelmavรคlimuistissa. Jos on, vรคlimuistissa olevaa kyselysuunnitelmaa ja siihen liittyvรครค datavรคlimuistia kรคytetรครคn suoraan.

Ensimmรคisen kรคyttรถkerran vรคlimuistisuunnitelma: Jos ensimmรคisen kyselyn suoritussuunnitelma on monimutkainen, se tallennetaan suunnitelman vรคlimuistiin. Tรคmรค varmistaa nopeamman saatavuuden, kun SQL Server vastaanottaa saman kyselyn seuraavan kerran.

Tietojen jรคsentรคminen: Buffer Vรคlimuisti ja datan tallennus

Buffer Pรครคkรคyttรคjรค tarjoaa pรครคsyn tarvittaviin tietoihin. Kaksi mahdollista lรคhestymistapaa riippuen siitรค, onko vรคlimuistissa tietoja:

Buffer Vรคlimuisti โ€“ pehmeรค jรคsennys

Buffer Johtaja etsii tietoja Buffer Vรคlimuisti. Jos tiedot ovat olemassa, kyselyn suorittaja kรคyttรครค niitรค suoraan. Tรคmรค parantaa suorituskykyรค, koska tietojen hakeminen vรคlimuistista vaatii vรคhemmรคn I/O-toimintoja verrattuna tiedon hakemiseen levyltรค.

Buffer Vรคlimuistin pehmeรคn jรคsentรคmisen tyรถnkulku, jossa tiedot noudetaan vรคlimuistista

Tietojen tallennus โ€“ kova jรคsentรคminen

Jos tietoja ei ole kohdassa Buffer Vรคlimuisti, tarvittavat tiedot haetaan levyllรค olevasta tallennustilasta. Tiedot tallennetaan sitten myรถs vรคlimuistiin myรถhempรครค kรคyttรถรค varten.

Kova jรคsennysprosessi, jossa tiedot noudetaan levyltรค ja tallennetaan vรคlimuistiin

Tapahtuman johtaja

Transaktionhallintaa kutsutaan, kun kรคyttรถtapa mรครคrittรครค, ettรค kysely ei ole SELECT-lauseke. Se varmistaa datan yhtenรคisyyden ja kestรคvyyden useiden alikomponenttien avulla:

Transaktionhallinta, joka nรคyttรครค lokien hallinnan, lukituksen hallinnan ja suoritusprosessin kulun

Lokien hallinta

Lokinhallinta pitรครค track kaikista jรคrjestelmรคssรค suoritetuista pรคivityksistรค tapahtumalokeihin tallennettujen lokien kautta. Jokainen lokimerkintรค sisรคltรครค lokin jรคrjestysnumeron sekรค tapahtumatunnuksen ja tietojen muokkaustietueen. Tรคmรค mekanismi tracks vahvistettuja ja peruutettuja tapahtumia.

Lukon hallinta

Transaktion aikana tallennustilassa olevat tiedot siirtyvรคt lukittuun tilaan. Lukituksenhallinta kรคsittelee tรคtรค prosessia varmistaen tietojen yhtenรคisyyden ja eristรคytymisen. Nรคitรค ominaisuuksia kutsutaan myรถs nimellรค ACID (Atomjรครคisyys, johdonmukaisuus, eristys, kestรคvyys).

Toteutusprosessi

Toteutusprosessi seuraa seuraavia vaiheita:

  1. Lokinhallinta aloittaa lokin kirjaamisen ja Lukinhallinta lukitsee siihen liittyvรคt tiedot.
  2. Tiedoista sรคilytetรครคn kopio Buffer Vรคlimuisti.
  3. Pรคivitettรคvien tietojen kopio sรคilytetรครคn lokissa. Buffer, ja kaikki tapahtumat pรคivittรคvรคt tiedot Data-osiossa Buffer.
  4. Sivut, jotka tallentavat muokattua tietoa, tunnetaan nimellรค Likaiset sivut.

Tarkistuspisteiden ja ennakkoon kirjoitettavien lokien tallennus

Tarkistuspisteprosessi suoritetaan noin kerran minuutissa ja merkitsee kaikki likaiset sivut levylle kirjoitettavaksi. Sivu kuitenkin lรคhetetรครคn ensin lokitiedoston datasivulle Buffer Loki. Tรคtรค mekanismia kutsutaan ennakkokirjaukseksi. Likaiset sivut pysyvรคt vรคlimuistissa, vaikka ne olisi kirjoitettu levylle.

laiska Writer

Kun SQL Server havaitsee suuren kuormituksen ja uusille tapahtumille tarvitaan puskurimuistia, se vapauttaa likaiset sivut vรคlimuistista. Lazy Writer toimii LRU (Least Recently Used) -algoritmilla puhdistaakseen sivuja puskurialtaasta levylle.

Kuinka SQL Server kรคsittelee kyselyn pรครคstรค pรครคhรคn

Kunkin kerroksen ymmรคrtรคminen erikseen on arvokasta, mutta kokonaiskuvan selventรคminen tapahtuu, kun tarkastellaan niiden yhteistoimintaa. Kun asiakassovellus lรคhettรครค SQL-kyselyn, tapahtuu seuraava sarja:

Protokollakerros vastaanottaa pyynnรถn jaetun muistin, TCP/IP:n tai nimettyjen putkien kautta ja kรครคrii sen TDS-pakettiin. Relaatiomoottori sitten ottaa ohjat: CMD-jรคsennin tarkistaa syntaksin ja semantiikan, optimoija luo halvimman suoritussuunnitelman ja kyselyn suorittaja aloittaa tiedonhaun.

Kyselyn suorittaja kutsuu Tallennusmoottorin Kรคyttรถtapa, joka reitittรครค SELECT-kyselyt Buffer Manager ja muokkauskyselyt Transaction Managerille. Buffer Esimies tarkistaa suunnitelmavรคlimuistin ja Buffer Vรคlimuisti ensin (pehmeรค jรคsennys). Jos tietoja ei ole vรคlimuistissa, se suorittaa levyn lukemisen (kova jรคsennys). Kirjoitustoimintoja varten tapahtumienhallinta koordinoi lokinhallintaa, lukitusnhallintaa ja tarkistuspisteprosessia varmistaakseen ACID-yhteensopivuuden.

Kun tallennusmoduuli palauttaa pyydetyt tiedot, relaatiomoduuli muotoilee tulosjoukon ja protokollakerros toimittaa sen takaisin asiakassovellukselle saman TDS-protokollan kautta.

Kuinka valita oikea protokolla SQL Server -yhteyksille

Oikean protokollan valinta riippuu asiakkaan ja palvelimen vรคlisestรค fyysisestรค suhteesta sekรค suorituskykyvaatimuksista.

Kรคytรค jaettua muistia kun asiakassovellus toimii samassa koneessa kuin SQL Server. Tรคmรค on nopein vaihtoehto, koska se poistaa kaiken verkon ylimรครคrรคisen kuormituksen. Se sopii erinomaisesti paikalliseen kehitykseen, testaukseen ja yhden koneen kรคyttรถรถnottoihin.

Kรคytรค TCP/IP-protokollaa kun asiakas ja palvelin ovat eri koneilla, jotka on yhdistetty WAN-verkon tai internetin kautta. Tรคmรค on yleisimmin kรคytetty protokolla tuotantoympรคristรถissรค. SQL Server kuuntelee oletusarvoisesti porttia 1433, ja tรคmรค protokolla tukee salattuja yhteyksiรค TLS:n kautta.

Kรคytรค nimettyjรค putkia kun asiakas ja palvelin ovat samassa luotettavassa lรคhiverkossa ja suorituskyky sisรคisissรค verkoissa on etusijalla. Nimetyt putket ovat oletusarvoisesti poissa kรคytรถstรค ja ne on otettava kรคyttรถรถn SQL Server Configuration Managerin kautta. Se on harvinaisempi nykyaikaisissa kรคyttรถรถnotoissa, mutta on edelleen hyรถdyllinen vanhoissa intranet-sovelluksissa.

UKK

SQL Server -arkkitehtuuri koostuu kolmesta kerroksesta: protokollakerroksesta (kรคsittelee verkkoliikennettรค jaetun muistin, TCP/IP:n tai nimettyjen putkien kautta), relaatiomoottorista (kรคsittelee kyselyitรค) ja tallennusmoottorista (hallitsee tietojen tallennusta ja hakua).

TDS (Tabular Data Stream) on protokolla, jota kaikki kolme SQL Server -yhteysmenetelmรครค kรคyttรคvรคt. Se kapseloi tiedot verkkopaketteihin asiakkaan ja palvelimen vรคlistรค siirtoa varten. TDS:n kehitti alun perin Sybase.

Pehmeรค jรคsennys hakee tiedot Buffer Vรคlimuistiin tallennettu data, mikรค nopeuttaa suoritusta. Kova jรคsennys tapahtuu, kun dataa ei ole tallennettu vรคlimuistiin ja se on luettava levyltรค, mikรค vaatii enemmรคn I/O-toimintoja.

Optimoija kรคy lรคpi kolme vaihetta: triviaalien suunnitelmien tunnistuksen, tapahtumien kรคsittelysuunnitelmien haun ja rinnakkaiskรคsittelyjen optimoinnin. Se valitsee halvimman ja kustannustehokkaimman suunnitelman suorittimen, muistin ja I/O-tekijรถiden perusteella.

Likaiset sivut ovat datasivuja Buffer Vรคlimuistit, joita on muokattu, mutta joita ei ole vielรค kirjoitettu levylle. Tarkistuspisteprosessi ja laiska Writer kรคsittelee likaisten sivujen tyhjennyksen levylle sรครคnnรถllisesti.

Write-Ahead Logging varmistaa, ettรค tapahtumalokin merkinnรคt kirjoitetaan levylle ennen varsinaisia โ€‹โ€‹datasivuja. Tรคmรค takaa tietojen palautumisen jรคrjestelmรคvian sattuessa ja yllรคpitรครค tapahtumien kestรคvyyttรค.

Kyllรค. Tekoรคlyllรค toimivat tietokannan hallintatyรถkalut voivat analysoida kyselymalleja, suositella indeksien optimointeja, ennustaa resurssien pullonkauloja ja automatisoida suorituskyvyn sรครคtรถtehtรคviรค, jotka perinteisesti vaativat manuaalisia tietokannan pรครคttรคjien toimia.

Tekoรคlypohjaiset alustat tarjoavat automatisoitua kyselyiden sรครคtรถรค, ennakoivaa kapasiteetin suunnittelua, poikkeavuuksien havaitsemista ja รคlykรคstรค tyรถkuorman hallintaa. Nรคmรค ominaisuudet vรคhentรคvรคt manuaalista tyรถtรค ja auttavat jรคrjestelmรคnvalvojia ehkรคisemรครคn suorituskykyongelmia ennakoivasti.

Tiivistรค tรคmรค viesti seuraavasti: