Ugotavljanje, kaj obremenjuje prehod in podatkovno zbirko
Uporabniki sporočajo, da so Access, Excel ali Power BI počasni, ali pa je podatkovna zbirka ob določenih urah polno obremenjena. Želite izvedeti, katere zahteve to povzročajo, kdaj prihajajo in kaj lahko ukrenete.
Pregled rešitve
Prehod vodi dnevnik obremenitve v datoteki dnevnikov poleg skrbniške shrambe. Zahteve združuje v oblike: oblika je zahteva brez konkretnih vrednosti. Sto poizvedb istega obrazca, ki se razlikujejo le po številki stranke, je ena oblika s sto zahtevami. Tako je razvidno, da večino obremenitve običajno povzroča le nekaj oblik, dnevnik pa ne vsebuje podatkov uporabnikov.
| Množica | Prikaže | Pravica |
|---|---|---|
LoadShapes | po obliki za zadnjih sedem dni: število, čase, vrstice, bajte, napake in namige | admin |
LoadHours | iste številke po urah, za potek skozi mesece in tedenski vzorec | admin |
SlowRequests | posamezne zahteve od ene sekunde naprej s korelacijsko oznako | admin; oseba in ključ le z load-persons |
LoadAdvice | oblike z znanim ukrepom | admin |
LoadPersons | zahteve po dnevu, obliki in osebi | load-persons |
Polja in vrednosti opisuje skrbniški vmesnik.
Izvedba
Oglejte si najdražje oblike. Preberite
LoadShapes, razvrščene padajoče po skupnem času:GET /admin/v1/odata/LoadShapes?$orderby=TotalMs desc&$top=20&$select=Id,Alias,Kind,Text,Requests,TotalMs,P95Ms,DataMs,AverageRows,Advice
Textopisuje obliko, na primerdbo.Reparaturliste read: filter=(Werk eq ?); orderby=Datum; top. Če jeDataMsblizuTotalMs, se čas porabi v podatkovni zbirki; če jeDataMsmajhen, se porabi v prehodu ali pri prenosu (Bytes).Preberite namige.
LoadAdviceza obliko navede, zakaj je draga ne glede na podatke in kaj običajno pomaga:Koda Tipičen vzrok Kaj storite wholeSetAccess odpre celo povezano tabelo, Power Query naloži tabelo brez filtra Uporabite obrazec ali poizvedbo s pogojem; v Power Query filtrirajte pred nalaganjem unindexedFilterFiltrira se po stolpcu brez indeksa Naj skrbnik podatkovne zbirke ustvari indeks ali filtrirajte po indeksiranem stolpcu deepPagingProgram z $skiplista daleč v veliko množicoOmejite množico ali berite naprej prek povezave na naslednjo stran countLargeVsaka stran zahteva skupno število $countzahtevajte le, kadar ga potrebujeteaggregateWholeVsote čez celo veliko tabelo Omejite množico ali rezultat vnaprej izračunajte v indeksiranem pogledu expensiveStatementLastni stavek traja dolgo Preverite ga v Query Store, shranite ga kot proceduro ali pogled refreshLoopObrazec s časovnikom ali kratkim intervalom osveževanja, poizvedba s pogostim samodejnim osveževanjem Interval podaljšajte ali izklopite - Prepoznajte časovni vzorec.
LoadHourszdružite poWeekday(1 = ponedeljek) inHourOfDay, da vidite, kdaj je prehod obremenjen, ali poHour, da spremljate potek skozi tedne in mesece. Ura in dan v tednu veljata po uri strežnika. - Sledite posamezni počasni zahtevi.
SlowRequestsnavaja čas, trajanje inCorrelationId. S korelacijsko oznako isto zahtevo najdete v dnevniku prehoda in v revizijski sledi. Iščite naprej v SQL Serverju. Vsak stavek, ki ga prehod ustvari, za prvo ključno besedo vsebuje komentar
/* wkl:<Id> */, pri čemer je<Id>oznaka oblike izLoadShapes. Skrbnik podatkovne zbirke z njo najde načrt in njegove stroške, na primer v predpomnilniku načrtov:SELECT TOP (20) s.execution_count, s.total_worker_time / 1000 AS cpu_ms, s.total_logical_reads, t.text FROM sys.dm_exec_query_stats AS s CROSS APPLY sys.dm_exec_sql_text(s.sql_handle) AS t WHERE t.text LIKE N'%/* wkl:%' ORDER BY s.total_worker_time DESC;
Če je vklopljen za podatkovno zbirko Query Store, isto oznako najdete tam v
sys.query_store_query_text. Seje prehoda prepoznate poprogram_name=Wkl.Data.Gatewayvsys.dm_exec_sessions.Obremenitev predajte proizvajalcu. Če naj proizvajalec razišče, kje uporabniki čakajo, obremenitev zapišite v datoteko – prek skrbništva s
POST /admin/v1/export-loadali na strežniku z `export-load`:dbgwsvc export-load --to C:\Temp\obremenitev.json --days 30
Datoteka je berljiv JSON. Pred pošiljanjem jo preverite: vsebuje imena aliasov, tabel in stolpcev, ne pa oseb, naslovov in vrednosti.
Opombe
- Podatki so vidni po eni minuti. Prehod zbrane številke zapiše enkrat na minuto.
- Lastni stavki s pravico
sqlse pojavijo z besedilom brez literalov in komentarjev. Prehod jih ne spreminja in jim zato ne doda komentarja/* wkl:… */. V SQL Serverju jih najdete po besedilu ali poprogram_name. - Lastno
Application Name. Če niz povezave podatkovnega vira sam nastaviApplication Name, ga prehod ohrani;program_nametedaj kaže to ime. - Obremenitev po osebah. Kdor bere
LoadPersons, vidi, kdo je kdaj koliko poizvedoval. Pravicoload-personspodelite le tam, kjer je vrednotenje po osebah dovoljeno in dogovorjeno; dnevne številke se privzeto hranijo sedem dni (Gateway:LoadLog:PersonDays). Druge množice ne navajajo nobene osebe. - Kaj se ne šteje. Zahteve na
/health. Če se v eni minuti zbere več kot 5.000 različnih oblik, prehod preostalih ne šteje in to sporoči v svojem dnevniku. - Stroški. Dnevnik obremenitve zahteve merljivo ne podaljša. Če ga ne potrebujete, ga izklopite z
Gateway:LoadLog:Enabled=false.
Sorodne teme
- Konfiguracija: Gateway:LoadLog – vse nastavitve
- Skrbniški vmesnik: dnevnik obremenitve – polja, vrednosti in
export-load - Preverjanje vzorcev prijav in njihovega izvora – enakovredno orodje za prijave