Huvitavad asju maailma maailmast, juhiseid ja ülevaateid. Parallelmi max aste - valige optimaalne SQL väärtus paralleelsuse maksimaalne tase

Ei ole saladus, mis mõelda probleemidele konfigureerimise SQL Server, mis on seotud tulemuslikkuse suurendamisega, IT-eksperdid teevad enamik neist riistvara suurenemise kasuks. Aga kas see on alati õigustatud? Kas kõik on kasutatud serveri seadistamismeetodid? On teada, et konfiguratsiooniparameetritega töötamine ja nende vaikeväärtuste muutmine on võimeline parandama selle süsteemi jõudlust ja muid omadusi. Nende konfiguratsioonivõimaluste hulgas on SQL-konfiguratsioonil üks võimalus paljude küsimustega, see on võimalus - paralleelsuse max kraadi (DOP) - siin on see ja räägime sellest.

Maksimaalne paralleelsus (DOP) valik määrab lõimede arvu, mis SQL Server suudab taotlust hallata ja tähendab kasutatud serveri protsessorite arvu. Vaikimisi parameeter on 0 - maksimaalne paralleelsus. Näiteks, kui teil on 24 tuuma - siis väärtus "maksimaalne paralleelsuse kraadi" on võrdne 24 ja optimeerija, kui ta peab seda vajalikuks, saab kasutada kõiki töötlejaid täita ühe juhise, st päring tahe paralleelselt 24 vooge. Enamiku juhtumite puhul on see hea, kuid mitte kõigile. Samuti ei ole alati hea, kasutades selle vaikeparameetri väärtust. Selle parameetri konfigureerimine võib osutuda vajalikuks näiteks järgmistes olukordades: näiteks on meil rakendus, milles kõik töötajad teevad teavet igapäevase tegevuse kohta ja teatud aja jooksul täidab iga kasutaja tugineb taotlust Aruanne kõigi kasutajate operatsioonide kohta mõne aja möödumisel. Loomulikult, kui ajalõp on suur, täidetakse see päring pikka aega ja DOP-i installimisel võetakse kõik kättesaadavad töötlejad, mis mõjutavad loomulikult teiste kasutajate tegevust. Järelikult saame DOP-i väärtuse muutmine, me saame ilma päringu muutuseta suurendada SQL-serveri reaktsiooniaega teistele kasutajatele.
MS soovitab määrata väärtuse järgmiselt:

Parameetri seadistamine TSQL-i kogu Serverile:

Exec sp_configure "paralleelsuse max aste", 4; Ümberkonfigureerimine.

Selle väärtuse saab määrata ka konkreetse TSQL-i päringu jaoks:

Kasutage seiklusöid2008r2; Mine valige ProductID, Orderqty, Summa (Linetal) Kodumatud müük.Salesorderdetail, kus Unitrice< $5.00 GROUP BY ProductID, OrderQty ORDER BY ProductID, OrderQty OPTION (MAXDOP 2); GO

Selles näites muudab "vihje" Maxdop paralleelsuse maksimaalse kraadi vaikeväärtus 2. Vaadake praegust seadistust:

Exec sp_configure "Show arenenud", 1; Ümberkonfigureerimine; Exec sp_configure "paralleelsuse max kraadi"

Nüüd vaatame, kuidas see väärtus mõjutab päringu täitmise määra. Selleks, et katse päring, ülalpool kirjutatud, lisage sellele teine \u200b\u200bvalimine. Taotlus omandab järgmise vormi:

< $5.00) dt2 WHERE dt.UnitPrice < $5.00 GROUP BY dt.ProductID, dt.OrderQty ORDER BY dt.ProductID, dt.OrderQty

Minu testimismasinas kuvatakse väärtuse "maksimaalne paralleelsuse tase" 0. MSSQL-i käivitatakse masinaga 4-põhise protsessoriga. Ma tegin mitmeid eksperimente erinevate Maxdopi väärtustega: võrdne 1-ga - ilma päringu paralleerimiseta; võrdne 2-ga, kasutades ainult 2 südamikku; EQUAL 4 - Kasutades kõiki ja ilma vihjeta, et määrata võimalust, mis kasutab vaikimisi järge. Täitmise statistika saamiseks tuleb taotlus lisada valikuvõimaluse seadistuse statistika ajal ning võimaldada päringu plaani kuvamise nupu juhtimisstuudios. Saadavate tulemuste keskmistamisel tegin ma iga tsükli päringu 3 korda. Tulemusi saab näha allpool:

Valige DT.PRODOCTID, DT.ORDERQTY, SUM (DT.LINETOTAL) Kokku Sales.Salesorderdetail DT (valige * Sales.salesordetail, kus Unitrice< $5.00) dt2 WHERE dt.UnitPrice < $5.00 GROUP BY dt.ProductID, dt.OrderQty ORDER BY dt.ProductID, dt.OrderQty OPTION (MAXDOP 1); SQL Server Execution Times: CPU time = 45942 ms, elapsed time = 46118 ms. SQL Server Execution Times: CPU time = 45926 ms, elapsed time = 46006 ms. SQL Server Execution Times: CPU time = 45506 ms, elapsed time = 45653 ms.

Päringu osas on selge, et vihje installimisel (MAXDOP 1) viidi päring läbi ilma paralleerimiseta. Keskmine päringu täitmise aeg 45925,66 ms

Valige DT.PRODOCTID, DT.ORDERQTY, SUM (DT.LINETOTAL) Kokku Sales.Salesorderdetail DT (valige * Sales.salesordetail, kus Unitrice< $5.00) dt2 WHERE dt.UnitPrice < $5.00 GROUP BY dt.ProductID, dt.OrderQty ORDER BY dt.ProductID, dt.OrderQty OPTION (MAXDOP 2); SQL Server Execution Times: CPU time = 51684 ms, elapsed time = 28983 ms. SQL Server Execution Times: CPU time = 51060 ms, elapsed time = 26165 ms. SQL Server Execution Times: CPU time = 50903 ms, elapsed time = 26015 ms.

Vihje paigaldamisel (MAXDOP 2) viidi päring läbi paralleelselt 2 CPU-ga, seda võib näha päringu täitmise osas täitmise osas. Keskmine päringu täitmise aeg 27054,33 ms

Valige DT.PRODOCTID, DT.ORDERQTY, SUM (DT.LINETOTAL) Kokku Sales.Salesorderdetail DT (valige * Sales.salesordetail, kus Unitrice< $5.00) dt2 WHERE dt.UnitPrice < $5.00 GROUP BY dt.ProductID, dt.OrderQty ORDER BY dt.ProductID, dt.OrderQty OPTION (MAXDOP 4); SQL Server Execution Times: CPU time = 82275 ms, elapsed time = 23133 ms. SQL Server Execution Times: CPU time = 83788 ms, elapsed time = 23846 ms. SQL Server Execution Times: CPU time = 53571 ms, elapsed time = 27227 ms.

Vihje paigaldamisel (MaxDOP 4) viidi päring läbi paralleelselt 4 CPU-ga. Päringu keskmine täitmise aeg 24735.33 MS

Valige DT.PRODOCTID, DT.ORDERQTY, SUM (DT.LINETOTAL) Kokku Sales.Salesorderdetail DT (valige * Sales.salesordetail, kus Unitrice< $5.00) dt2 WHERE dt.UnitPrice < $5.00 GROUP BY dt.ProductID, dt.OrderQty ORDER BY dt.ProductID, dt.OrderQty SQL Server Execution Times: CPU time = 85816 ms, elapsed time = 23190 ms. SQL Server Execution Times: CPU time = 85800 ms, elapsed time = 23307 ms. SQL Server Execution Times: CPU time = 58515 ms, elapsed time = 26575 ms.

taotlus viidi läbi paralleelselt ja 4 CPU-s. Keskmine päringu aeg 24357,33MS

lingid: http://support.microsoft.com/kb/2023536

Eesmärk: Uurige SQL paralleelsuse mõju taotlusega 1c

Kirjandus:

Katsekeskkond:

· Windows Server 2008 R2 Enterprise

· MS SQL Server 2008 R2

· 1C Ettevõte 8.2.19.90

Joonis 1. SQL-i omadused "Üldine"


Joonis 2. SQL-i omadused "Adraged"

Instrumendid:

· SQL Server Profiler

· 1c nõuab konsooli

Testitaotlus:

Valima

AK. Nimi nime all

OF

Registreerimine. Surve klassifikaator AK

Sisemine ühendus Registreerimine. Rõhu klassifikaator AK1

Poolt ac.kod \u003d ak1.kod

Ettevalmistus:

Käivitame SQL Server Profiler, seadistame ühenduse, märkide ja veergude, nagu näidatud joonisel fig.


Joonis 3. Trace omadused

Paigaldage meie andmebaasi valik


Joonis 4. Baasfilter

Vähendamine:

· Max aste paralleelsuse - MDOP

· Paralleelsuse kosmosekünnis - maksumus

Järjestikuse päringukava katsetamine (MDOP \u003d 1)


Joonis 5. Taotluse konsooli - Performance Time 20 sek.

SQL Server "Parallelmi maksimaalne kraadi" server on seatud 1-le (ilma paralleelsuseta). Me vaatame Profiler'i tulemust (joonis 6)


Joonis 6. järjestikuse taotluse plaan

SQL Server on moodustanud järjestikuse päringuplaani, samas kui: kokkulaadimine CPU \u003d 6,750 (s) ja aja täitmise aeg \u003d 7,097 (d)

Paralleelse taotluse kava testimine (MDOP \u003d 0, kulu \u003d 5)

Ülekanne SQL server paralleelsuse režiimi (SQL päringus):

Kasutage kaptenit;

Exec Sp_configure "Näita täiustatud valikut", 1;

RECORFIGRUURE ALUSTREERIMISEGA.

Kasutage kaptenit;

exec sp_configure "paralleelsuse max aste", 0;

RECORFIGRUURE ALUSTREERIMISEGA.

Tehke sama päring (joonis 7)


Joonis 7. Konsooli taotlused - täitmise aeg 16 sek.

Kontrollige Profiler'i tulemust (joonis 8)


Joonis 8. Paralleelse taotluse plaan

SQL Server Seekord on moodustunud paralleelse päringu plaani, samas kui CPU \u003d 7,905 sekundit laadimine ja päringu kestus \u003d 3,458 sekundit

Järjestikuse päringukava testimine (MDOP \u003d 0, maksumus \u003d 150)

Püüame vabaneda paralleelsest plaanist, kasutades parameetrit "paralleelsuse kulukünnist". Vaikimisi on parameeter seatud 5. Meie juhtumi puhul oli paralleelse kava moodustamisest võimalik vabaneda 150-st (SQL-päringus):

Kasutage kaptenit;

exec Sp_configure "Paralleelsmi kulukünnise", 150 ;

Kontrollige päringu täitmist nendes tingimustes (joonis 9)

Joonis 9. Konsooli taotlused - täitmise aeg 20 sek.

Kontrollige profiilide tulemust (joonis 10)


Joonis 10. Järjestikuse taotluse plaan.

SQL Server on moodustanud järjestikuse päringuplaani. Kokku laadimine CPU \u003d 7,171 sekundit, päringu täitmise aeg \u003d 7, 864 sekundit.

Järeldused:

· Test päringu läbiviimine 1C ettevõtte keskkonnas SQL Serveri paralleelse planeerimise serveri abil annab olulise tulemuslikkuse võrreldes järjestikuse plaaniga (16 sekundit. 20 sekundi võrra - võidud 4 sek.)

· Tehke katsepäring SQL Serveri abil, kui kasutate paralleelset päringukava, võtab plaani kaks korda kiiremini kui järjestikuse päringukava kasutamisel (3,5 sekundit. 7,1 sek.)

· SQL Serveri paralleelsust ei saa reguleerida mitte ainult MDOP parameetri abil, vaid ka paralleelsuse parameetri "parameetri künnise"

  • Juhendaja

Käesolev juhend on mõeldud algajatele, kes otsivad lihtsat käsiraamatut vene paigaldamiseks ingliskeelne versioon SQL Server 2012, mida kasutatakse SharePoint 2013 jaoks.
See artikkel ei ole spetsialistide jaoks.

Kogu töö on jagatud kolmeks etapiks:

  • SQL Server 2012 installimine
  • Parallelmi serveri konfiguratsiooni seadistuse maksimaalne määramine
  • Õigus kontomõeldud SharePoint 2013 installimiseks
Ka artiklis kirjeldatakse protsessi microsofti installatsioonid.Net raamistik. 3.5 MS keskkonnas Windowsi server 2012 R2 Standart.

Tähelepanu: lõigatud paljude piltide all!

SQL Server 2012 installimine

1. Enne paigaldamist veenduge, et kõvakettal on piisavalt vaba ruumi (minu puhul kulus 2,7 GB).
Pärast jaotamise alustamist valige üksus " Paigaldus"Vasakul menüüs" Klõpsake "Oksjoni" Uus SQL Server iseseisva või olemasoleva paigaldamise funktsioonide lisamine":

2. Käivitage paigaldusviisard. See kontrollib. Võite klõpsata nupul "Näita üksikasju" ja vaata üksikasjalikku aruannet:

3. Üksikasjalik aruanne. Vajutage nuppu "OK":

4. Sisestage tootenumber ja vajutage nuppu "Järgmine":

5. Nõustuge litsentsilepingu tingimustega.
Selleks pange märkige " Ma nõustun litsentsitingimustega

6. Seadistamise rolli etapis valige esimene element " SQL Server funktsiooni paigaldamine". Vajutage nuppu" Järgmine ":

7. Samm "Feature valik" tähistage " Andmebaasi mootori teenused", "Juhtimisvahendid - Basic"Ja" Juhtimisvahendid - täielik". Seejärel vajutage nuppu" Järgmine ":

8. Seejärel käivitab paigaldaja teise kontrolli. Võite klõpsata nupul "Näita üksikasju" ja vaata üksikasjalikku aruannet:

9. Üksikasjalik aruanne. (Selles etapis oli mul viga "Microsoft .NET Frameworke 3.5 viga ..." reegel. Sellest allpool). Vajutage nuppu "Järgmine":

10. "Näiteks konfiguratsiooni" etapis peate konfigureerima SQL Server Service'i eksemplari.
Ma kordan, et see artikkel on mõeldud algajatele. Seetõttu eeldame, et SQL Server ei olnud teie serverisse installitud, mis tähendab, et jätate kõik vaikeseaded. Vajutage nuppu "Järgmine":

11. Selles etapis kuvab paigaldusviisard kettaruumi nõuded. Vajutage nuppu "Järgmine":

12. Serveri konfiguratsiooni etapis peate määrama teenuse domeeni konto " SQL Server andmebaasi mootor". Pärast" konto nime "ja" parooli "väljade täitmist vajutage nuppu" Järgmine "nupp:

13. "andmebaasi mootori konfiguratsiooni" etapis piisab praeguse kasutaja lisamiseks SQL Serveri administraatoritele. Selleks klõpsake nuppu "Lisa praegune kasutaja", seejärel klõpsake nupul "Järgmine":

14. Järgmises etapis vajutage nuppu "Järgmine":

15. Seejärel käivitatakse paigaldusviisard uuesti kontrolli ja kuvab selle tulemused. Vajutage nuppu "Järgmine":

16. etapis "installimiseks valmis" kuvab viisard kokkuvõtlikku teavet. Siin peate klõpsake nuppu "Install":

17. Pärast paigaldamise lõpetamist kuvatakse teave genereeritud toimingute kohta:

18. Arvuti taaskäivitamiseks selles etapis Intjobleble. Mõnel juhul (näiteks Microsoft Frameworgi 3.5) installimisel kuvatakse paigaldusviisard ise aken ettepanekuga arvuti taaskäivitamiseks. Ärge keelduge.

Parallelmi serveri konfiguratsiooni seadistuse maksimaalne määramine

Vaikimisi väärtus "Max kraadi paralleelsuse" parameeter 0.
SharePoint 2013 nõuab, et see parameeter oleks võrdne 1-ga.
See on lihtne parandada!

1. Käivitage Microsoft SQL Server Management Studio (Start - kõik programmid - Microsoft SQL Server 2012 - SQL Server Management Studio).

2. Serveri ühenduse ekraanil klõpsake nuppu "Connect".

3. Paremklõpsake aknas serveris " Objekti Explorer."Ja valige" Omadused.":

4. Serveri omaduste aknas, mis avaneb vasakul menüüs, valige Lehekülg " Arenenud"Ja tehke ekraani allosas olevate omaduste loend. Määrake parameetri väärtus Paralleelsuse max aste"sisse 1 ja klõpsake "OK":

5. Ärge sulgege SQL Server Management Studio, see on mugav.

SharePoint 2013 seadistamise konto õiguste seadmine

Konto, mille nimel SharePoint 2013 paigaldamine 2013 peab olema suurenenud õigused SQL Serveris.
See konto on soovitatav anda järgmised rollid:
  • dbcreator
  • securityAdmin.
  • avalik
1. SQL Server Management Studio aknas " Objekti Explorer."Laienda üksus" Julgeolek". Siis paremklõpsake punktile" Sisselogimised."Ja valige" Uus sisselogimine.":

2. Sisestage väljale "Logi sisse nimi" domeeninimi Konto, millest kavatsete SharePoint 2013 installida ja konfigureerida.

3. Vasakul menüüs valige leht " Server rollid."Ja kontrollige" DBCreatiori "ja" Securtaldmin "rolli ning veenduge ka, et" avalik "roll on juba märgitud. Seejärel klõpsake" OK ":

Nüüd SQL Server on valmis paigaldamiseks SharePoint 2013.

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

Punktis 9 punkti 9 SQL Server 2012 installimine"Mul oli viga: see ei olnud installitud .NET Framework 3.5.
Selle probleemi lahendamiseks tuleb läbi viia järgmised sammud:

1. Peate avama konsooli " Serveri juht.".

2. Valige vasakul menüüs "Juhtpaneel" üksus.

3. Klõpsake akna keskel nuppu "Lisa rollid ja funktsioonid".

4. Masteris, mis avaneb, vahele "enne alustamist".

5. Valige "Paigaldusliik", valige üksus " Rollipõhine või funktsioonipõhine paigaldus". Vajutage nuppu" Järgmine ".

6. Järgmises etapis jäta kõik vaikimisi ja vajutage nuppu "Järgmine".

7. Jäta sammu "serveri rollid", klõpsates nuppu "Järgmine".

8. Samm "Omadused" tähistame märkeruut "NNET Framework 3.5. Vajutage nuppu "Järgmine".

9. Pärast installiprotsessi lõpetamist saate sulgeda "Lisa rollid ja funktsioonid Wizard" Wizard.

10. Valmis!

Kõik head ja rahumeelne taevas pea kohal!

P.S. Õnnelik kosmonaatika päev!

Max paralleelsuse kraadi (DOP) - Täiendav SQL Server konfiguratsiooni valik, mis on seotud paljude küsimustega ja mis on pühendatud paljudele väljaannetele. Selles oma blogi artiklis loodab autori teha veidi selguse, et see võimalus teeb ja kuidas seda kasutada.
Esiteks soovib autor hajutada kahtlusi selle kohta, et määratud valik määrab, kui palju töötlejaid saab kasutada SQL Serverit mitme ühenduste (või kasutajate) teenindamisel - see ei ole nii! Kui SQL Serveril on juurdepääs neljale mitteaktiivsele protsessorile ja see on konfigureeritud kasutama kõiki nelja töötlejat, kasutab ta kõiki nelja töötlejat, olenemata maksimaalsest paralleelsusest.
Mida see valik annab? See valik seab maksimaalse arvu protsessorite arvu, mida SQL Server saab ühe taotluse jaoks kasutada. Kui taotlus SQL Server peab tagastama suur hulk Andmed (paljud kirjed), see on mõnikord mõtet paralleelseks, purustades mitmeks väikesteks taotlusteks, millest igaüks tagastab oma ridade alamhulga. Seega SQL Server saab kasutada mitut töötlejat ja seega ka multiprocessor süsteemid, suur hulk andmeid kogu päringu võib potentsiaalselt tagastada kiiremini kui ühe protsessorisüsteemi.
On palju kriteeriume, mida tuleb arvesse võtta enne SQL Server käivitab "Intra päringu paralleelsus" (mitme voogude taotluse rikkumine) ja siin ei ole ühtegi punkti. Neid saab leida BOLis, otsides fraasi "paralleelsuse kraadi". Ta ütleb, et paralleelise otsus põhineb mäluprotsessori kättesaadavusel ja eriti protsessorite kättesaadavusest ise.
Niisiis, miks me peame mõtlema selle valiku kasutamise kaudu - sest jättes selle vaikeväärtuseks (SQL Server ise otsustab paralleelselt), mõnikord saad soovimatu mõju. Need mõjud näevad välja sellised:

    Paralleelsed taotlused on aeglasemad.

    Täitmise aeg taotluste võib muutuda mitte-deterministlik ja see võib ebaregulaarne kasutajatele. Täitmise aeg võib muutuda, sest:

      Taotlus võib mõnikord paralleelselt paralleelselt ja mõnikord mitte.

      Taotluse võib blokeerida paralleelse taotluse korral, kui töötlejad on enne seda ülekoormatud.

Enne jätkamist, autor soovib märgata, et ei ole erilist vajadust sukelduda sisemise korra paralleelsuse. Kui olete sellest huvitatud, saate lugeda artikli "paralleelse päringu töötlemise" raamatud liinil, kus see teave on üksikasjalikumalt kirjeldatud. Autor usub, et seal on ainult kaks olulist asja, mida peaksite teadma paralleelsuse sisemise korralduse kohta:

    Paralleelsed taotlused võivad tekitada rohkem teemasid kui paralleelsuse max aste "valik. DOP 4 võib tekitada rohkem kaksteist lõnga, neli taotlus ja täiendavaid oja, mida kasutatakse sorteerimiseks, ojadeks, üksusteks ja komplektideks jne.

    Taotluste paralleerimine võib tekitada erinevaid spide, et oodata ooteliigi CXPacket'i või 0x0200-ga. Seda saab kasutada nende spidide leidmiseks, mis on ooterežiimis, kui paralleelsed toimingud ja neil on Sysprocesses Waittype: cxpacket. Selle ülesande hõlbustamiseks pakub autor tema blogis salvestatud protseduuri kasutamiseks: track_waitstats.

Ja nii "taotlust saab läbi viia aeglasemalt kui paralleelselt" miks?

    Kui süsteem on väga nõrk ribalaius Disk Allsüsteemid, seejärel taotluse analüüsimisel, võib selle lagunemist läbi viia kauem kui ilma paralleelsuseta.

    Võimalikud andmeplokid või blokeerivad andmevahemikud töötlejale, mida kasutati paralleelselt ja käivitati hiljem protsessi jne.

    Kui predikaadi indeksit ei ole, mis toob kaasa tabeli skaneerimiseni. Taotluse paralleelne operatsioon võib varjata asjaolu, et taotlus oleks lõpetanud palju kiiremini järjepideva täitmise kava ja õige indeksiga.

Kõigist sellest tuleneb soovitus, et kontrollida päringu täitmist ilma paralleelsuseta (DOP \u003d 1), aitab see tuvastada võimalikke probleeme.
Paralleelsuse ülalnimetatud mõjud peaksid ise tooma, et taotluste paralleelse mehhanismi sisemine mehaanika ei sobi kasutamiseks OLTP-rakendustes. Need on sellised rakendused, mille jaoks teostamisaja muutus võib ärritada kasutajaid ja mille jaoks server üheaegselt teenindavad paljusid kasutajaid, kes on ebatõenäoline, et valida töötleja töökoormuse profiili nende rakenduste paralleelse täitmise kava.
Seetõttu, kui te kavatsete kasutada paralleelsust, siis tõenäoliselt on vaja andmete kaevandamise ülesannete (andmehoidla), otsuste tegemise või aruandlussüsteemide toetamine, kus ei ole palju taotlusi, kuid need on rasked ja teostatud Võimas server, millel on suur maht operatiivmälu.
Kui otsustate kasutada paralleelsust, siis millist väärtust tuleks DOP-i jaoks paigaldada? Selle mehhanismi hea tava on see, et kui teil on 8 töötlejat, installige DOP \u003d 4 ja see suure tõenäosusega on optimaalne paigaldus. Siiski ei ole mingit garantiid, mida ta toimiks. Ainus viis veendumaks, et see on DOP-i erinevate väärtuste testimine. Lisaks sellele, et autor tahtis pakkuda oma, tuginedes empiiriliste tähelepanekute nõukogu ei ole kunagi seadnud seda numbrit üle poole protsessorite arv, mis on laos. Kui autoril oli töötlejad vähem kui kuus, seaks see DOP 1-le, mis lihtsalt keelab paralleelselt. Ta võiks teha erandi, kui oli andmebaas, mis toetab ainult ühe kasutaja protsessi (mõned andmed kaevandamise tehnoloogiad või aruandlusülesanded), antud juhul, erandkorras, on võimalik installida DOP 0 (vaikeväärtus) Võimaldab SQL Server teha otsuse vajadust paralleelselt päringu.
Enne artikli lõpuleviimist tahtis autor hoiatada teid asjaolu pärast, et indeksite paralleelne loomine sõltub DOP-i installitud arvust. See tähendab, et te võiksite seda muuta indeksite loomise või ümberkujundamise ajal selle toimingu tulemuslikkuse suurendamiseks, ja muidugi saate kasutada Maxdopi vihje päringut, mis võimaldab teil ignoreerida väärtust Konfiguratsiooni ja seda saab kasutada minimaalse koormuse kella korral.
Lõpuks võib teie taotlus vigade tõttu paralleelselt aeglustada, seega veenduge, et viimane teenusepakett on teie serverisse installitud.

Loo proc track_waitstats (@num_samples int \u003d 10 , @ Deatnum Int \u003d 1 @ DEYTTYPE NVARCHAR ( 10 ) \u003d "Minutit") AS - T. Davidson - See salvestatud protseduur on esitatud \u003d AS on \u003d ilma garantiideta, - ja annab õigusi. - kasutatud skripti proovide kasutamine sõltub tingimustest - täpsustatud aadressil http://www.microsoft.com/info/cpüright.htm - @num_samples on kordite arv, mis jäädvustada Waitstats, - Vaikimisi on 10 korda. Vaikimisi viivitamise intervall on 1 minut - Viivituskumm on viivitusintervall. Viivitamise määrab, kas - viivitusintervall on minutit või sekundid - Loo Waitstats tabel, kui seda ei eksisteeri, vastasel juhul kärpida Set NOCOUNT ONE kui ei ole olemas (valige 1 SysObjectsist, kus nimi \u003d "Waitstats") Loo tabeli Waitstats (VARCHAR ( 80 ), Nõuab numbrilist ( 20 ,1 ) Numbriline ( 20 ,1 ) Numbriline ( 20 ,1 ) Nüüd DateTime Default Getate ()) Ekst Truncate Tabeli Waitstats DBCC SQLerf (Waitstats, Selge) - Kustuta Waitstats deklareerige @I Int, @ Viivitava varkari ( 8 ), @ Dt varchar ( 3 ), @ Nüüd DateTime, @ TotalWAIT numbriline ( 20 ,1 ), @ Endtime DateTime, @ kerjama DateTime, @ Hr Int, @ Min Int, @ SEC INT valige @i \u003d 1 Valige @dt \u003d juhul madalam (@delaytype), kui "minutit" siis "m", kui "minut" siis "m", kui "min" siis "m", kui "m", kui "mm", kui "m" siis "m", kui "m" siis "m", kui "m" siis "m", kui "m", kui "m" siis "m", kui "m" siis "m" Kui "m" siis "m", kui "sekundid" siis "s", kui "teine" siis "s", kui "s" siis "s", kui "s" siis "s", kui "s" siis "s" siis Viivitamise lõpp, kui @dt ei ole ("S", "m") "Palun esitage viivitus tüüp, nt. Sekundid või minutid" Tagasi lõpetamine Kui @DT \u003d "S" alustada valige @sec \u003d @ deutnum% 60 Valige @min \u003d valatud ((@delaynum / 60 ) Int) valige @hr \u003d valatud ((@min / 60 ) AS INT) valige @min \u003d @ min% 60 Lõpeta, kui @dt \u003d "m" alustada valige @sec \u003d 0 Valige @min \u003d @ Deatnum% 60 Valige @hr \u003d valatud ((@delaynum / 60 ) Int) End Vali @Delay \u003d paremale ("0" + Convert (Varchar ( 2 ), @ Hr), 2 2 ), @ min), 2 ) + ":" + + Paremal ("0" + teisendamine (VARCHAR ( 2 ), @ Sek), 2 ) Kui @HR\u003e 23 või @min\u003e 59 või @sec\u003e 59 Alustage valiku. "HH: mm: SS viivitusaeg ei saa\u003e 23:59:59" Valige "Viivituse intervall ja tüüp:" + Teisenda (VARCHAR ( 10 ), @ Deletenum) + "," + @delaytype + "Konverteerib" + @Delay tagastamise lõpuni (@i<= @num_samples) begin insert into waitstats (, requests, ,) exec ("dbcc sqlperf(waitstats)" ) select @i = @i + 1 Oodake viivituse @Delay Lõpeta --- Loo Waitstats aruande täita get_waitstats --//--//--//--//--//--//--//--//--//-//--//--//--//--//--//--//--//--/ Loo proc get_waitstats nagu - See salvestatud protseduur on esitatud \u003d AS on \u003d ilma garantiideta ja - Pole õigusi. - kasutatud skripti proovide kasutamine on määratud tingimustel - aadressil http://www.microsoft.com/info/cpüright.htm. -- - See Proc loob Waitstats Report Location Oota tüübid - protsent - saab käivitada, kui Track_waitstats on täitmise Set NOCOUNT deklareerida @now datetime, @ TotalWait numbriline ( 20 ,1 ), @ Endtime DateTime, @ Abjant DateTime, @ HR INT, @ SEC INT valige @ wolk \u003d max (nüüd), @ kerkiva \u003d min (nüüd), @ endiku \u003d max (nüüd) alates Waitstatsist, kus \u003d " Kokku " --- lahutage jaotises, une ja ressurss_queue kogu Valige @totalwait \u003d summa () + 1 Waitstatsist, kus mitte ("Oodavad", "Sleep", "Resource_Que", "Kokku", "*** Kokku ***") ja nüüd \u003d @Now - sisestada korrigeeritud kogusummad, auaste protsentides Kustuta Waitstats Kus \u003d "*** Kokku ***" ja nüüd \u003d @now sisestamine Waitstats valimiseks "*** Kokku ***", 0 , @ TotalWAIT, @ TotalWAIT, @ Nüüd valige ,, protsent \u003d valatud ( 100 * / @ Totalwait numbriline ( 20 ,1 )) Waitstaatsist, kus mitte ("Oodavad", "Sleep", "Resource_Que", "Kokku") ja nüüd \u003d @Now tellimus protsentides

Selles postituses räägime ainult pr SQL Serverist. Kui te lähete "proovida õnne" kasutada 1c Oracle, DB2, Posttrgre teile see teave on kasutu. Aga sa pead aru saama, et 1C-s on pr SQL Serveris peamiselt eksperte. DB2 eksperdid ilmuvad IBM-i jõupingutusi. Võite väita hea või halb pikka aega, see DBMS on oluline, üks, kõige Smooth "1C töötab MS SQL Server. Otsustades viimaseid sõnumeid "ees" rohkem või vähem korraliku tööga DB2-ga. Kuigi mul isiklikult oli kogemus 1C seadistamise kogemus DB2-ga töötamiseks Veel 8.1 - kõik oli kuidagi mitte väga. Igal juhul tuleks teise DBMSi valik selgelt põhjendatud - kas võimalused, mis ei ole pr SQL-is (klastri koormuse tasakaalustamisega, jne) või rahandus (Oracle juba ostetud) või platvormi (kõik Linuxis) .

Nii et selleks, mida vajate pr SQL Serveriga:

1) Konfigureerige minimaalne ja maksimaalne mälu kogus. Minimaalne on pool süsteemi mälu. Maksimaalne mälusüsteem ilma 2GB-ga. Seda tehakse juhtimise stuudio kaudu - serveri omadustes:

2) Kui prioriteet ei ole vahekaardile protsessorisse installitud - peate installima

3) paralleelsuse maksimaalne tase 1.

4) Kaasa SQL Server Agent, kohandage andmebaasi posti - seal pole midagi raske, ma ei kirjelda üksikasjalikult.

5) Teenuste plaanide kohandamine:
Üldine:
a) Uuenda statistika - iga 2 tunni järel
b) dbcc freeproccache - iga 2 tunni järel
Iga andmebaasi puhul:
a) täielik varukoopia
b) erinevus varukoopia
c) indeksite defragmentimine - iga päev
d) Perestroika indeksid - öösel nädalavahetustel
e) baasi terviklikkuse kontrollimine - kord kuus öösel nädalavahetusel

6) Soovitan installida taastamismudel iga andmebaasi (omaduste) nii lihtne. Kui teil ei ole 24/7 süsteemi ja vähem kui 1000 kasutajat baasi, ei ole viga-tolerantne klastri ja te ei allkirjasta SLA, kus me eeldame, kui väljumise mis tahes seadmete taastada andmeid üles Teiseks (mitte pärast viimast varukoopiat) on see soovitus mõistlik. Vastasel juhul te väga peagi pikka aega ja krambuliselt peegeldades kuhu minna tranzaction logi

7) Eemaldage Tempdb andmebaas tavalistest andmebaasidest teise kettale - isegi kui teil on RAID-massiivi ümberkonfigureerimine ja selle jõudluse vähendamine. Vastasel juhul saab 1 kasutaja igaühe töö halvata. Kui teil on kõvaketta asemel riistvara kiirendaja, siis loomulikult ei saa te seda eraldada ja panna, kuid see on ainult siis, kui on olemas

8) Seadistage seirevahendid - näiteks mulle meeldib Spotlight http://www.quest.com/spotlight-on-sql-servver-enterprise/

9) Kontrollige ennast Microsoft Best Practice Analiseri - http://www.microsoft.com/download/en/details.aspx?id\u003d15289 - suurepärane vahend, mis aitab mitte ainult seadete, vaid ka paljude probleemide lahendamisega.

Nüüd lühidalt selle eest, mida me kõik teeme:

1) Mälu. Minimaalne väärtus salvestab lihtsalt "Glitches", kui SQL Server mõne muu tuntud põhjuste puhul ei kasutata kõiki mälu selle mälu. Peab süüa kõik! Maksimaalne väärtus säästab SWAP-i, kui SQL Serveri mälu optimeerija sama optimeerija otsustab, et ta talle veel haiget teeb.

3) Väga oluline punkt - IMMo tuleb panna 1. kõikides tehingusüsteemidesse. Esiteks takistab see osa erinevate protsesside vahelistest lukkudest, kes püüavad vastavalt täita 1 taotlust, see kaitseb meid mõnede imelike vigade eest. Teiseks ... 1 "tappa" taotlus saab välja tõmmata kõik serveriressursid, mis on mõnevõrra mitte tõsi seoses ülejäänud süsteemi kasutajatele. Parameeter määrab kindlaks, kas 1 taotlust saab töödelda nii palju protsessori südamikke.

5) Menetlusliku vahemälu statistika ja puhastamise kohta - see on "kohtuistungil" ja siin me unustame sageli reyndexi ümber. Vahepeal see protseduur on üsna oluline, eriti suurenenud maht baasi, selle tähtsust suureneb. Mõnikord on indeksi killustatus kadunud kuni 60% tulemustest.

7) Kui on olemas riistvara kiirendaja või lihtsalt 2 erineva juurdepääsu kiirusega kettaid, mõtleksin ma andmebaaside esiletõstetud failrühmade esiletõstmise ja üksikute tabelite jagamise erinevatele ketta massiividele. Lõppude lõpuks olete nõus, pH "kaubad ladudes" ja viide raamat "täiendava teabe säilitamise" 2 objekti nõue, mis on juurdunud. See ei ole vaja salvestada kõiki faile ja pilte kiire massiivi andmebaasi - saate valida selle eraldi, mitte nii kiiresti, kuid kus on palju kohti (ja ei karda kamp faile alla laadida tee).