Del via


Egendefinerte SQL-pooler

Gjelder for:✅ SQL-analyseendepunkt og Warehouse i Microsoft Fabric

Egendefinerte SQL-pooler gir administratorer mer kontroll over hvordan backend-beregningsressurser tildeles deres lager og SQL-analyseendepunkt i et arbeidsområde.

Diagram over SQL-motoren med tilpassede SQL-pooler.

Fabric Data Warehouse tilbyr autonom arbeidsbelastningsstyring som fordeler beregningsressurser i interne "SQL-pooler" som skalerer uavhengig basert på etterspørsel.

Som standard er isolasjonsgrensene inntak (ikke-setningstyperSELECT ) og spørringsbehandling (SELECT setninger). Med tilpassede SQL-pooler kan administratorer:

  • Endre antall isolasjonsgrenser (legg til flere tilpassede SQL-pooler).
  • Lag applikasjonsspesifikke tilpassede arbeidsbelastningsklassifiseringer.
  • Kontroller ressursallokeringen av hver pool via en maks ressursprosent.

Brukstilfeller for tilpassede SQL-pooler

Tilpassede SQL-pooler har to hovedbruksområder: å beskytte arbeidsbelastninger mot ressurskonkurranse, og å beskytte mot Fabric-kapasitetsbegrensning ved høyt forbruk.

Konkurrerende arbeidsbelastninger med de autonome arbeidsmengdepoolene

Dette scenariet gjelder når ulike arbeidsbelastninger konkurrerer om ressurser, noe som fører til at kritiske arbeidsbelastninger bommer på ytelsesmålene.

Eksempelscenario

  • En enterprise-rapporteringsarbeidsbelastning presterer suboptimalt når ad hoc brukerforespørsler kjøres fra SQL-spørringseditoren i Fabric-portalen.

Anbefalt tilnærming

  • Del disse arbeidsbelastningene over to separate tilpassede SQL-pooler.
  • Alloker en større prosentandel av ressursene til poolen som betjener bedriftsrapporteringsapplikasjonen, slik at flere ressurser er tilgjengelige for den forretningskritiske applikasjonen.

Kapasitetsbegrensning på grunn av høyt forbruk

Dette scenariet gjelder når høyt Fabric-kapasitetsforbruk fører til throttling som påvirker den totale lagerytelsen.

Eksempelscenario

Anbefalt tilnærming

  • Reduser den totale ressursprosenten som er tildelt det berørte lageret.
  • Overvåk om denne endringen reduserer spørringsbegrensning og forbedrer den totale ytelsen.

Forskjeller mellom autonom arbeidsbelastningshåndtering og tilpassede SQL-pooler

Emne Autonom arbeidsbelastningsstyring Egendefinerte SQL-pooler
Konfigurasjon Ingen (rett ut av esken) - Webgrensesnitt
- API-er
Tillatelser Ikke tilgjengelig Arbeidsområdeadministrator
Omfang Arbeidsområde - inkluderer både lager- og SQL-analyseendepunkt Arbeidsområde - inkluderer både lager- og SQL-analyseendepunkt
Klassifiseringsmetode Setningstype (SELECT eller annet) - Applikasjonsnavn
- Applikasjonsnavn regulært uttrykk
Måleenhet Ikke tilgjengelig Prosentandel av totale backend-noder
SQL-pooler SELECT eller andre Brukerdefinert tildeling
Kapasitet som kan sprekke Managed by Fabric (opptil 12x per SQL-pool, 24x totalt) Brukerdefinert basert på prosentandel av tildelte backend-noder. Den totale mengden ressurser er fortsatt 24x.

Kapasitet som kan sprekke

Egendefinerte SQL-pooler gjør det mulig for en administrator å konfigurere maksimal ressursprosent som mengden beregningsressurser som kan allokeres. Bursting-faktoren for kapasitets-SKU-størrelsen vil bli anvendt og brukt av prosentandelen som er oppgitt for hver pool.

Klassifiserere

En klassifisator er en attributt til en SQL-forespørsel som informerer systemet om hvordan det skal rute til riktig SQL-pool.

Fabric Data Warehouse tilbyr tre måter å klassifisere forespørsler på:

Klassifikatortype Beskrivelse Konfigurasjon
Utsagnstype Klassifiserer forespørsler i enten SELECT (spørring) eller ikke-SELECT (alle DML, DDL-setninger) Kun autonom arbeidsbelastningsstyring
Programnavn - App- (eller programnavn) brukt i tilkoblingsstrengen når man kobler til Fabric Warehouse eller SQL Analytics Endpoint.
- Støtter flere applikasjonsnavn per egendefinert SQL-pool
- 128 tegn eller færre
- Gjensidig utelukkende mellom tilpassede SQL-pooler
Kun egendefinerte SQL-pooler
Applikasjonsnavn regex - Regulært uttrykk brukt for å matche verdien for applikasjonsnavnet.
- Kun første verdi i listen evalueres for regulært uttrykk
Kun egendefinerte SQL-pooler

Retningslinjer:

  • Kun én klassifiseringstype kan brukes per arbeidsområde. Alle tilpassede SQL-pooler i et enkelt arbeidsområde må bruke samme klassifiserer.
  • I tilfelle av en applikasjonsnavnsklassifiserer for regulære uttrykk, hvis en forespørsel oppfyller to eller flere klassifiseringer, er valget av egendefinert SQL-pool tilfeldig og det finnes ingen prioriteringskriterier.

Tillatelser

  • Medlemmer av Administrator-arbeidsområdet kan aktivere eller deaktivere tilpassede SQL-pooler for et arbeidsområde.
  • Medlemmer av Administrator-arbeidsområdet kan oppdatere de tilpassede SQL-poolkonfigurasjonene.

Konfigurer tilpassede SQL-pooler

Du kan konfigurere tilpassede SQL-pooler i Fabric Data Warehouse i Fabric-portalen eller gjennom API-kall.

Skjerm

Du kan se applikasjonsnavnet og SQL-poolen som ble registrert for en spørring i feltene program_namesql_pool_name i systemvisningen queryinsights.exec_requests_history .

Du kan bruke som program_name applikasjonsnavn i en klassifisator, eller i et regulært uttrykksmønster for en applikasjonsnavnsklassifikator.

For eksempel, for å finne alle og program_name tilsvarende sql_pool_name i nyere historie:

SELECT DISTINCT 
         program_name
        ,sql_pool_name
FROM queryinsights.exec_requests_history;

Du kan identifisere hvilke SQL-pooler som er under press ved å spørre visningen queryinsights.sql_pool_insights .

For eksempel, finn perioder hvor et basseng har vært under press den siste uken.

SELECT [timestamp]
        ,sql_pool_name
        ,max_resource_percentage
        ,is_pool_under_pressure
FROM queryinsights.sql_pool_insights
WHERE is_pool_under_pressure = 1
AND [timestamp] > DATEADD(WEEK, -1, GETDATE())
ORDER BY [timestamp] DESC, sql_pool_name;

For å aggregere program_name verdier etter noen spørringskostnadsmålinger, kan du bruke følgende spørring:

SELECT 
    program_name,
    sql_pool_name,
    [CPU] = SUM(allocated_cpu_time_ms), 
    [Disk] = SUM(data_scanned_disk_mb), 
    [Memory] = SUM(data_scanned_memory_mb), 
    [Remote storage] = SUM(data_scanned_remote_storage_mb)
FROM queryinsights.exec_requests_history
GROUP BY program_name, sql_pool_name
ORDER BY [CPU] desc, [Disk] desc, [Memory] desc, [Remote storage] desc;

Begrensninger

  • Et arbeidsområde må inneholde ett eller flere lagre eller SQL-analyseendepunkter før API-ene kan kjøres.
  • Du kan lage opptil åtte tilpassede SQL-pooler per arbeidsområde.
  • Når en tilpasset SQL-pool fjernes mens en spørring kjører i poolen, vil spørringen feile med en melding om at Request to perform an external distributed computation has failed with error "Query canceled by user." Endring av en tilpasset SQL-pool ikke forårsaker spørringsfeil.

Endringer i stoffkapasitet

Hvert arbeidsområde har en kapasitet med tilhørende kapasitetsenheter (CU), basert på hvilken SKU du kjøper. Den burstbare kapasiteten til tilpassede SQL-pooler avhenger av SKU-størrelsen. Så når du endrer kapasiteten, påvirker du maksimal mengde ressurser for hver egendefinert SQL-pool.

Når du endrer kapasitets-SKU-størrelsen eller tildeler en annen kapasitet til et arbeidsområde, skalerer tilpassede SQL-pooler automatisk til den nye SKU-størrelsen hvis de er aktivert.

Hvis nedskalering tvinger en SQL-pool til null tildelte noder, vises følgende feil under kjøring: "Den tildelte SQL-poolen for denne spørringen har ingen ressurser og må konfigureres på nytt." En administrator må konfigurere tilpassede SQL-pooler på nytt for å fjerne denne feilen.

Neste trinn: