Na zaujímavých veciach zo sveta, pokynov a recenzií. Maximálny stupeň paralely - vyberte optimálnu hodnotu SQL hodnoty Maximálny stupeň paralelnosti

Nie je tajomstvo, že premýšľanie o problémoch konfigurácie SQL Server spojeného s nárastom výkonu, expertov väčšina z nich si vyberú v prospech nárastu hardvéru. Ale je to vždy odôvodnené? Je už použité všetky metódy nastavenia servera? Je známe, že práca s konfiguračnými parametrami a zmena ich predvolených hodnôt je schopný zlepšiť výkonnosť a iné charakteristiky tohto systému. Medzi tieto možnosti konfigurácie má konfigurácia SQL jednu možnosť s množstvom otázok, toto je možnosť - maximálny stupeň paralely (DOP) - Tu je o tom a poďme o tom hovoriť.

Maximálny stupeň paralelnosti (DOP) Určuje počet vlákien, ktoré SQL Server môže žiadosť porovnávať a znamená počet použitých serverových procesorov. Predvolený parameter je 0 - maximálny stupeň paralelnosti. Napríklad, ak máte 24 jadier - potom hodnota "Maximálna stupeň paralely" bude rovná 24 a optimalizátor, ak to považuje za potrebné, môže použiť všetky spracovatelia na vykonanie jednej inštrukcie, to znamená, že dotaz bude byť paralelne 24 prúdmi. Pre väčšinu prípadov je to dobré, ale nie pre každého. Tiež nie vždy dobré, pomocou hodnoty tohto predvoleného parametra. Možno bude potrebné konfigurácia tohto parametra, napríklad v nasledujúcej situácii: napríklad máme aplikáciu, v ktorej všetci zamestnanci spĺňajú informácie o každodenných operáciách, a v určitom časovom období každá užívateľ vykoná požiadavku, ktorá vychádza Správa o všetkých operáciách používateľa pre určitý čas. Prirodzene, ak je časová medzera veľká, tento dotaz bude vykonaný dlhý čas a pri inštalácii DOP štandardne bude mať všetky dostupné spracovatelia, ktoré prirodzene ovplyvnia prevádzku iných používateľov. Z toho vyplýva, zmeníme hodnotu DOP, môžeme bez zmeny v samotnom dopyte zvýšiť čas odozvy servera SQL od iných používateľov.
MS odporúča nastaviť hodnotu nasledovne:

Nastavenie parametra na TSQL CELL pre server:

Exec Sp_configure "Maximálny stupeň paralelizmu", 4; Rekonfigura.

Túto hodnotu môžete tiež nastaviť pre konkrétny dotaz TSQL:

Použite AdventureWorks2008R2; Go Select ProductId, OrderQTY, SUMA (LineTeal) as TotalFrom Sales.SalesorderDetail, kde jednotka< $5.00 GROUP BY ProductID, OrderQty ORDER BY ProductID, OrderQty OPTION (MAXDOP 2); GO

V tomto príklade "Tip" MaxDop zmení predvolenú hodnotu maximálneho stupňa paralelného parametra na 2. Zobrazenie aktuálneho nastavenia môže byť:

Exec Sp_configure "Zobraziť pokročilé", 1; Rekonfigura; Exec sp_configure "Maximálny stupeň paralelizmu"

Pozrime sa teraz, ako je táto hodnota ovplyvnená rýchlosťou plnenia dotazu. Na to, aby sa testovací dotaz, napísaný vyššie, už dlhší čas pridajte ďalší výber. Žiadosť nadobudne tento formulár:

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

Na mojom testovacom stroji sa v hodnotách "Maximálny stupeň paralelnosti" zobrazí v 0. MSSQL sa spúšťa stroj s 4-jadrovým procesorom. Uskutočnil som sériu experimentov s rôznymi hodnotami MaxDOP: rovné 1 - bez paralenia dotazu; rovné 2 - s použitím iba 2 jadier; Rovnaká 4 - Použitie všetkých a bez toho, aby ste určili možnosť, ktorá používa predvolené pokračovanie. Na získanie štatistiky o vykonanie musí byť žiadosť zahrnutá do režimu Nastavená štatistika na voľbu, rovnako ako umožniť zobrazenie dotazového plánu v Management Studio. Na spriemerovanie získaných výsledkov som vykonal každý dotaz v cykle 3 krát. Výsledky možno vidieť nižšie:

Vyberte DT.PRODUCTId, DT.ireqty, Sum (DT.LineTotal) As Celkom od Sales.SalesorderDetail DT, (vyberte * z predaja.< $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.

Z hľadiska dotazu je zrejmé, že pri inštalácii nápovedu (MaxDop 1) sa dotaz uskutočnil bez paralelenia. Priemerný čas realizácie dotazu 45925.66 MS

Vyberte DT.PRODUCTId, DT.ireqty, Sum (DT.LineTotal) As Celkom od Sales.SalesorderDetail DT, (vyberte * z predaja.< $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.

Pri inštalácii nápovedu (MaxDOP 2) bol dotaz vykonaný paralelne s 2 CPU, možno ho vidieť na počte vykonania z hľadiska vykonávania dotazu. Priemerný čas realizácie dotazu 27054.33 MS

Vyberte DT.PRODUCTId, DT.ireqty, Sum (DT.LineTotal) As Celkom od Sales.SalesorderDetail DT, (vyberte * z predaja.< $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.

Pri inštalácii nápovedu (MaxDOP 4) sa dotaz uskutočnil paralelne s 4 CPU. Priemerný čas realizácie dotazu 24735.33 MS

Vyberte DT.PRODUCTId, DT.ireqty, Sum (DT.LineTotal) As Celkom od Sales.SalesorderDetail DT, (vyberte * z predaja.< $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.

Žiadosť bola vykonaná paralelne, ako aj 4 CPU. Priemerný čas dotazu 24357.33ms

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

Účel: Skontrolujte účinok paralelizmu SQL s požiadavkami 1c

Literatúra:

Testovacie prostredie:

· Windows Server 2008 R2 Enterprise

· MS SQL Server 2008 R2

· 1C Podnik 8.2.19.90

Obrázok 1. SQL vlastnosti "Všeobecné"


Obrázok 2. SQL VLASTNOSTI "PROPUSED"

Nástroje:

· SQL Server Profiler

· 1C požiada o konzolu

Žiadosť o test:

Vyberať

AK. Meno ako meno

Z

Registrácia. Tlakové klasifikátor ako AK

Interné pripojenie Registrácia. Tlakové klasifikátor ako AK1

AC.KOD \u003d AK1.KOD

Príprava:

Spustíme SQL Server Profiler, nastavujeme pripojenie, označte udalosti a stĺpce, ako je znázornené na obrázku 3.


Obrázok 3. Sledovacie vlastnosti

Nainštalujte výber pre našu databázu


Obrázok 4. Základný filter

ZNÍŽENIE:

· Maximálny stupeň paralely - MDOP

· Prahová hodnota SOST pre paralelnosť - náklady

Testovanie plánu sekvenčného požiadaviek (MDOP \u003d 1)


Obrázok 5. Žiadosť o konzolu - čas výkonu 20 sekúnd.

Server SQL Server "Maximálny stupeň paralelizmu" je nastavený na 1 (bez paralelizmu). Pozeráme sa na výsledok v profile (Obr.6)


Obrázok 6. Plán sekvenčného požiadavky

SQL Server vytvoril plán sekvenčnej požiadavky, zatiaľ čo: celkové zaťaženie CPU \u003d 6,750 (S) a čas na vykonanie dotazu \u003d 7,097 (s)

Testovanie plánu paralelných žiadostí (MDOP \u003d 0, COST \u003d 5)

Prenos SQL Server do režimu paralelnosti (v dotaze SQL):

Používať majster;

Exec Sp_configure "Zobraziť pokročilú možnosť", 1;

Prekonfigurovať s prepísaním.

Používať majster;

exec Sp_configure "Maximálny stupeň paralelizmu", 0;

Prekonfigurovať s prepísaním.

Vykonajte rovnaký dotaz (obrázok 7)


Obrázok 7. Žiadosti konzoly - čas vykonávania 16 sek.

Skontrolujte výsledok v profile (obrázok 8)


Obrázok 8. Plán paralelných požiadaviek

SQL Server tentoraz vytvoril paralelný plán dotazov, pričom celkové zaťaženie CPU \u003d 7,905 sekúnd a trvanie dotazu \u003d 3,458 sekúnd

Testovanie plánu sekvenčného požiadavky (MDOP \u003d 0, COST \u003d 150)

Budeme sa snažiť zbaviť paralelného plánu pomocou parametra "nákladovú prahovú hodnotu pre paralelu. V predvolenom nastavení je parameter nastavený na 5. V našom prípade, z tvorby paralelného plánu bolo možné zbaviť sa 150 (v sql dotaz):

Používať majster;

exec Sp_configure. "Nákladová prahová hodnota pre paralelsm", 150 ;

Skontrolujte vykonanie dotazu v týchto podmienkach (obr. 9)

Obrázok 9. Žiadosti konzoly - čas vykonávania 20 sekúnd.

Skontrolujte výsledok v profile (obr. 10)


Obrázok 10. Plán sekvenčného požiadavky.

SQL Server vytvoril plán sekvenčnej požiadavky. Celkové načítanie CPU \u003d 7,171 sekúnd, čas spustenia dotazu \u003d 7, 864 sekúnd.

Závery:

· Vykonávanie testovacieho dotazu v Enterprise Enterprise Enterprise pomocou servera SQL Server Paralelný plán Server poskytuje významný zisk výkonnosti v porovnaní so sekvenčným plánom (16 sekúnd - výhry 4 sekundy.)

· Vykonajte testovací dotaz SQL serverom pri použití rovnobežného plánu požiadaviek trvá dvakrát rýchlejšie ako pri používaní plánu sekvenčného požiadavky (3,5 sek. Proti 7,1 sek.)

· Parabilnosť SQL Server nie je možné nastaviť nielen pomocou parametra MDOP, ale aj parameter "Nákladová prahová hodnota pre paralelu"

  • Návod

Táto príručka je určená pre začiatočníkov, ktorí hľadajú jednoduchý manuál v ruštine pre inštaláciu anglická verzia SQL Server 2012, ktorý sa použije na používanie na SharePoint 2013.
Tento článok nie je pre profesionálov.

Všetky práce sú rozdelené do 3 etáp:

  • Inštalácia SQL Server 2012
  • Nastavenie maximálneho stupňa nastavenia konfigurácie servera paralelizmu
  • Nastavenie správneho ÚčetNavrhnuté na inštaláciu SharePoint 2013
Aj v článku popisuje proces inštalácie spoločnosti Microsoft.Internetová sieť. 3,5 v prostredí MS Windows Server 2012 R2 štandard.

POZOR: Pod rezom mnoho obrázkov!

Inštalácia SQL Server 2012

1. Pred inštaláciou sa uistite, že na pevnom disku je dostatok voľného miesta (v mojom prípade to trvalo 2,7 GB).
Po spustení distribúcie vyberte položku " Inštalácia"V ľavom menu potom" kliknite na položku " Nový SQL Server Samostatný samostatný alebo pridajte funkcie do existujúcej inštalácie":

2. Spustite sprievodcu inštaláciou. Skontroluje. Môžete kliknúť na tlačidlo "Zobraziť podrobnosti" a pozrite si podrobnú správu:

3. Podrobná správa. Stlačte tlačidlo "OK":

4. Zadajte produktový kľúč a stlačte tlačidlo "Ďalej":

5. Dohodnite sa s podmienkami licenčnej zmluvy.
Ak to chcete urobiť, položte Tick " Súhlasím s licenčnými podmienkami

6. V kroku nastavenia vyberte prvú položku " Inštalácia funkcie SQL Server". Stlačte tlačidlo" Ďalej ":

7. V kroku "Výber funkcie" oslavuje " Služby databázových motorov.", "Nástroje na správu - základné"A" Nástroje na správu - KompletnéPotom stlačte tlačidlo "Ďalej":

8. Potom inštalátor vykoná ďalšiu kontrolu. Môžete kliknúť na tlačidlo "Zobraziť podrobnosti" a pozrite si podrobnú správu:

9. Podrobná správa. (V tomto štádiu som mal chybu v "Microsoft .NET Framework 3.5 je nainštalovaný ..." Pravidlo. Stlačte tlačidlo "ĎALŠIE":

10. V kroku "Konfigurácia inštancie" musíte nakonfigurovať inštanciu servera SQL Server.
Opakujem, že tento článok je určený pre začiatočníkov. Preto predpokladáme, že SQL Server nebol nainštalovaný na vašom serveri, čo znamená, že opustíte všetky predvolené nastavenia. Stlačte tlačidlo "ĎALŠIE":

11. V tomto kroku sa Sprievodca inštaláciou zobrazí požiadavky na miesto na disku. Stlačte tlačidlo "ĎALŠIE":

12. V kroku konfigurácie servera musíte zadať účet domény pre službu " Databázový motor SQL Server". Po vyplnení polí" Názov účtu "a" Heslo "stlačte tlačidlo" Ďalej ":

13. V kroku "Konfigurácia databázového motora" stačí pridať aktuálneho používateľa na administrátorov SQL Server. Kliknite na tlačidlo "Pridať aktuálne používateľ", potom kliknite na tlačidlo "Ďalej":

14. V ďalšom kroku stlačte tlačidlo "Ďalej":

15. Ďalej, Sprievodca inštaláciou opäť vykoná kontrolu a zobrazí svoje výsledky. Stlačte tlačidlo "ĎALŠIE":

16. V kroku "pripravený na inštaláciu" sa sprievodca zobrazí súhrnné informácie. Tu musíte kliknúť na tlačidlo "Inštalovať":

17. Po dokončení inštalácie sa zobrazia informácie o vytvorenom operáciách:

18. V tomto štádiu na reštartovanie počítača. V niektorých prípadoch (napríklad pri inštalácii programu Microsoft .NET Framework 3.5), samotný sprievodca inštaláciou zobrazí okno s návrhom na reštartovanie počítača. Neodmietajte.

Nastavenie maximálneho stupňa nastavenia konfigurácie servera paralelizmu

V predvolenom nastavení je hodnota parametra "Maximálna stupňa paralelu" 0.
SharePoint 2013 vyžaduje, aby sa tento parameter rovný 1.
Je ľahké opraviť!

1. Spustenie Microsoft SQL Server Management Studio (Štart - Všetky programy - Microsoft SQL Server 2012 - SQL Server Management Studio).

2. Na obrazovke pripojenia na server kliknite na tlačidlo "Connect".

3. Kliknite pravým tlačidlom myši na server v okne " Objekt Explorer."A Vyberte" Vlastnosti.":

4. V okne Vlastnosti servera, ktoré sa otvorí v ľavom menu, vyberte položku Stránka " Pokročilé"A vykonajte zoznam vlastností v dolnej časti obrazovky. Nastavte hodnotu parametra Maximálny stupeň paralely"v 1 a kliknite na tlačidlo "OK":

5. Nezavrite SQL Server Management Studio, príde to Handy.

Nastavenie práv na účte na nastavenie SharePoint 2013

Účet, v mene, ktorý inštalácia SharePoint 2013 musí mať zvýšené práva v SQL Serveri.
Tento účet sa odporúča poskytnúť tieto úlohy:
  • dbcreator
  • securityAdmin.
  • verejnosť
1. V SQL Server Management Studio v okne " Objekt Explorer."Rozbaľte položku" Bezpečnosť". Potom kliknite pravým tlačidlom myši na bod" Prihlásenia."A Vyberte" Nové prihlásenie.":

2. V poli "Prihlásenie Názov" zadajte doménové meno Účet, z ktorého plánujete inštalovať a konfigurovať SharePoint 2013.

3. V ľavom menu vyberte stránku " Serverových rolí."A skontrolujte úlohu" DBCREATOR "a" SEGUREADMIN ", a tiež sa uistite, že" verejná "úloha je už označená. Potom kliknite na tlačidlo" OK ":

Teraz je SQL Server pripravený na inštaláciu SharePoint 2013.

Inštalácia programu Microsoft .NET Framework 3.5 v MS Windows Server 2012 R2

V kroku číslo 9 bodu " Inštalácia SQL Server 2012"Mal som chybu: nebola nainštalovaná .NET Framework 3.5.
Na vyriešenie tohto problému sa musia vykonať tieto kroky:

1. Musíte otvoriť konzolu " Správca servera.".

2. V ľavom menu vyberte položku "Dashboard".

3. V strede okna kliknite na položku "Pridať role a funkcie".

4. V Majstri, ktorý sa otvorí, preskočí "predtým, ako začnete".

5. V kroku "Typ inštalácie" vyberte položku " Zariadenie na báze role alebo funkcie". Stlačte tlačidlo" Ďalej ".

6. V ďalšom kroku opustíte všetko predvolene a stlačte tlačidlo "Ďalej".

7. Preskočte krok "role servera" kliknutím na tlačidlo "Ďalej".

8. Zaškrtávacie políčko "NET Framework 3.5, oslavujeme políčko" NET Framework 3.5. Stlačte tlačidlo "Ďalej".

9. Po dokončení procesu inštalácie môžete zavrieť Sprievodcu "Pridať roly a funkcie Sprievodca.

10. Pripravené!

Všetka dobrá a pokojná obloha nad hlavou!

P.S. Šťastný kozmonautický deň!

Maximálny stupeň paralely (DOP) - Ďalšia možnosť konfigurácie SQL Server, ktorá je spojená s mnohými otázkami a ktoré sú venované mnohým publikáciám. V tomto článku svojho blogu, autor dúfa, že urobí trochu jasnosť, že táto možnosť robí a ako ho používať.
Po prvé, autor by chcel rozptýliť akékoľvek pochybnosti o tom, že zadaná možnosť nastaví, koľko procesorov môže používať SQL Server pri servisu viacerých pripojení (alebo užívateľov) - to nie je tak! Ak má SQL Server prístup k štyrom inaktívnym procesorom, a je nakonfigurovaný na používanie všetkých štyroch procesorov, bude používať všetky štyri procesory bez ohľadu na maximálny stupeň paralely.
Čo teda táto možnosť dá? Táto možnosť nastaví maximálny počet procesorov, ktoré SQL Server môže použiť na jednu požiadavku. Ak sa žiadosť o SQL Server musí vrátiť veľký objem Údaje (mnoho záznamov), niekedy má zmysel paralelne, rozbíjať sa na niekoľko malých požiadaviek, z ktorých každý vráti svoju podmnožinu riadkov. SQL Server teda môže použiť viacero procesorov, a preto na multiprocesorových systémoch môže byť veľký počet záznamov celého dotazu potenciálne vrátiť rýchlejšie ako na jedno-procesorovom systéme.
Existuje mnoho kritérií, ktoré sa musia brať do úvahy predtým, ako SQL Server spúšťa "Intra Parallizmus" (porušenie žiadosti o niekoľko prúdov) a podrobne nie je žiadny bod. Môžete ich nájsť v Bol, hľadáte frázu "stupeň paralelizmu". Hovorí, že rozhodnutie o paralelizácii je založené na dostupnosti procesora pamäte a najmä na dostupnosť samotných procesorov.
Takže, prečo musíme premýšľať prostredníctvom používania tejto možnosti - pretože, takže ho ponechanie v predvolenej hodnote (samotný SQL Server sa rozhodne o paralelizácii), niekedy môžete získať nežiaduce účinky. Tieto účinky vyzerajú takto:

    Súbežné požiadavky sú pomalšie.

    Doba vykonávania požiadaviek sa môže stať non-deterministics, a môže to byť nepravidelnými užívateľmi. Čas vykonávania sa môže zmeniť, pretože:

      Žiadosť môže niekedy paralelná a niekedy nie.

      Žiadosť môže byť zablokovaná paralelnou požiadavkou, ak boli spracované procesory preťažené.

Predtým, než budeme pokračovať, autor by si všimol, že nie je zvlášť potrebné ponoriť sa do vnútornej organizácie paralelizmu. Ak máte záujem o to, môžete si prečítať článok "Paralelné spracovanie dotazov" v knihách na riadku, v ktorom sú tieto informácie podrobnejšie uvedené. Autor verí, že existujú len dve dôležité veci, ktoré by ste mali vedieť o vnútornej organizácii paralelizmu:

    Súbežné požiadavky môžu generovať viac vlákien, ako je uvedené v možnosti "Maximálny stupeň paralely". DOP 4 môže generovať viac dvanástich vlákien, štyri na požiadanie a ďalšie prúdy používané na triedenie, prúdy, jednotky a zostáv atď.

    Paralelizácia požiadaviek môže vyvolať rôzne spidy, aby čakali s čakacím typom CXPACKET alebo 0x0200. To možno použiť na nájdenie tých spidov, ktoré sú v pohotovostnom režime, keď paralelné operácie, a majú v SYSPROOCESY WAITTYPE: CXPACKET. Aby ste uľahčili túto úlohu, autor ponúka používať uložený postup v jeho blogu: track_waitstats.

A tak "žiadosť môže byť vykonaná pomalšia pri paralele" Prečo?

    Ak má systém veľmi slabý Šírka pásma Disk Subsystémy, potom pri analýze žiadosti je možné jeho rozklad vykonať dlhšie ako bez paralelizmu.

    Možné dátové bloky alebo blokovanie dátových rozsahov pre procesor vytvorený iným použitým paralelne a spusteným neskorším procesom atď.

    Ak nie je index pre predikát, čo vedie k skenovanie tabuľky. Paralelná operácia v rámci žiadosti môže skryť skutočnosť, že žiadosť bude dokončená oveľa rýchlejšie s konzistentným plánom vykonávania a so správnym indexom.

Zo všetkého nasleduje odporúčanie na kontrolu vykonávania dotazu bez paralelizmu (DOP \u003d 1), to pomôže identifikovať možné problémy.
Vyššie uvedené účinky paralelizmu by vás mali priniesť, že vnútorná mechanizmus paralelíci žiadostí nie sú vhodné na použitie v aplikáciách OLTP. Ide o také aplikácie, pre ktoré môže zmena v čase realizácie dráždiť používateľov a pre ktoré je server súčasne slúžiť mnohým používateľom, aby vybrali plán paralelného realizácie z dôvodu týchto aplikácií profilu pracovného zaťaženia procesora.
Preto, ak budete používať paralelnosť, potom s najväčšou pravdepodobnosťou bude potrebné, pre úlohy ťažby údajov (dátový sklad), podpora rozhodovacích alebo vykazovacích systémov, kde nie je veľa požiadaviek, ale sú tvrdé a vykonané Výkonný server s veľkým objemom prevádzkovej pamäte.
Ak sa rozhodnete použiť paralelnosť, akú hodnotu by mala byť inštalovaná pre DOP?. Dobrou praxou pre tento mechanizmus je, že ak máte 8 procesorov, potom nainštalujte DOP \u003d 4, a to s veľkým stupňom pravdepodobnosti bude optimálna inštalácia. Neexistuje však žiadna záruka, že bude fungovať. Jediný spôsob, ako sa uistiť, že je to testovať rôzne hodnoty pre DOP. Okrem toho autor chcel ponúknuť svoj, založený na empirických pozorovaní Rady, nikdy nestanoviť toto číslo viac ako polovicu počtu procesorov, ktoré sú na sklade. Ak autor mal spracovateľov menej ako šesť, bolo by nastavené DOP v 1, čo jednoducho zakazuje paralelizáciu. Mohol by výnimciu, ak by mal databázu, ktorá podporuje proces len jedného používateľa (niektoré technológie extrakcie dát alebo úlohy hlásenia), v tomto prípade, v poradí podľa výnimky, bude možné inštalovať DOP v 0 (predvolená hodnota) Umožňuje SQL Server rozhodnúť o potrebe paralenia dotazu.
Pred vyplnením článku vás autor chcel upozorniť na skutočnosť, že paralelné vytváranie indexov závisí od čísla, ktoré nainštalujete pre DOP. To znamená, že budete chcieť zmeniť ho v čase vytvárania alebo opätovného vytvárania indexov na zvýšenie výkonu tejto operácie, a samozrejme, môžete použiť dotaz Maxdop Hint, ktorý vám umožní ignorovať hodnotu nastavenú v konfigurácie a môžu byť použité v minimálnych nákladoch.
Nakoniec sa vaša požiadavka môže spomaliť pri paraleľovaní z dôvodu chýb, takže sa uistite, že je na vašom serveri nainštalovaný posledný balík Service Pack.

Vytvoriť proc track_waitstats (@num_samples int \u003d 10 , @ OneateNnum int \u003d 1 @ OneskorenieType nvarcharch 10 ) \u003d "Minúty") As - T. Davidson - tento uložený postup je poskytnutý \u003d ako je \u003d bez záruk, - a priznáva žiadne práva. - Použitie zahrnutých vzoriek skriptov podliehajú podmienkam - zadané na adrese http://www.microsoft.com/info/cpyright.htm - @ bumb_samples je počet časov zachytiť čakanie, - Predvolená hodnota je 10-krát. Predvolený interval oneskorenia je 1 minúta - meškanie je interval oneskorenia. OneskorenieType určuje, či - interval oneskorenia je minúty alebo sekundy - Vytvorenie tabuľky čakania, ak neexistuje, inak skrátenie Nastavte Nocount, ak neexistuje (vyberte) 1 Z Sysobjects, kde názov \u003d "waitstats") vytvoriť tabuľku waitstats (varchar ( 80 ), Žiadosti číselné ( 20 ,1 ), Numerické ( 20 ,1 ), Numerické ( 20 ,1 ), Teraz DateTime Default Getdate ()) Else Truncate Table waitsstats dbcc sqlperf (waitstats, clear) - clear out waitsstats deklarovať @i int, @ oneskorenie varchar ( 8 ), @ Dt varchar ( 3 ), @ Now DateTime, @ Totalwait Numeric ( 20 ,1 ), @ ENDTIME DateTime, @ regnTime DateTime, @ h int, @ min int, @ sek int select @i \u003d 1 Vyberte @dt \u003d case nižší (@DELAYTYTYPE), keď "minúty" potom "m", keď "minúta" potom "m", keď "min" potom "m", keď "mm" potom "m", keď "MI" potom "M" Keď "m" potom "m", keď "sekundy" potom "s", keď "druhý" potom "s", keď "sek" potom "s", keď "SS" potom "s", keď "S" potom "S" ONKCIATYPE END IF @ NOT IN ("S", "M") Začnite tlač "Prosím, napájajte typ oneskorenia, napr. Sekundy alebo minúty" Return End, ak @dt \u003d "s" začína »@SEC \u003d @ @ @ @ @ @ @ 60 vyberte @min \u003d obsadenie (@delaynum / 60 ) Ako Int) Select @HR \u003d obsadenie ((@min / 60 ) Ako Int) Select @min \u003d @ Min% 60 Koniec, ak @dt \u003d "m" začína vybrať @SEC \u003d 0 Vyberte @min \u003d @ @ @ @ @ @ 60 Select @hr \u003d obsadenie (@delaynum / 60 ) Ako Int) END SELECT @DELAY \u003d RIGHT ("0" + CONVERT (VARCHAR ( 2 ), @ H), 2 2 ), @ min), 2 ) + ":": "+ + Vpravo (" 0 "+ konvertovať (varchar ( 2 ), @ Sek), 2 ) Ak @HR\u003e 23 alebo @min\u003e 59 alebo @sec\u003e 59 Začať Vybrať. "HH: MM: SS oneskorenie času nemôže\u003e 23:59:59" Zvoľte "interval oneskorenia a zadajte:" + konvertovať (varchar ( 10 ), @ OneateNUM) + "," + @DELAYTYPE + "konvertuje na" + @Delay Return End, zatiaľ čo (@i<= @num_samples) begin insert into waitstats (, requests, ,) exec ("dbcc sqlperf(waitstats)" ) select @i = @i + 1 Waitser oneskorenie @Delay end --- Vytvoriť windsstats report Execute get_waitstats --//--//--//--//--//--//--//--//--//-//--//--//--//--//--//--//--//--/ Vytvoriť proct get_waitstats as - tento uložený postup je poskytnutý \u003d ako je \u003d bez záruk, a - priznáva žiadne práva. - Použitie zahrnutých vzoriek skriptov podliehajú zadaným termínom - Na http://www.microsoft.com/info/cpyright.htm. -- - tento PROCT vytvorí Waitstats Report Uveďte zoznam čakacích typov podľa - percento - Môže byť spustený, keď je Track_waitstats realizácia Nastaviť Nocount na deklarovanie @now datetime, @ totalwait numeric ( 20 ,1 ), @ Endtime DateTime, @ RigTitume DateTime, @ Hr Int, @ Min Int, @ SEC Int SELECT @ now \u003d max (teraz), @ bengitme \u003d min (teraz), @ endtime \u003d max (teraz) z čakacích hodín, kde \u003d " Celkom " --- Odčítajte čakanie, spánok a resource_queue Vybrať @TOTALWAIT \u003d SUMU () + 1 Z čakajúcich, kde nie je v ("waitfor", "spať", "resource_queue", "celkom", "*** celkom ***") a teraz \u003d @now - vložiť nastavené súčty, pozície podľa percenta zostupne Odstrániť waitstats, kde \u003d "*** celkom ***" a teraz \u003d @now vložiť do waitsstats Vyberte "*** celkom ***", 0 , @ Totalwait, @ TOTWAYWAIT, @ Teraz vyberte ,, percento \u003d obsadenie ( 100 * / @ Totalwait ako numerický ( 20 ,1 )) Z náčastí, kde nie je v ("waitfor", "spať", "resource_queue", "celkom") a teraz \u003d @now poradie podľa percenta

V tomto príspevku budeme hovoriť len o MS SQL Server. Ak sa chystáte "vyskúšať šťastie", aby ste mohli používať 1c s Oracle, DB2, Postrgre vám tieto informácie budú zbytočné. Ale musíte pochopiť, že v 1c sa nachádzajú primárne odborníci na MS SQL Server. Odborníci na DB2 sa objavujú úsilie z IBM. Dlho môžete argumentovať dobré alebo zlé, toto DBMS je dôležité, jeden, najviac "hladký" 1C pracuje s MS SQL Serverom. Posudzovanie najnovšími správami s "prednou" viac či menej slušnou prácou s DB2. Aj keď som osobne mal skúsenosti s nastavením 1c do práce s DB2 viac vo verzii 8.1 - všetko bolo nejako nie veľmi. V každom prípade by sa výber iného DBMS mala jasne odôvodniť - buď možnosti, ktoré nie sú v MS SQL (klastra s vyvažovaním zaťaženia, mriežkou atď.) Alebo financie (Oracle už zakúpené) alebo platformu (všetko na Linux) .

Takže v poradí, čo musíte urobiť s MS SQL Server:

1) Nakonfigurujte minimálne a maximálne množstvo pamäte. Minimum je polovica pamäte systému. Maximálny pamäťový systém bez 2 GB. To sa vykonáva prostredníctvom riadiaceho štúdia - v serverových vlastnostiach:

2) Ak nie je priorita nainštalovaná na karte Processor - musíte nainštalovať

3) Maximálny stupeň paralely uvedený v 1.

4) Zahrnúť SQL Server Agent, prispôsobiť databázovú poštu - nie je nič ťažké, neopisujem podrobne.

5) Prispôsobte servisné plány:
Všeobecne:
a) Aktualizácia štatistiky - každé 2 hodiny
b) DBCC FreeProccache - každé 2 hodiny
Pre každú databázu:
a) Úplné zálohovanie
b) zálohovanie rozdielu
c) Defragmentácia indexov - každý deň
d) Indexy Perestroika - v noci cez víkendy
e) Kontrola integrity základne - raz mesačne v noci cez víkend

6) Odporúčam inštalovať model obnovy pre každú databázu (v nehnuteľnostiach) tak jednoduché. Ak nemáte systém 24/7 a menej ako 1000 užívateľov na základni, neexistuje žiadny chybový tolerantný klaster a nepodpísal si SLA, v ktorej predpokladáme v prípade výstupu akéhokoľvek zariadenia na obnovenie údajov Na druhú (a nie od posledného zálohovania) bude toto odporúčanie rozumné. V opačnom prípade budete veľmi skoro na dlhú dobu a kŕče odrážajú, kde sa narodil tranzakčný denník

7) Odstráňte TEMPDB databázu z bežných databáz do iného disku - aj keď musíte rekonfigurovať pole RAID a znížiť jeho výkon. V opačnom prípade bude 1 užívateľ schopný paralyzovať prácu všetkých ostatných. Ak máte hardvérový akceptovač namiesto pevného disku, potom sa samozrejme nemôžete oddeliť a dať temprdb na to, ale je to len vtedy, ak existuje

8) Nastavte akýkoľvek spôsob monitorovania - napríklad, mám rád Spotlight http://www.quest.com/spotlight-on-sql-server-enterprise/

9) Skontrolujte, či sa Skontrolujte, či s Microsoft Best Practice Analizer - http://www.microsoft.com/download/en/details.aspx?id\u003d15289 - nádherný nástroj, ktorý pomáha nielen s nastaveniami, ale aj s riešením mnohých problémov.

Stručne krátko za to, čo sme urobili všetko:

1) Pamäť. Minimálna hodnota vás jednoducho ušetrí z "závad", keď SQL Server pre niektoré ďalšie známe dôvody nepoužívajú všetku pamäť, ktorá je k dispozícii. Musí jesť všetko! Maximálna hodnota vám ušetrí od swapu v prípade, že rovnaký optimalizátor optimalizátora SQL Server sa rozhodne, že by ho stále ublížil ....

3) Veľmi dôležitým bodom - IMMO je potrebné dať v 1 vo všetkých transakčných systémoch. Po prvé, to zabraňuje súčasť zámkov medzi rôznymi procesmi, ktoré sa snažia vykonať 1 žiadosť, chráni nás od niektorých "podivných" chýb. Po druhé ... 1 "Kill" požiadavka bude môcť vytiahnuť všetky serverové zdroje, čo je trochu nie je pravdivé vo vzťahu k zvyšku užívateľov systému. Parameter určuje, či 1 žiadosť môže byť spracovaná ako mnoho jadier procesorov.

5) O štatistike a čistení procesnej vyrovnávacej pamäte - to je "na vypočutí" a tu často zabúdame na Reyndexáciu. Medzitým je tento postup pomerne dôležitý, najmä so zvýšením objemu základne, jej význam sa zvyšuje. Niekedy sa na fragmentácii indexu stratia až 60% výkonu.

7) Ak je hardvérový urýchľovač alebo jednoducho 2 disky s rôznymi prístupovými rýchlosťami, premýšľam by som premýšľať o zvýrazňovaní súborov súborov v databázach a rozdelenie jednotlivých tabuliek na rôzne diskové polia, s rôznym časom prístupu. Koniec koncov, súhlasíte, pH "tovar v skladoch" a referenčná kniha "ukladanie dodatočných informácií" 2 objektu požiadavky na uskladnenie, ktorého je zakorenené. Nie je potrebné uložiť všetky súbory a obrázky na rýchle pole v databáze - môžete ho vybrať na samostatnom, nie tak rýchlo, ale kde existuje mnoho miest (a nebojí sa veľa súborov na stiahnutie, spôsobom).