Huvitavatest asjadest IT maailmast, juhistest ja arvustustest. Max paralleelsuse aste – optimaalse väärtuse valimine Piirake MS SQL Serveri serveri maksimaalset mälumahtu

Sihtmärk: uurige SQL-i paralleelsuse mõju 1C päringutega töötamisele

Kirjandus:

Testikeskkond:

Windows server 2008 R2 Enterprise

MS SQL server 2008 R2

· 1C Enterprise 8.2.19.90

Joonis 1. SQL-i atribuudid "Üldine"


Joonis 2. SQL-i atribuudid "Advanced"

Tööriistad:

SQL-serveri profiili koostaja

· 1C päringukonsool

Testitaotlus:

VALI

AK.Name AS Nimi

FROM

Teabe register.Aadressi klassifikaator AS AK

SISEMINE LIITUMINE Inforegister.Aadressi klassifikaator AS AK1

BY AK.Code = AK1.Code

Ettevalmistus:

Käivitame SQL-serveri Profileri, loome ühenduse, märgime sündmused ja veerud, nagu on näidatud joonisel 3.


Joonis 3. Jälje omadused

Meie andmebaasi valiku seadistamine


Joonis 4. Filtreerimine andmebaasi järgi

Lühendid:

Maksimaalne paralleelsuse aste – MDOP

Paralleelsuse kululävi – kulu

Järjestikuse päringuplaani testimine (MDOP = 1)


Joonis 5. Päringukonsool – täitmisaeg 20 sekundit.

SQL-serveri parameeter „Maksimaalne paralleelsuse aste” on seatud väärtusele 1 (paralleelsust pole). Vaatame tulemust profileerijas (joonis 6)


Joonis 6. Järjestikuse päringu plaan

SQL-server genereeris järjestikuse päringuplaani järgmisega: protsessori kogukoormus = 6750 (s) ja päringu täitmise aeg = 7097 (s)

Paralleelse päringuplaani testimine (MDOP = 0, maksumus = 5)

Lülitame SQL-serveri paralleelrežiimile (SQL-päringus):

KASUTADA kapten ;

EXEC sp_configure "näita täpsemat valikut" , 1;

ÜMBERSEADISTAMINE ALISTAMISEGA

KASUTADA kapten ;

exec sp_configure "maksimaalne paralleelsusaste" , 0;

ÜMBERSEADISTAMINE ALISTAMISEGA

Täidame sama päringu (joonis 7)


Joonis 7. Päringukonsool – täitmisaeg 16 sekundit.

Kontrollime tulemust profileerijas (joonis 8)


Joonis 8. Paralleelpäringu plaan

Seekord genereeris SQL-server paralleelse päringuplaani, mille protsessori kogukoormus = 7,905 sekundit ja päringu täitmise kestus = 3,458 sekundit

Järjestikuse päringuplaani testimine (MDOP = 0, maksumus = 150)

Proovime paralleelplaanist lahti saada, kasutades parameetrit “Paralleelsuse kululävi”. Vaikimisi on parameetriks seatud 5. Meie puhul õnnestus meil vabaneda paralleelse plaani moodustamisest väärtusega 150 (SQL päringus):

KASUTADA kapten ;

exec sp_configure "paralleelsuse kululävi", 150 ;

Kontrollime päringu täitmist nendel tingimustel (joonis 9)

Joonis 9. Päringukonsool – täitmisaeg 20 sekundit.

Kontrollime tulemust profileerijas (joon. 10)


Joonis 10. Järjestikuse päringu plaan.

SQL-server genereeris järjestikuse päringuplaani. Protsessori kogukoormus = 7,171 sek, päringu täitmise aeg = 7,864 sek.

Järeldused:

· Testpäringu täitmine 1C Enterprise keskkonnas, kasutades SQL-serveri paralleelset päringuplaani, suurendab oluliselt jõudlust võrreldes järjestikuse plaaniga (16 sekundit versus 20 sekundit – kasum 4 sekundit)

· Testpäringu täitmine SQL-serveri enda poolt paralleelse päringuplaani kasutamisel on kaks korda kiirem kui järjestikuse päringuplaani kasutamisel (3,5 sekundit versus 7,1 sekundit).

· SQL-serveri paralleelsust saab reguleerida mitte ainult MDOP parameetriga, vaid ka parameetriga "Cost threshold for parallelism"

  • Õpetus

See juhend on mõeldud algajatele, kes otsivad lihtsat venekeelset juhendit SQL Server 2012 ingliskeelse versiooni installimiseks, mida seejärel kasutatakse SharePoint 2013 jaoks.
See artikkel ei ole professionaalidele.

Kogu töö on jagatud 3 etappi:

  • SQL Server 2012 installimine
  • Serveri konfiguratsiooniparameetri max paralleelsuse astme määramine
  • Seadistage selle konto õigused, mis on mõeldud SharePoint 2013 installimiseks
Artiklis kirjeldatakse ka Microsoft .NET Framework 3.5 installiprotsessi MS Windows Server 2012 R2 Standard keskkonnas.

Tähelepanu: lõike all on palju pilte!

SQL Server 2012 installimine

1. Enne installimist peaksite veenduma, et kõvakettal on piisavalt vaba ruumi (minu puhul kulus selleks 2,7 GB).
Pärast levitamise alustamist valige " Paigaldamine" vasakpoolses menüüs, seejärel klõpsake " Uus SQL Server eraldiseisev või lisage funktsioone olemasolevale installile":

2. Käivitub installiviisard. Ta kontrollib. Võite klõpsata nupul "Kuva üksikasjad" ja vaadata üksikasjalikku aruannet:

3. Üksikasjalik aruanne. Klõpsake nuppu "OK":

4. Sisestage tootevõti ja klõpsake nuppu "Järgmine".

5. Nõustume litsentsilepingu tingimustega.
Selleks märkige ruut " Nõustun litsentsitingimustega

6. Valige sammus "Seadistusroll" esimene üksus " SQL serveri funktsiooni installimine". Klõpsake nuppu "Järgmine":

7. Märkige sammus „Funktsiooni valik” „ Andmebaasimootori teenused", "Haldustööriistad – põhilised"Ja" Haldustööriistad – valmis Seejärel klõpsake nuppu "Järgmine":

8. Seejärel teostab paigaldaja uue kontrolli. Võite klõpsata nupul "Kuva üksikasjad" ja vaadata üksikasjalikku aruannet:

9. Üksikasjalik aruanne. (Praegusel etapil ilmnes reeglis "Microsoft .NET Framework 3.5 on installitud..." viga. Lisateavet allpool). Klõpsake nuppu "Järgmine":

10. Etapis „Esijuhtumi konfigureerimine” peate konfigureerima SQL Serveri teenuse eksemplari.
Kordan, et see artikkel on mõeldud algajatele. Seetõttu eeldame, et SQL Serverit pole teie serverisse varem installitud, mis tähendab, et jätame kõik vaikeseaded. Klõpsake nuppu "Järgmine":

11. Selles etapis kuvab installiviisard kettaruumi nõuded. Klõpsake nuppu "Järgmine":

12. Etapil "Serveri konfigureerimine" peate määrama teenuse "" domeenikonto SQL Serveri andmebaasimootor Pärast väljade „Konto nimi” ja „Parool” täitmist klõpsake nuppu „Järgmine”.

13. Etapil "Andmebaasimootori konfigureerimine" lisage praegune kasutaja SQL-serveri administraatorite hulka. Selleks klõpsake nuppu "Lisa praegune kasutaja" ja seejärel nuppu "Järgmine".

14. Järgmises etapis klõpsake nuppu "Järgmine".

15. Järgmisena viib installiviisard läbi testi uuesti ja kuvab selle tulemused. Klõpsake nuppu "Järgmine":

16. Etapil „Installimiseks valmis” kuvab viisard kokkuvõtliku teabe. Siin peate klõpsama nuppu "Install":

17. Pärast installimise lõpetamist kuvatakse teave tehtud toimingute kohta:

18. Soovitan selles etapis arvuti taaskäivitada. Mõnel juhul (näiteks Microsoft .NET Framework 3.5 installimisel) kuvab installiviisard ise akna, mis palub teil arvuti taaskäivitada. Ära keeldu.

Serveri konfiguratsiooniparameetri max paralleelsuse astme määramine

Parameetri Max Degree of Parallelism vaikeväärtus on 0.
SharePoint 2013 nõuab, et see säte oleks 1.
Seda on lihtne parandada!

1. Käivitage Microsoft SQL Serveri haldusstuudio(Start – Kõik programmid – Microsoft SQL Server 2012 – SQL Serveri haldusstuudio).

2. Serveri ühenduse kuval klõpsake nuppu "Ühenda".

3. Paremklõpsake oma serveril jaotises " Objektiuurija" ja valige " Omadused":

4. Avanevas serveri atribuutide aknas valige vasakpoolses menüüs leht " Täiustatud" ja kerige atribuutide loendit ekraani allossa. Määrake parameetri väärtus " Maksimaalne paralleelsuse aste"V 1 ja klõpsake nuppu OK:

5. Ärge sulgege SQL Server Management Studio, meil läheb seda hiljem vaja.

Seadistage selle konto õigused, mis on mõeldud SharePoint 2013 installimiseks

Kontol, mille alla SharePoint 2013 installitakse, peavad SQL-serveris olema kõrgendatud õigused.
Sellele kontole on soovitatav anda järgmised rollid:
  • dbcreator
  • turvaadmin
  • avalik
1. SQL Server Management Studio jaotises " Objektiuurija"laienda üksust" Turvalisus". Seejärel paremklõpsake üksusel " Sisselogimised" ja valige " Uus sisselogimine":

2. Sisestage väljale „Sisselogimisnimi” selle konto domeeninimi, mille alla plaanite SharePoint 2013 installida ja konfigureerida.

3. Valige vasakpoolses menüüs leht " Serveri rollid" ja kontrollige rolle "dbcreator" ja "securityadmin" ning veenduge ka, et roll "public" oleks juba märgitud. Seejärel klõpsake nuppu "OK":

Nüüd on SQL-server SharePoint 2013 installimiseks valmis.

Microsoft .NET Framework 3.5 installimine operatsioonisüsteemi MS Windows Server 2012 R2 Standart

Punkti 9. sammus " SQL Server 2012 installimine"Sain veateate: .NET Framework 3.5 ei olnud installitud.
Selle probleemi lahendamiseks peate järgima neid samme.

1. Peate avama konsooli" Serverihaldur".

2. Valige vasakpoolses menüüs üksus „Armatuurlaud”.

3. Klõpsake akna keskel üksusel „Lisa rollid ja funktsioonid”.

4. Avanevas viisardis jätke samm "Enne alustamist" vahele.

5. Valige etapis „Installi tüüp” üksus „ Rollipõhine või funktsioonipõhine installimine". Klõpsake nuppu "Järgmine".

6. Järgmises etapis jätke kõik vaikeseadeks ja klõpsake nuppu "Järgmine".

7. Jätke samm "Serveri rollid" vahele, klõpsates nuppu "Järgmine".

8. Märkige sammus "Funktsioonid" ruut ".NET Framework 3.5 Features". Klõpsake nuppu "Järgmine".

9. Kui installiprotsess on lõppenud, saate Rollide ja funktsioonide lisamise viisardi sulgeda.

10. Valmis!

Edu kõigile ja rahulikku taevast teie peade kohal!

P.S. Head lähenevat kosmonautikapäeva!

1C töö optimeerimine. MS SQL serveri seadistamine

Luba andmebaasi kiire faili lähtestamine

  • Andmebaasi loomine
  • Failide, logide või andmete lisamine olemasolevasse andmebaasi
  • Olemasoleva faili suuruse suurendamine (sh automaatse kasvu toimingud)
  • Andmebaasi või failirühma taastamine

Seade lubamiseks:

  1. Avage arvutis, kus varukoopiafail luuakse, rakendus Kohalik turbepoliitika (secpol.msc).
  2. Laiendage vasakpoolsel paanil sõlme Kohalikud poliitikad ja seejärel klõpsake nuppu Määra kasutajaõigused.
  3. Topeltklõpsake parempoolsel paanil valikut Tehke helitugevuse hooldustoimingud.
  4. Klõpsake kasutaja või rühma jaoks nuppu "Lisa" ja lisage siia kasutaja, kelle all MS SQL Server töötab.
  5. Klõpsake nuppu Rakenda.

Lubage suvand Lukusta leheküljed mällu

See säte juhib, millised kontod saavad RAM-i andmeid salvestada, et süsteem ei saadaks andmete lehti kettale virtuaalmällu, mis võib jõudlust parandada.

Seade lubamiseks:

  1. Menüüs Start valige Käivita. Väljale Ava sisestage gpedit.msc.
  2. Laiendage kohaliku rühmapoliitika redaktori konsoolis valikut Arvuti konfiguratsioon ja seejärel Windowsi konfiguratsioon.
  3. Laiendage jaotisi Turvaseaded ja Kohalikud eeskirjad.
  4. Valige kaust User Rights Assignment.
  5. Reeglid kuvatakse üksikasjade paneelil.
  6. Sellel paneelil topeltklõpsake suvandit Lukusta leheküljed mälus.
  7. Valige dialoogiboksis Kohalik turbevalik – mälulehtede lukk käsk Lisa kasutaja või rühm.
  8. Dialoogiboksis Vali: kasutajad, teenusekontod või rühmad lisage konto, mille all käitate MS SQL Serveri teenust.
  9. Muudatuste jõustumiseks taaskäivitage server või logige sisse selle kasutajana, kelle all MS SQL Serverit käitate.

Keela DFSS ketaste jaoks.

Dynamic Fair Share Scheduling mehhanism vastutab riistvararessursside tasakaalustamise ja jaotamise eest kasutajate vahel. Mõnikord võib selle töö 1C jõudlust negatiivselt mõjutada. Selle ainult ketaste jaoks keelamiseks peate:

  1. Leidke registrist haru HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TSFairShare\Disk
  2. Määrake parameetri EnableFairShare väärtuseks 0

Keela andmete tihendamine andmebaasifaile sisaldavate kataloogide jaoks.

Kui tihendamine on lubatud, proovib OS muutmise ajal faile täiendavalt töödelda, mis aeglustab salvestusprotsessi ennast, kuid säästab ruumi.

Kataloogis olevate failide tihendamise keelamiseks peate:

  1. Avage kataloogi atribuudid
  2. Klõpsake vahekaardil Üldine nuppu Muu
  3. Kettaruumi säästmiseks tühjendage märkeruut "Tihenda" sisu lipp.

Määrake parameetri Max paralleelsuse aste väärtuseks 1.

See parameeter määrab, kui mitmes lõimes saab ühte päringut täita. Vaikimisi on parameeter 0, mis tähendab, et server ise valib lõimede arvu. Tüüpilise 1C koormusega andmebaaside puhul on soovitatav määrata selle parameetri väärtuseks 1, kuna enamikul juhtudel on sellel positiivne mõju päringu toimivusele.

Parameetri konfigureerimiseks peate tegema järgmist:

  1. Avage serveri atribuudid ja valige vahekaart Täpsemalt
  2. Määrake parameetri väärtuseks üks.

Piirake MS SQL Serveri maksimaalset mälumahtu.

Mälu MS SQL Serverile = Mälu kõige jaoks – Mälu OS-i jaoks – Mälu 1C serveri jaoks

Näiteks serverisse on installitud 64 GB RAM-i, peate mõistma, kui palju mälu DBMS-serverile eraldada, et sellest 1C-serveri jaoks piisaks.

OS-i normaalseks tööks on enamikul juhtudel 4 GB enam kui piisav, tavaliselt 2-3 GB.

Et määrata, kui palju mälu 1C-server vajab, peate vaatama, kui palju mälu serveriklastri protsessid tööpäeva kõrgusel hõivavad. Need protsessid on raggent, rmngr ja rphost; neid protsesse käsitletakse üksikasjalikult serveriklastrile pühendatud jaotises. Andmeid tuleks võtta just töökoormuse tippperioodil, mil andmebaasis töötab maksimaalne arv kasutajaid. Pärast nende andmete saamist peate neile lisama 1 GB - juhuks, kui alustate 1C-s "raskeid" toiminguid.

MS SQL Serveri maksimaalse mälumahu määramiseks peate:

  1. Käivitage Management Studio ja looge ühendus soovitud serveriga
  2. Avage serveri atribuudid ja valige vahekaart Mälu
  3. Määrake parameetri Maksimaalne serveri mälumaht väärtus.

Lubage Boost SQL Server prioriteedi lipp.

See lipp võimaldab teil tõsta MS SQL Serveri protsessi prioriteeti teiste protsesside ees.

Lipu lubamine on mõttekas ainult siis, kui 1C-server pole DBMS-serveriga arvutisse installitud.

Lipu seadmiseks peate:

  1. Käivitage Management Studio ja looge ühendus soovitud serveriga
  2. Avage serveri atribuudid ja valige vahekaart Protsessorid
  3. Lubage lipp "SQL Serveri prioriteedi suurendamine" ja klõpsake nuppu OK.

Määrake andmebaasifailide automaatne suurenemine.

Autogrow võimaldab määrata summa, mille võrra andmebaasi faili suurust selle täitumisel suurendatakse. Kui määrate automaatse laiendamise suuruse liiga väikeseks, laieneb fail liiga sageli, mis võtab aega. Soovitatav on määrata väärtus vahemikus 512 MB kuni 5 GB.

  1. Käivitage Management Studio ja looge ühendus soovitud serveriga
  2. Sisestage iga faili vastas veerus Automaatne suurendamine vajalik väärtus

See säte rakendub ainult valitud andmebaasile. Kui soovite, et see säte kehtiks kõikidele andmebaasidele, peate tegema samu toiminguid mudeliteenuste andmebaasi jaoks. Pärast seda on kõigil äsja loodud andmebaasidel samad sätted, mis mudeliandmebaasil.

Eraldage mdf andmefailid ja ldf logifailid erinevatele füüsilistele ketastele.

Sel juhul saab failidega töötamine toimuda mitte järjestikku, vaid peaaegu paralleelselt, mis suurendab kettatoimingute kiirust. Nendel eesmärkidel sobivad kõige paremini SSD-draivid.

Failide edastamiseks vajate:

  1. Käivitage Management Studio ja looge ühendus soovitud serveriga
  2. Avage soovitud andmebaasi atribuudid ja valige vahekaart Failid
  3. Jäta failide nimed ja asukohad meelde
  4. Eraldage andmebaas, valides kontekstimenüüst valiku Tasks – Detach
  5. Märkige ruut Kustuta ühendused ja klõpsake nuppu OK
  6. Avage File Explorer ja teisaldage andme- ja logifail soovitud meediumile
  7. Avage Management Studios serveri kontekstimenüü ja valige Manusta andmebaas
  8. Klõpsake nuppu Lisa ja määrake uuelt kettalt mdf-fail
  9. Alumises andmebaasi teabeaknas logifaili real tuleb määrata tehingulogi faili uus tee ja vajutada nuppu OK.

See postitus keskendub ainult MS SQL Serverile. Kui plaanite "õnne proovida" 1C kasutamisel koos Oracle'i, DB2, Postrgre'ga, on see teave teile kasutu. Kuid peate mõistma, et 1C-s on ennekõike MS SQL-serveri spetsialistid. Tänu IBMi jõupingutustele ilmuvad ka DB2 spetsialistid. Võite kaua vaielda, kas see DBMS on hea või halb, üks asi on oluline, 1C töötab MS SQL serveriga kõige “sujuvamalt”. Otsustades viimaste "esiosa" aruannete järgi, on töö DB2-ga muutunud enam-vähem korralikuks. Kuigi mul oli isiklikult kogemusi 1C seadistamisel DB2-ga töötamiseks juba versioonis 8.1, ei olnud kõik kuidagi väga hästi. Igal juhul peab teise DBMS-i valik olema selgelt põhjendatud – kas võimalustega, mis MS SQL-is puuduvad (koormuse tasakaalustamisega klaster, Grid jne), või finantsidega (Oracle on juba ostetud) või platvorm (kõik on Linuxis).

Niisiis, mida tuleb MS SQL Serveriga teha:

1) Määrake minimaalne ja maksimaalne mälumaht. Miinimum on pool süsteemimälust. Maksimaalne - süsteemimälu ilma 2 GB. Seda tehakse Management Studio kaudu - serveri atribuutides:

2) Kui prioriteet ei ole vahekaardil Protsessorid määratud, peate selle määrama

3) Seadke paralleelsuse maksimaalseks astmeks 1.

4) Lülitage sisse SQL Server Agent, konfigureerige andmebaasipost - seal pole midagi keerulist, ma ei kirjelda seda üksikasjalikult.

5) Teenusplaanide seadistamine:
Levinud on:
a) Statistika värskendus – iga 2 tunni järel
b) DBCC FREEPROCCACHE – iga 2 tunni järel
Iga aluse jaoks:
a) Täielik varukoopia
b) Diferentsiaalne varukoopia
c) Indekside defragmentimine – iga päev
d) Indeksite taastamine - nädalavahetustel öösel
e) Andmebaasi terviklikkuse kontrollimine – kord kuus öösiti nädalavahetustel

6) Soovitan määrata iga andmebaasi jaoks (atribuutides) taastemudeli lihtsaks. Kui teil ei ole ööpäevaringset süsteemi ja kasutajaid on vähem kui 1000 baasi kohta, pole tõrkesiirdeklastrit ja te pole allkirjastanud SLA-d, milles kohustute andmeid taastama kuni sekundilise täpsusega (ja mitte alates viimase varundamise aeg) mis tahes seadme rikke korral. See soovitus oleks mõistlik. Vastasel juhul mõtlete väga kiiresti pikalt ja meeletult, mida teha võsastunud tehingute logiga

7) Eemalda tempdb andmebaas tavalistest andmebaasidest teisele kettale – isegi kui see tähendab RAID-massiivi ümberseadistamist ja jõudluse vähendamist. Vastasel juhul võib 1 kasutaja kõigi teiste töö halvata. Kui teil on kõvaketta asemel riistvarakiirendi, siis loomulikult ei saa te seda eraldada ja tempdb-d sinna panna, kuid see on ainult siis, kui teil on see

8) installige mingi seiretööriist - näiteks mulle meeldib spotlight http://www.quest.com/spotlight-on-sql-server-enterprise/

9) Pange end proovile Microsofti parimate tavade analüsaatoriga - http://www.microsoft.com/download/en/details.aspx?id=15289 - suurepärane tööriist, mis aitab mitte ainult seadistustega, vaid ka paljude probleemide lahendamisel .

Nüüd lühidalt, miks me seda kõike tegime:

1) Mälu. Minimaalne väärtus kaitseb teid lihtsalt "tõrgete" eest, kui SQL-server, mis on mingil ainult talle teadaoleval põhjusel, ei kasuta kogu talle saadaolevat mälu. Peab kõik ära sööma! Maksimaalne väärtus kaitseb teid vahetamise eest, kui sama SQL-serveri mälukasutuse optimeerija otsustab, et ta ei saa midagi muud teha....

3) Väga oluline punkt - IHMO see peab olema kõigis tehingusüsteemides 1. Esiteks hoiab see ära teatud tõkestamise erinevate protsesside vahel, mis üritavad täita 1 päringut, ning kaitseb meid vastavalt mõningate “veidrate” vigade eest. Teiseks... 1 “tapja” päring võib võtta üle kõik serveri ressursid, mis on süsteemi teiste kasutajate suhtes mõneti ebaõiglane Parameeter ise määrab, mitu protsessorituuma suudab 1 päringu töödelda.

5) Statistika ja protseduurilise vahemälu tühjendamine on hästi teada, kuid sageli unustame uuesti indekseerimise. Vahepeal on see protseduur üsna oluline, eriti kui andmebaasi maht kasvab, suureneb selle tähtsus. Mõnikord kaob indeksi killustatuse tõttu kuni 60% jõudlusest.

7) Kui sul on riistvarakiirendi või vaid 2 erineva juurdepääsukiirusega ketast, siis soovitaks mõelda ka andmebaasides failigruppide jagamisele ning üksikute tabelite jagamisele erinevateks kettamassiivideks, millel on erinev ligipääsuaeg. Lõppude lõpuks peate tunnistama, et RN “kaubad ladudes” ja kataloog “Täiendava teabe säilitamine” on 2 objekti, mille ladustamisnõuded on põhimõtteliselt erinevad. Kõiki andmebaasis olevaid faile ja pilte pole vaja kiirele massiivile salvestada – selle saab eraldada eraldi, mis pole nii kiire, kuid kus on palju ruumi (ja siis ärge kartke muide hulga faile andmebaasi üles laadida).

Selles lühikeses märkuses tahaksin veidi rääkida Microsoft SQL Serveri paralleelsuse sätete keerukusest. Paljud teist on juba ammu teadlikud valikust Max Degree od Parallelism, mis on SQL Serveris olnud juba väga pikka aega. Vaikimisi on see seatud väärtusele 0, mis tähendab, et SQL Server ise valib optimaalse paralleelsuse astme, st ühe käsu täitmiseks kasutatavate protsessorite/lõimede arvu. Nüüd ma ei peatu ega arutle, millise väärtuse juures on parem see valik määrata - see on eraldi märkuse teema. Ma lihtsalt vaatan, kuidas selle valiku väärtus päringute täitmist mõjutab. Näiteks alloleval joonisel on selle valiku väärtuseks 1, mis tähendab, et kõigi päringute paralleelplaanid on vaikimisi keelatud.

See suvand on saadaval ka vaatamiseks järgmise T-SQL-i käsuga:

Tõepoolest, kõik päringuplaanid on vaikimisi järjestikused. Näiteks:

Kuid arendajal ja igal kasutajal on endiselt võimalus seda vihjete abil mõjutada. Selleks peate lihtsalt määrama soovitud paralleelsuse astme ja luuakse soovitud päringuplaan, näiteks:

Ja kui vaatame seda päringut vaate sys.dm_exec_query_profiles kaudu, näeme, et see on tegelikult käivitatud 10 lõimes.

Seega jääb süsteemi salajane auk, mida arendajad ja kasutajad saavad kasutada, et "kiirendada" (siin panen selle meelega jutumärkidesse, sest suur paralleelsus ei too alati kaasa päringu täitmisaja lühenemist) päringuid, suurendades paralleelsuse astet. Kuid sel viisil saavad nad serveri lihtsalt "tappa", käivitades samal ajal palju kontrollimatuid paralleelseid päringuid. Mida me saame sellega teha? Siin tulebki meile appi Resource Governor, väga võimas ja täiesti alahinnatud süsteem, mis võimaldab väga paindlikult ressursse erinevate kasutajarühmade vahel jaotada. Jällegi, ma ei hakka praegu pikemalt peatuma sellel, kuidas see töötab ja millised võimalused sellel on. Ma lihtsalt räägin üksikasjalikult selle kohta, kuidas selle samaaegsuse piirangu sätted seda mõjutavad. Vaatame esmalt vaikeseadeid:

Jällegi näeme, et vaikimisi on suvand seatud 0-le ja maksimaalse astme valimise otsus jäetakse SQL Serveri teha. Nüüd vaatame, mis juhtub, kui muudan selle väärtuseks 5. Tähelepanu, ärge mingil juhul tehke selliseid seadistusi reaalses süsteemis, sest Ma pole isegi määranud Resource Governor klassifitseerimisfunktsiooni ja muudan vaikerühma. Kuid katsetamiseks ja mõistmiseks, kuidas kõik minu näites praegu konkreetselt töötab, piisab sellest. Seega piiran kõigi maksimaalse paralleelsuse astme 5 lõimega. Lubage mul teile meelde tuletada, et see valik Maksimaalne paralleelsuse aste, mida me varem vaatlesime, on endiselt seatud väärtusele 1. Kui nüüd vaadata oma esialgse päringu täitmisplaani, siis vaikimisi on see järjestikune ja valikuga maxdop 10 paralleelne. Aga kui teeme paralleelplaani, näeme midagi huvitavat.

Nüüd täidetakse meie taotlust ainult 5 lõimes, hoolimata asjaolust, et valik maxdop selle väärtus on 10. Ja kui määrate päringule suvandi maxdop 4, täidetakse see 4 lõimes (Ressursihalduri suvand on seatud väärtusele 5). Sel juhul vihje maxdop vähem kui Ressursihalduri säte, seega lisapiiranguid ei kehtestata. Ma ei too enam selle kohta näidet.

Seega on Resource Governor võimsam tööriist, mis tegelikult piirab päringute maksimaalset paralleelsusastet ja seda astet saab erinevate kasutajarühmade jaoks erinevalt määrata. Sel juhul valik Maksimaalne paralleelsuse aste jätkab endiselt tööd ja annab oma panuse (või ajab administraatorid, arendajad ja kasutajad veidi segadusse, kui töötab koos Resource Governoriga). Lisaks piirab nende kahe parameetri väärtuste seadmise võimalusi ainult teie kujutlusvõime, kuid on oluline meeles pidada ainult kahte asja: Maksimaalne paralleelsuse aste ja vihje maxdop päringu puhul mõjutab see, milline plaan luuakse, selle päringu jaoks võimalike lõimede maksimaalset arvu ja ressursihaldur piirab täitmise ajal ülevalt päringut veelgi.