Color scheme: Riviera
You are here: start » sl » Dokumentacija » Integracija podatkov in dostop do podatkov » WKL Database Gateway » Navodila » Ugotavljanje, kaj obremenjuje prehod in podatkovno zbirko

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žicaPrikažePravica
LoadShapespo obliki za zadnjih sedem dni: število, čase, vrstice, bajte, napake in namigeadmin
LoadHoursiste številke po urah, za potek skozi mesece in tedenski vzorecadmin
SlowRequestsposamezne zahteve od ene sekunde naprej s korelacijsko oznakoadmin; oseba in ključ le z load-persons
LoadAdviceoblike z znanim ukrepomadmin
LoadPersonszahteve po dnevu, obliki in osebiload-persons

Polja in vrednosti opisuje skrbniški vmesnik.

Izvedba

  1. 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

    Text opisuje obliko, na primer dbo.Reparaturliste read: filter=(Werk eq ?); orderby=Datum; top. Če je DataMs blizu TotalMs, se čas porabi v podatkovni zbirki; če je DataMs majhen, se porabi v prehodu ali pri prenosu (Bytes).

  2. Preberite namige. LoadAdvice za obliko navede, zakaj je draga ne glede na podatke in kaj običajno pomaga:

    KodaTipičen vzrokKaj storite
    wholeSetAccess odpre celo povezano tabelo, Power Query naloži tabelo brez filtraUporabite obrazec ali poizvedbo s pogojem; v Power Query filtrirajte pred nalaganjem
    unindexedFilterFiltrira se po stolpcu brez indeksaNaj skrbnik podatkovne zbirke ustvari indeks ali filtrirajte po indeksiranem stolpcu
    deepPagingProgram z $skip lista daleč v veliko množicoOmejite množico ali berite naprej prek povezave na naslednjo stran
    countLargeVsaka stran zahteva skupno število$count zahtevajte le, kadar ga potrebujete
    aggregateWholeVsote čez celo veliko tabeloOmejite množico ali rezultat vnaprej izračunajte v indeksiranem pogledu
    expensiveStatementLastni stavek traja dolgoPreverite ga v Query Store, shranite ga kot proceduro ali pogled
    refreshLoopObrazec s časovnikom ali kratkim intervalom osveževanja, poizvedba s pogostim samodejnim osveževanjemInterval podaljšajte ali izklopite
  3. Prepoznajte časovni vzorec. LoadHours združite po Weekday (1 = ponedeljek) in HourOfDay, da vidite, kdaj je prehod obremenjen, ali po Hour, da spremljate potek skozi tedne in mesece. Ura in dan v tednu veljata po uri strežnika.
  4. Sledite posamezni počasni zahtevi. SlowRequests navaja čas, trajanje in CorrelationId. S korelacijsko oznako isto zahtevo najdete v dnevniku prehoda in v revizijski sledi.
  5. 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 iz LoadShapes. 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 po program_name = Wkl.Data.Gateway v sys.dm_exec_sessions.

  6. Obremenitev predajte proizvajalcu. Če naj proizvajalec razišče, kje uporabniki čakajo, obremenitev zapišite v datoteko – prek skrbništva s POST /admin/v1/export-load ali 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 sql se 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 po program_name.
  • Lastno Application Name. Če niz povezave podatkovnega vira sam nastavi Application Name, ga prehod ohrani; program_name tedaj kaže to ime.
  • Obremenitev po osebah. Kdor bere LoadPersons, vidi, kdo je kdaj koliko poizvedoval. Pravico load-persons podelite 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

sl/wiki/data-conectivity/database-gateway/how-to/investigate-load.txt · Last modified: by Wolfgang van der Stille