Par interesantām lietām no tā, instrukcijas un atsauksmes. Maksimālais paralēlisms - izvēlieties optimālo SQL vērtības maksimālo paralēlisma pakāpi

Nav noslēpums, ka domā par problēmām, kas saistītas ar SQL servera konfigurēšanu, kas saistīta ar veiktspējas pieaugumu, lielākā daļa no viņiem izvēlas par labu aparatūras palielināšanai. Bet tas vienmēr ir pamatots? Vai visas jau izmantotās servera iestatīšanas metodes? Ir zināms, ka darbs ar konfigurācijas parametriem un to noklusējuma vērtību maiņa spēj uzlabot šīs sistēmas veiktspēju un citas īpašības. Starp šīm konfigurācijas opcijām SQL konfigurācijai ir viena iespēja ar daudziem jautājumiem, tas ir iespēja - max grāds paralēlisma (DOP) - šeit ir par to un runāsim par to.

Maksimālais paralēlisma (DOP) opcijas līmenis nosaka to pavedienu skaitu, ko SQL Server var paralalēt pieprasījumu un nozīmē izmantoto servera procesoru skaitu. Noklusējuma parametrs ir 0 - maksimālais paralēlisma pakāpe. Piemēram, ja jums ir 24 kodoli - tad "maksimālā paralēles pakāpe" vērtība būs vienāda ar 24 un optimizētāju, ja tā uzskata to par nepieciešamu, var izmantot visus procesorus, lai izpildītu vienu instrukciju, tas ir, vaicājums būs paralēli 24 plūsmām. Vairumam gadījumu tas ir labs, bet ne visiem. Arī ne vienmēr ir labi, izmantojot šī noklusējuma parametra vērtību. Šā parametra konfigurēšana var būt nepieciešams, piemēram, šādā situācijā: piemēram, mums ir pieteikums, kurā visi darbinieki sniedz informāciju par ikdienas darbībām, un noteiktā laika periodā katrs lietotājs veic pieprasījumu, kas būvē Ziņojums par visām lietotāju operācijām kādu laiku zaudē spēku. Protams, ja laika trūkums ir liels, šis vaicājums tiks izpildīts ilgu laiku, un, uzstādot DOP pēc noklusējuma, veiks visus pieejamos procesorus, kas dabiski ietekmēs citu lietotāju darbību. Līdz ar to, mainot DOP vērtību, mēs varam bez izmaiņām vaicājumā, lai palielinātu SQL servera reakcijas laiku no citiem lietotājiem.
Dalībvalstis iesaka iestatīt vērtību šādi:

Iestatot parametru uz Tsql visu serveri:

Exec sp_configure "max paralēlisma pakāpe", 4; Pārkonfigurēt.

Varat arī iestatīt šo vērtību konkrētai TSQL vaicājumam:

Izmantot Adventureworks2008R2; Go Select ProductID, pasūtījumu, summa (lineetal) kā Totalfrom Sales.SalesorderDetail kur UnitIrtice< $5.00 GROUP BY ProductID, OrderQty ORDER BY ProductID, OrderQty OPTION (MAXDOP 2); GO

Šajā piemērā "mājienu" MAXDOP maina modernā parametra maksimālās vērtības parametru noklusējuma vērtību uz 2. Apskatīt pašreizējo iestatījumu var būt:

Exec SP_Configure "Show Advanced", 1; Pārkonfigurēt; Exec sp_configure "Maksimālais paralēlisma līmenis"

Tagad pieņemsim redzēt, kā šo vērtību ietekmē likme izpildes vaicājuma. Lai pārbaudītu vaicājumu, kas rakstīts iepriekš, uz ilgāku laiku pievienojiet vēl vienu izvēlieties to. Pieprasījums iegūs šādu formu:

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

Uz manu testēšanas mašīnu, vērtība "max paralēlisma" tiek parādīts 0. MSSQL tiek uzsākta ar mašīnu ar 4-core procesoru. Es veicu virkni eksperimentu ar dažādām maxDop vērtībām: vienāds ar 1 - bez vaicājuma paralēlizēšanas; vienāds ar 2 - izmantojot tikai 2 serdeņus; EQUAL 4 - izmantojot visu un bez mājienu, lai noteiktu iespēju, kas izmanto noklusējuma turpinājumu. Lai iegūtu izpildes statistiku, pieprasījums jāiekļauj komplektā statistikas laikā pēc opcijas, kā arī iespējot vaicājuma plāna displeja pogu vadības studijā. Vidēji iegūtos rezultātus, es veicu katru vaicājumu cikla laikā 3 reizes. Rezultātus var redzēt zemāk:

Izvēlieties DT.PRODUCTID, DT.Orderqty, summa (dt.linetotal) kā kopā no Sales.SalesorderDetail DT, (izvēlieties * no Sales.Salesordetail, kur UnitIrtice< $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.

Attiecībā uz vaicājumu ir skaidrs, ka instalējot mājienu (MAXDOP 1), vaicājums tika veikts bez paralēlizācijas. Vidējais vaicājuma izpildes laiks 45925,66 ms

Izvēlieties DT.PRODUCTID, DT.Orderqty, summa (dt.linetotal) kā kopā no Sales.SalesorderDetail DT, (izvēlieties * no Sales.Salesordetail, kur UnitIrtice< $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.

Uzstādot mājienu (MAXDOP 2), vaicājums tika veikts paralēli 2 CPU, to var uzskatīt par izpildes skaitu vaicājuma izpildes ziņā. Vidējais vaicājuma izpildes laiks 27054.33 ms

Izvēlieties DT.PRODUCTID, DT.Orderqty, summa (dt.linetotal) kā kopā no Sales.SalesorderDetail DT, (izvēlieties * no Sales.Salesordetail, kur UnitIrtice< $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.

Uzstādot mājienu (MAXDOP 4), vaicājums tika veikts paralēli 4 CPU. Vaicājuma vidējais izpildes laiks 24735.33 ms

Izvēlieties DT.PRODUCTID, DT.Orderqty, summa (dt.linetotal) kā kopā no Sales.SalesorderDetail DT, (izvēlieties * no Sales.Salesordetail, kur UnitIrtice< $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.

pieprasījums tika veikts paralēli, kā arī 4 CPU. Vidējais vaicājuma laiks 24357,33ms

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

Mērķis: Pārbaudiet SQL paralēlisma ietekmi uz darbu ar pieprasījumiem 1c

Literatūra:

Testa vide:

· Windows Server 2008 R2 Enterprise

· MS SQL Server 2008 R2

· 1c Enterprise 8.2.19.90

1. attēls. SQL īpašības "Vispārīgi"


2. attēls. SQL īpašības "Adansed"

Instrumenti:

· SQL Server Profiler

· 1c Pieprasījumu konsole

Testa pieprasījums:

Izvēlēties

AK. Nosaukums kā vārds

No

Reģistrācija. Spiediena klasifikators kā AK

Iekšējais savienojums Reģistrācija. Spiediena klasifikators kā AK1

Ar AC.KOD \u003d AK1.KOD

Sagatavošana:

Mēs palaist SQL Server Profiler, iestatiet savienojumu, atzīmējiet notikumus un kolonnas, kā parādīts 3. attēlā.


3. attēls. Trace Properties

Instalējiet mūsu datubāzes izvēli


4. attēls. Bāzes filtrs

Samazinājums:

· Maksimālais paralēlisma līmenis - MDOP

· Sost slieksnis paralēlisma - izmaksas

Secības pieprasījuma plāna pārbaude (MDOP \u003d 1)


5. attēls Pieprasījuma konsole - izpildes laiks 20 sek.

SQL Server "Max paralēlisma" serveris ir iestatīts uz 1 (bez paralēlisma). Mēs aplūkojam rezultātu profilerī (6. att.)


6. attēls kārtas pieprasījuma plāns

SQL Server ir izveidojusi secīgu pieprasījuma plānu, savukārt: kopējais iekraušanas CPU \u003d 6,750 (-i), un laiks, lai izpildītu vaicājumu \u003d 7,097 (s)

Paralēlā pieprasījuma plāna pārbaude (MDOP \u003d 0, COST \u003d 5)

Pārsūtiet SQL Server uz Paralēlisma režīmu (SQL vaicājumā):

Izmantot meistaru;

Exec SP_Configure "Rādīt uzlaboto opciju", 1;

Pārkonfigurēt ar ignorēšanu.

Izmantot meistaru;

exec sp_configure "Maksimālais paralēlisma līmenis", 0;

Pārkonfigurēt ar ignorēšanu.

Veikt to pašu vaicājumu (7. attēls)


7. attēls. Konsoles pieprasījumi - izpildes laiks 16 sek.

Pārbaudiet rezultātu profilā (8. attēls)


8. attēls. Paralēlā pieprasījuma plāns

SQL serveris šoreiz ir izveidojusi paralēlu vaicājumu plānu, bet kopējā CPU iekraušana \u003d 7,905 sekundes un vaicājuma ilgums \u003d 3,458 sekundes

Secības pieprasījuma plāna pārbaude (MDOP \u003d 0, COST \u003d 150)

Mēs centīsimies atbrīvoties no paralēlā plāna, izmantojot parametru "paralēlisma izmaksu slieksni". Pēc noklusējuma parametrs ir iestatīts uz 5. Mūsu gadījumā, no veidošanās paralēlo plānu, tas bija iespējams atbrīvoties no 150 (SQL vaicājumā):

Izmantot meistaru;

exec sp_configure. "Paralēles izmaksu slieksnis", 150 ;

Pārbaudiet vaicājuma izpildi šajos apstākļos (9. att.)

9. attēls. Konsoles pieprasījumi - izpildes laiks 20 sek.

Pārbaudiet rezultātu profilerī (10. att.)


10. attēls. Secības pieprasījuma plāns.

SQL Server ir izveidojis secīgu pieprasījuma plānu. Kopējais CPU ielāde \u003d 7,171 sekundes, vaicājuma izpildes laiks \u003d 7, 864 sekundes.

Secinājumi:

· Testa vaicājuma veikšana 1C Enterprise vidē, izmantojot SQL servera paralēlo plāna serveri, sniedz ievērojamu veiktspēju, salīdzinot ar secīgu plānu (16 sek. Pret 20 sekundēm - laimestiem 4 sek.)

· Veiciet testa vaicājumu ar SQL serveri, izmantojot paralēli pieprasījuma plānu, aizņem divas reizes ātrāk nekā tad, ja, izmantojot secīgu pieprasījuma plānu (3.5 sek. Pret 7.1 sek.)

· SQL servera paralēlisms nevar pielāgot ne tikai, izmantojot MDOP parametru, bet arī parametru "Paralēlisma parametru"

  • Apmācība

Šī rokasgrāmata ir paredzēta iesācējiem, kas meklē vienkāršu rokasgrāmatu krievu instalēšanai angļu versija SQL Server 2012, kas tiks izmantots, lai izmantotu SharePoint 2013.
Šis raksts nav paredzēts profesionāļiem.

Visi darbi ir sadalīti 3 posmos:

  • SQL Server 2012 instalēšana
  • Paralēlisma servera konfigurācijas iestatījumu iestatīšana
  • Iestatīšana pa labi kontsParedzēts, lai instalētu SharePoint 2013
Arī rakstā apraksta šo procesu microsoft instalācijas.Neto sistēma. 3.5 MS vidē Windows serveris 2012 R2 standart.

Uzmanību: zem griezuma daudziem attēliem!

SQL Server 2012 instalēšana

1. Pirms uzstādīšanas pārliecinieties, ka cietajā diskā ir pietiekami daudz brīvas vietas (manā gadījumā tas bija 2,7 GB).
Pēc izplatīšanas uzsākšanas izvēlieties vienumu " Uzstādīšana"Vēlreiz kreisajā izvēlnē" noklikšķiniet uz "Vienība" Jauns SQL Server stand-alone vai pievienot funkcijas esošai uzstādīšanai":

2. Sāciet instalācijas vedni. Tas pārbaudīs. Jūs varat noklikšķināt uz pogas "Rādīt detaļas" un skatiet detalizētu ziņojumu:

3. Detalizēts ziņojums. Nospiediet pogu "OK":

4. Ievadiet produkta taustiņu un nospiediet pogu "Next":

5. Piekrītu Licences līguma noteikumiem.
Lai to izdarītu, ielieciet atzīmi " Es piekrītu licences noteikumiem

6. Sestā loma solī izvēlieties pirmo vienumu " SQL Server funkciju uzstādīšana". Nospiediet pogu" Next ":

7. Solis "Feature izvēle" Svinējiet " Datubāzes dzinēju pakalpojumi", "Vadības rīki - pamata"Un" Vadības rīki - pabeigta"Pēc tam nospiediet pogu" Next ":

8. Tad uzstādītājs izpildīs citu pārbaudi. Jūs varat noklikšķināt uz pogas "Rādīt detaļas" un skatiet detalizētu ziņojumu:

9. Detalizēts ziņojums. (Šajā posmā man bija kļūda "Microsoft .NET Framework 3.5 ir instalēta ..." noteikums. Par to tālāk). Nospiediet pogu "Next":

10. Solī "instancē konfigurācija", jums ir jākonfigurē gadījums SQL Server pakalpojumu.
Es atkārtoju, ka šis raksts ir paredzēts iesācējiem. Tāpēc mēs pieņemam, ka SQL Server netika instalēts jūsu serverī, kas nozīmē, ka jūs atstāsiet visus noklusējuma iestatījumus. Nospiediet pogu "Next":

11. Šajā solī instalācijas vednis parāda prasības diska vietas. Nospiediet pogu "Next":

12. Servera konfigurācijas solī jums jānorāda servisa domēna konts " SQL Server datu bāzes dzinējs". Pēc" konta nosaukuma "un" paroles "lauku aizpildīšanas nospiediet pogu" Next ":

13. Step "Date Engine Configuration", tas ir pietiekami, lai pievienotu pašreizējo lietotāju SQL Server administratoriem. Lai to izdarītu, noklikšķiniet uz pogas "Pievienot pašreizējo lietotāju", pēc tam noklikšķiniet uz pogas "Next":

14. Nākamajā solī nospiediet pogu "Next":

15. Nākamais, instalācijas vednis atkal izpilda čeku un parāda tās rezultātus. Nospiediet pogu "Next":

16. Solī "Gatavs instalēt", vednis parādīs kopsavilkuma informāciju. Šeit jums ir jānoklikšķina uz pogas "Instalēt":

17. Pēc instalēšanas pabeigšanas tiek parādīta informācija par radītajām darbībām:

18. Šajā posmā, lai restartētu datoru. Dažos gadījumos (piemēram, uzstādot Microsoft .NET Framework 3.5), instalācijas vednis pats parādīs logu ar priekšlikumu restartēt datoru. Nelietojiet atteikties.

Paralēlisma servera konfigurācijas iestatījumu iestatīšana

Pēc noklusējuma vērtība "Maksimālā paralēlisma" parametrs ir 0.
SharePoint 2013 prasa, lai šis parametrs būtu vienāds ar 1.
Tas ir viegli noteikt!

1. Uzsākt Microsoft SQL Server Management Studio (Sākums - visas programmas - Microsoft SQL Server 2012 - SQL Server Management Studio).

2. Servera savienojuma ekrānā noklikšķiniet uz pogas "Connect".

3. Ar peles labo pogu noklikšķiniet uz servera logā " Objekta Explorer."Un izvēlieties" Īpašības.":

4. Servera rekvizītu logā, kas atveras kreisajā izvēlnē, izvēlieties Paparets " Progresīvs"Un veikt sarakstu ar īpašībām apakšā ekrāna. Iestatiet parametru vērtību Maksimālais paralēlisma līmenis"In 1 un noklikšķiniet uz "OK":

5. NELIETOJIET SQL Server Management Studio, tas būs ērts.

Konta tiesību noteikšana SharePoint 2013 iestatīšanai

Konts, kuras vārdā SharePoint 2013 uzstādīšana ir jāpalielina tiesības SQL serverī.
Šis konts ir ieteicams sniegt šādas lomas:
  • dbcreator
  • securityAdmin.
  • sabiedrība
1. SQL Server Management Studio logā " Objekta Explorer."Izvērst objektu" Drošība". Pēc tam ar peles labo pogu noklikšķiniet uz punkta" Pieteikšanās."Un izvēlieties" Jauns pieteikšanās.":

2. Laukā "Pieteikšanās vārds" ievadiet domēna vārds Konts, no kura jūs plānojat instalēt un konfigurēt SharePoint 2013.

3. Vēlreiz izvēlieties lapu " Servera lomas."Un pārbaudiet" dbceator "un" SecurityAdmin "lomu, kā arī pārliecinieties, ka" publiskā "loma jau ir atzīmēta. Pēc tam noklikšķiniet uz" OK ":

Tagad SQL Server ir gatavs instalēšanai SharePoint 2013.

Microsoft .NET Framework instalēšana 3.5 MS Windows Server 2012 R2 standartā

Punktā "9. solī" SQL Server 2012 instalēšana"Man bija kļūda: tas nav instalēts .NET Framework 3.5.
Lai atrisinātu šo problēmu, jāveic šādi pasākumi:

1. Jums ir jāatver konsole " Servera pārvaldnieks.".

2. Vēlreiz izvēlieties "Dashboard" vienumu.

3. Loga centrā noklikšķiniet uz vienuma "Pievienot lomas un funkcijas".

4. Master, kas atveras, izlaist "pirms sākat".

5. Solī "Uzstādīšanas veids" izvēlieties vienumu " Uz lomu balstīta vai funkciju uzstādīšana". Nospiediet pogu" Next ".

6. Nākamajā solī atstājiet visu pēc noklusējuma un nospiediet pogu "Next".

7. Izlaist soli "servera lomas", noklikšķinot uz pogas "Next".

8. Solī "Funkcijas", mēs atzīmējam "NET Framework 3.5 funkcijas" izvēles rūtiņu. Nospiediet pogu "Next".

9. Pēc instalēšanas procesa pabeigšanas jūs varat aizvērt "Pievienot lomas un funkcijas Wizard" vedni.

10. Gatavs!

Visa laba un mierīga debesis virs galvas!

P.S. Laimīga kosmonautikas diena!

Maksimālais grāds paralēlisms (DOP) - papildu SQL Server konfigurācijas opcija, kas ir saistīta ar daudziem jautājumiem un kas ir veltīti daudzām publikācijām. Šajā rakstā viņa emuāru, autors cer veikt nelielu skaidrību, ka šī iespēja ir un kā to izmantot.
Pirmkārt, autors vēlētos izkliedēt jebkādas šaubas par to, ka norādītā opcija nosaka, cik daudz pārstrādātāju var izmantot SQL serveri, apkalpojot vairākus savienojumus (vai lietotājus) - tas nav tik! Ja SQL Server ir piekļuve četriem neaktīviem procesoriem, un tas ir konfigurēts, lai izmantotu visus četrus procesorus, tas izmantos visus četrus procesorus neatkarīgi no maksimālā paralēlisma pakāpes.
Tātad, ko šī iespēja dot? Šī opcija nosaka maksimālo procesoru skaitu, ko SQL Server var izmantot vienu pieprasījumu. Ja pieprasījumam SQL Server jāatgriežas liels apjoms Dati (daudzi ieraksti), dažreiz ir lietderīgi paralēlām, sadalot vairākos mazos pieprasījumos, no kuriem katrs atgriezīs rindu rindu apakškopu. Tādējādi SQL Server var izmantot vairākus pārstrādātājus, un līdz ar to daudzprocesoru sistēmām, liels skaits visu vaicājumu var atgriezt ātrāk nekā vienā procesora sistēmā.
Ir daudzi kritēriji, kas jāņem vērā pirms SQL servera izraisītāji "Intra vaicājuma paralēlisms" (laužot pieprasījumu vairākām plūsmām), un šeit nav informācijas šeit. Jūs varat atrast tos Bol, meklējot frāzi "paralēlisma pakāpi". Tajā teikts, ka lēmums paralēlizēšanu balstās uz atmiņas procesora pieejamību un, it īpaši, par pašiem pārstrādātāju pieejamību.
Tātad, kāpēc mums ir jādomā, izmantojot šo iespēju - jo, atstājot to noklusējuma vērtībā (SQL Server pati lemj paralēlizāciju), dažreiz jūs varat saņemt nevēlamu efektu. Šīs sekas izskatās šādi:

    Paralēli pieprasījumi ir lēnāki.

    Pieprasījumu izpildes laiks var kļūt nenozīmīgs, un tas var neregulāriem lietotājiem. Izpildes laiks var mainīties, jo:

      Pieprasījums dažkārt var būt paralēli, un dažreiz ne.

      Pieprasījumu var bloķēt ar paralēlu pieprasījumu, ja pārstrādātāji ir pārslogoti pirms tam.

Pirms mēs turpināsim, autors vēlētos pamanīt, ka nav īpašu nepieciešamību ienirt paralēlisma iekšējā organizācijā. Ja jūs interesē šis, jūs varat izlasīt rakstu "paralēlā vaicājuma apstrāde" grāmatās tiešsaistē, kurā šī informācija ir izklāstīta sīkāk. Autors uzskata, ka ir tikai divas svarīgas lietas, kas jums jāzina par paralēlisma iekšējo organizāciju:

    Paralēli pieprasījumi var radīt vairāk pavedienu, nekā norādīts opcijā "Maksimālais paralēlisma līmenis". DOP 4 var radīt vairāk divpadsmit pavedienus, četrus pieprasījumam un papildu plūsmām, ko izmanto šķirošanai, plūsmām, vienībām un montāžām utt.

    Pieprasījumu paralēlizācija var izraisīt dažādas SPIDS, lai gaidītu ar gaidīšanas veidu CXPacket vai 0x0200. To var izmantot, lai atrastu tos, kas ir gaidīšanas režīmā, kad paralēlas operācijas, un ir sysprocesses waittype: cxpacket. Lai atvieglotu šo uzdevumu, autors piedāvā izmantot saglabāto procedūru savā emuārā: track_waitstats.

Un tā "pieprasījumu var veikt lēnāk, kad paralēli" kāpēc?

    Ja sistēmai ir ļoti vāja joslas platums Disku apakšsistēmas, tad analizējot pieprasījumu, tā sadalīšanās var veikt ilgāk nekā bez paralēlisma.

    Iespējamie datu bloki vai bloķēšanas datu diapazoni procesoram, ko rada cits, ko izmanto paralēli un uzsākot vēlāk procesu utt.

    Ja nav indeksa par predikātu, kas noved pie skenēšanas tabulas. Paralēlā darbība pieprasījuma var noslēpt to, ka pieprasījums būtu pabeigts daudz ātrāk ar konsekventu izpildes plānu un ar pareizo indeksu.

No visiem tas seko ieteikumam pārbaudīt vaicājuma izpildi bez paralēlisma (DOP \u003d 1), tas palīdzēs noteikt iespējamās problēmas.
Iepriekš minētās paralēles sekas pašām vajadzētu dot jums to, ka pieprasījumu paralēlizēšanas iekšējā mehānika nav piemērota lietošanai OLTP lietojumprogrammās. Tie ir šādi pieteikumi, par kuriem izmaiņas izpildes laikā var kairināt lietotājus un par kuriem serveris vienlaicīgi apkalpo daudzus lietotājus, visticamāk, izvēlēsies paralēlo izpildes plānu, kas saistītas ar šo procesora darba slodzes profila lietojumprogrammām.
Tāpēc, ja jūs izmantojat paralēli, tad visticamāk, tas būs nepieciešams, datu ieguves uzdevumiem (datu noliktavā), atbalsts lēmumu pieņemšanas vai ziņošanas sistēmām, kur nav daudz pieprasījumu, bet tie ir grūti un izpildīti Jaudīgs serveris ar lielu operatīvās atmiņas apjomu.
Ja jūs nolemjat izmantot paralēli, kāda vērtība ir jāinstalē DOP?. Laba prakse šim mehānismam ir tas, ka, ja jums ir 8 procesori, tad instalējiet DOP \u003d 4, un tas ar lielu varbūtību būs optimāla uzstādīšana. Tomēr nav garantijas, ka tas darbosies. Vienīgais veids, kā pārliecināties, ka tas ir, lai pārbaudītu dažādas vērtības DOP. Papildus tam autors vēlējās piedāvāt savu, pamatojoties uz Padomes empīriskiem novērojumiem, nekad nav iestatījis šo skaitu vairāk nekā pusi no krājumiem, kas ir noliktavā. Ja autoram bija pārstrādātāji mazāk nekā seši, tas noteikti DOP 1, kas vienkārši aizliedz paralēlizāciju. Viņš varētu veikt izņēmumu, ja būtu datu bāze, kas atbalsta procesu tikai viena lietotāja (dažas datu ieguves tehnoloģijas vai ziņošanas uzdevumi), šajā gadījumā, pēc izņēmuma kārtībā, tas būs iespējams uzstādīt DOP 0 (noklusējuma vērtība) Ļauj SQL Server pieņemt lēmumu par nepieciešamību paralēlēt vaicājumu.
Pirms pabeigšanas rakstu, autors vēlējās brīdināt jūs par to, ka paralēlais indeksu izveide ir atkarīga no numura, ko instalējat DOP. Tas nozīmē, ka jūs varat mainīt to brīdī, kad izveidotu vai atjaunotu indeksus, lai palielinātu šīs darbības veiktspēju, un, protams, varat izmantot MAXDOP padomu vaicājumu, kas ļauj ignorēt iestatīto vērtību Konfigurāciju un to var izmantot minimālajā slodzes pulkstenī.
Visbeidzot, jūsu pieprasījums var palēnināt, kad paralēli kļūdu dēļ, tāpēc pārliecinieties, vai jūsu serverī ir instalēts pēdējais servisa pakotne.

Izveidot proc track_waitstats (@num_samples int \u003d 10 , @ Deadnum int \u003d 1 @ CavedType Nvarchar ( 10 ) \u003d "Minūtes") AS - T. Davidson - šī uzglabātā procedūra ir nodrošināta \u003d kā ir \u003d bez garantijas, - un piešķir tiesības. - Iekļauts skriptu paraugu izmantošana ir atkarīgi no noteikumiem - norādīts http://www.microsoft.com/info/cpyright.htm - @num_samples ir reižu skaits, lai uzņemtu Waitstats, - Noklusējums ir 10 reizes. Noklusējuma aiztures intervāls ir 1 minūte - aizkavēšanās ir kavēšanās intervāls. AiztureType nosaka, vai. - kavēšanās intervāls ir minūtes vai sekundes - Izveidojiet Waitstats tabulu, ja tas nepastāv, citādi saīsināt Iestatiet NOCount On, ja ne eksistē (izvēlieties 1 No sysObjects kur vārds \u003d "waitstats") izveidot galdu waitstats (Varchar ( 80 ), Pieprasījumi ciparu ( 20 ,1 ), Ciparu ( 20 ,1 ), Ciparu ( 20 ,1 ), Tagad DateTime noklusējuma getDate ()) citur saīsināt tabulu waitstats dbcc sqlperf (waitstats, skaidrs) - Notīrīt gailstats paziņot @I int, @ aizture Varchar ( 8 ), @ DT Varchar ( 3 ), @ DateTime, @ totalwait ciparu ( 20 ,1 ), @ Entime DateTime, @ BEGINTIME DATETIME, @ HR int, @ min Int, @ sec int atlasiet @I \u003d 1 Izvēlieties @DT \u003d Case Lower (@DelayType), kad "minūtes" tad "m", kad "minūte", tad "m", kad "min", tad "m", kad "mm" tad "m", kad "mi" tad "m" Kad "m" tad "m", kad "sekundes" tad "s", kad "otrais", tad "s", kad "sek", tad "s", kad "ss", tad "s", kad "s", tad "s" cits @ AiztureType beigas, ja @dt nav ("s", "m") sākt drukāt "Lūdzu, sniedziet aizkaves tipu E.g sekundes vai minūtes" Atgriezties beigas, ja @dt \u003d "S" sākas izvēlieties @sec \u003d @ deadnum% 60 Izvēlieties @min \u003d cast ((@delaynum / 60 ) Kā int) izvēlieties @hr \u003d cast ((@min / 60 ) Kā int) izvēlieties @min \u003d @ min% 60 Beigt, ja @dt \u003d "m" sākat izvēlēties @sec \u003d 0 Izvēlieties @min \u003d @ deadnum% 60 Izvēlieties @hr \u003d cast ((@delaynum / 60 ) Kā int) End Select @Delay \u003d pa labi ("0" + konvertēšana (VARCHAR ( 2 ), @ Hr), 2 2 ), @ min), 2 ) + ":" + + Tiesības ("0" + konvertēšana (VARCHAR ( 2 ), @ Sec), 2 ) Ja @hr\u003e 23 vai @min\u003e 59 vai @sec\u003e 59 Sākt izvēlieties. "HH: mm: SS kavēšanās laiks nevar\u003e 23:59:59" Izvēlieties "DIEVĒJA INTERVAL un TYPE:" + CONVERT (VARCHAR ( 10 ), @ Deadnum) + "," + @delaytype + "pārveido" + @delay atgriešanās beigām, kamēr (@i<= @num_samples) begin insert into waitstats (, requests, ,) exec ("dbcc sqlperf(waitstats)" ) select @i = @i + 1 Waitfor Delay @Delay End --- Izveidot Waitstats Report Execute Get_waitstats --//--//--//--//--//--//--//--//--//-//--//--//--//--//--//--//--//--/ Izveidojiet proc-get_waitstats kā - šī uzglabātā procedūra ir paredzēta \u003d kā ir bez garantijas, un - piešķir tiesības. - Iekļauto skriptu paraugu izmantošana ir pakļauta norādītajiem noteikumiem - vietnē http://www.microsoft.com/info/cpyright.htm. -- - Šis proc ko radīs Waitstats ziņojums, kurā uzskaitīti gaidīšanas veidi - procentuālā daļa - var palaist, kad Track_waitstats izpilda Iestatiet NOCount par deklarēt @now DateTime, @ Totalwait Ciparu ( 20 ,1 ), @ @ @ wapinTime datetime, @ hr int, @ min int, @ sek. Kopā " --- atņemiet gailes, miega un resursu_queue no kopējā apjoma Izvēlieties @Totalwait \u003d summa () + 1 No Waitstats kur ne ("Waitfor", "gulēt", "Resource_Queue", "Total", "*** Kopā ***") un tagad \u003d @Now - Ievietot koriģētos kopsummas, rangs pēc procentiem dilstošā secībā Dzēst Waitstats kur \u003d "*** Total ***" un tagad \u003d @Now ievietot Waitstats Izvēlieties "*** Kopā ***", 0 , @ Totalwait, @ totalwait, @ tagad izvēlieties ,, procentos \u003d cast ( 100 * / @ Totalwait kā ciparu ( 20 ,1 )) No Waitstats kur ne ("Waitfor", "gulēt", "Resource_queue", "Total") un tagad \u003d @Now pasūtījums pēc procentos desa

Šajā ziņojumā mēs runāsim tikai par MS SQL Server. Ja jūs gatavojaties "izmēģināt laimi", lai izmantotu 1C ar Oracle, DB2, Postrrre jums šī informācija būs bezjēdzīga. Bet jums ir jāsaprot, ka 1C ir galvenokārt eksperti MS SQL Server. Eksperti DB2 šķiet no IBM. Jūs varat apstrīdēt labu vai sliktu ilgu laiku, šis DBVS ir svarīgs, viens, visvairāk "gluda" 1C strādā ar MS SQL Server. Spriežot pēc jaunākajiem ziņojumiem ar "priekšējo" vairāk vai mazāk pienācīgu darbu ar DB2. Lai gan man personīgi bija pieredze, nosakot 1C strādāt ar DB2 vairāk versijā 8.1 - viss bija kaut kā ne ļoti. Jebkurā gadījumā citas DBM izvēle ir skaidri pamatota - vai nu iespējas, kas nav MS SQL (klasteris ar slodzes balansēšanu, režģi utt), vai finansēm (jau iegādāto Oracle) vai platformu (viss Linux) .

Tātad, lai to, kas jums jādara ar MS SQL serveri:

1) Konfigurējiet minimālo un maksimālo atmiņas apjomu. Minimums ir puse no sistēmas atmiņas. Maksimālā atmiņas sistēma bez 2GB. Tas tiek darīts, izmantojot vadības studiju - serveru rekvizītos:

2) Ja prioritāte nav instalēta cilnē Procesors - jums ir jāinstalē

3) maksimālais paralēlisma līmenis, kas ievietots 1.

4) Iekļaut SQL servera aģentu, pielāgojiet datu bāzes pastu - tur nekas nav grūti, es detalizēti aprakstīšu.

5) Pielāgot pakalpojumu plānus:
Vispārīgi:
a) Atjaunināt statistiku - ik pēc 2 stundām
b) DBCC FreeProccache - ik pēc 2 stundām
Katrai datubāzei:
a) Pilns dublējums
b) Atšķirības dublējums
c) indeksu defragmentēšana - katru dienu
d) perestroika indeksi - naktī nedēļas nogalēs
e) pamatnes integritātes pārbaude - reizi mēnesī naktī nedēļas nogalē

6) Es iesaku instalēt katra datu bāzes atjaunošanas modeli (īpašumos), kā vienkārši. Ja jums nav 24/7 sistēmas un mazāk nekā 1000 lietotāju pie pamatnes, nav vaina tolerantu klastera, un jūs neesat parakstījuši SLA, kurā mēs pieņemam, ka izejas no jebkuras iekārtas, lai atjaunotu datus uz augšu uz otru (un nevis kopš pēdējās dublēšanas) šis ieteikums būs saprātīgs. Pretējā gadījumā jūs tik drīz būs tik drīz un atspoguļojies, kur aiziet pie dzimušās tranas žurnāla

7) Noņemiet Tempdb datubāzi no parastajām datubāzēm uz citu disku - pat tad, ja jums ir jākonstruē RAID masīvu un samazināt tā veiktspēju. Pretējā gadījumā, 1 lietotājs varēs paralizēt ikvienu citu darbu. Ja cietā diska vietā ir aparatūras akselerators, tad, protams, jūs nevarat atdalīt un ievietot tempdb par to, bet tas ir tikai tad, ja ir

8) Iestatiet jebkādus monitoringa līdzekļus - piemēram, man patīk uzmanības centrā http://www.quest.com/spotlight-on-sql-server-enterprise/

9) Pārbaudiet sevi ar Microsoft labāko praksi Analizer - http://www.microsoft.com/download/en/details.aspx?id\u003d15289 - brīnišķīgs rīks, kas palīdz ne tikai ar iestatījumiem, bet arī risinot daudzas problēmas.

Tagad īsi par to, ko mēs darījām visu:

1) Atmiņa. Minimālā vērtība vienkārši glābs jūs no "glitches", kad SQL Server dažiem citiem zināmiem iemesliem neizmanto visu pieejamo atmiņu. Jāēd viss! Maksimālā vērtība jūs ietaupīs no mijmaiņas darījuma, ja tas pats Optimizer no SQL Server atmiņas optimizētājs izlems, ka tas joprojām sāp viņam ....

3) Ļoti svarīgs punkts - Immo ir jāievieto 1 visās darījumu sistēmās. Pirmkārt, tas novērš daļu slēdzenes starp dažādiem procesiem, kas cenšas izpildīt 1 pieprasījumu, attiecīgi, tas aizsargā mūs no dažām "dīvainiem" kļūdām. Otrkārt, ... 1 "Kill" Pieprasījums varēs izvilkt visus servera resursus, kas ir nedaudz neatbilstoši attiecībā uz pārējiem sistēmas lietotājiem. Parametrs nosaka, vai 1 pieprasījumu var apstrādāt tik daudz procesoru serdeņus.

5) Par procesuālās kešatmiņas statistiku un tīrīšanu - tas ir "uzklausīšanas", un šeit mēs bieži aizmirst par Reyndexation. Tikmēr šī procedūra ir ļoti svarīga, jo īpaši ar bāzes apjoma pieaugumu, tās nozīme palielinās. Dažreiz indeksa sadrumstalotībā tiek zaudēti līdz 60% veiktspējas.

7) Ja ir aparatūras paātrinātājs vai vienkārši 2 diski ar dažādiem piekļuves ātrumiem, es vēlētos vēlreiz domāt par failu grupu izcelšanu datubāzēs un sadalot atsevišķas tabulas dažādiem disku blokiem, ar atšķirīgu piekļuves laiku. Galu galā, jūs piekrītat, pH "Preces noliktavās" un atsauces grāmata "Papildu informācijas glabāšana" 2 objekta prasība uz uzglabāšanu uzglabāšanu. Visi datu bāzes faili un attēli nav jāglabā ātrā masīvā - to var izvēlēties atsevišķā, nevis tik ātri, bet kur ir daudz vietas (un nebaidās no failu, ko lejupielādēt, veids).