NestJS-API-er for virksomhetsbackend · leksjon

Overvåking av databaseytelse

Bruk Supabase-verktøy og PostgreSQL-funksjoner til å overvåke databaseytelsen, identifisere flaskehalser og følge viktige måltall

Leksjon 2 av 611 trinn

Overvåking av databaseytelse er en gratis leksjon i NestJS-API-er for virksomhetsbackend på CoddyKit. Dette er leksjon 2 av 6. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i NestJS-API-er for virksomhetsbackend, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i NestJS-API-er for virksomhetsbackend inneholder totalt 6 leksjoner.

Hvorfor overvåke databaseytelsen?

Se for deg at appen din plutselig føles treg. Brukerne klager, og operasjoner får tidsavbrudd. Overvåking av databaseytelsen er diagnoseverktøyet ditt!

Det hjelper deg med å:

  • Identifisere trege spørringer som forårsaker flaskehalser.
  • Forstå ressursbruken (CPU, RAM).
  • Forhindre driftsavbrudd ved å oppdage problemer tidlig.
  • Optimalisere databasen for hastighet og effektivitet.

Viktige ytelsesindikatorer (KPI-er)

For å overvåke effektivt må du vite hva du skal se etter. Dette er dine viktigste ytelsesindikatorer:

  • CPU-bruk: Hvor mye prosessorkraft databasen bruker. Høy CPU-bruk kan bety komplekse spørringer eller for mange tilkoblinger.
  • Minnebruk: Hvor mye RAM som brukes. Overdreven bruk kan føre til tregere disk-I/O.
  • Disk-I/O: Hastigheten data leses fra og skrives til disken med. Høy I/O kan tyde på ineffektive spørringer eller manglende indekser.
  • Aktive tilkoblinger: Antallet klienter som for øyeblikket er koblet til databasen. For mange kan overbelaste serveren.
  • Spørringsforsinkelse: Tiden det tar å kjøre spørringer. Dette påvirker brukeropplevelsen direkte.

Supabase-dashbordet: Oversikt over måledata

Supabase tilbyr innebygde overvåkingsverktøy direkte i prosjektdashbordet. Gå til delen «Metrics» for å se en overordnet oversikt over databasens tilstand.

Her finner du grafer og diagrammer for CPU-, minne-, nettverks- og diskbruk. Dette er det første stedet du bør gå for en rask tilstandssjekk!

Dashbordet: Grundig gjennomgang av ressursgrafer

Delen «Metrics» viser detaljert historikk for ytelsen. Se etter:

  • CPU-bruk: Topper samsvarer ofte med stor belastning fra spørringer.
  • Minnebruk: En jevn økning kan tyde på minnelekkasjer eller ineffektiv hurtigbufring.
  • Disk-I/O: Høy lese-/skriveaktivitet kan tyde på spørringer som skanner store tabeller uten riktige indekser.
  • Nettverksbruk: Viser dataoverføring inn og ut, noe som er nyttig for å forstå belastningen fra kommunikasjonen mellom klient og server.

Ved å analysere trender over tid kan du forstå normal oppførsel og oppdage avvik.

Dashbordet: Innsikt i spørringsytelse

I tillegg til ressursgrafer inneholder Supabase-dashbordet ofte en del kalt «Query Performance» eller «Insights». Dette verktøyet er svært nyttig for å identifisere de tregeste spørringene dine.

Det samler data om kjøretider, hyppighet og samlet tidsbruk for spørringer. Dermed kan du raskt finne ut hvilke SQL-setninger som bruker mest ressurser og trenger optimalisering.

PostgreSQL: pg_stat_activity

Hvis du vil ha sanntidsinnsikt i hva databasen gjør *akkurat nå*, kan du bruke PostgreSQL-visningen pg_stat_activity. Den viser alle aktive tilkoblinger og spørringen de kjører (eller venter på).

Dette er nyttig for å oppdage spørringer som kjører lenge, eller tilkoblinger som er inaktive i en transaksjon.

SELECT
  pid,
  datname,
  usename,
  state,
  query_start,
  query
FROM pg_stat_activity
WHERE state = 'active'
ORDER BY query_start DESC;

PostgreSQL: pg_stat_statements

Mens pg_stat_activity brukes i sanntid, hjelper pg_stat_statements deg med å følge historisk aggregerte statistikker for alle kjørte spørringer. Det er en utvidelse du aktiverer.

Den registrerer måledata som samlet kjøretid, antall kall og standardavvik for hver unike spørring, noe som gjør den perfekt for å finne spørringer som konsekvent er trege over tid.

Aktivere og bruke pg_stat_statements

For å bruke pg_stat_statements må du først aktivere den i databaseinnstillingene for Supabase-prosjektet ditt (under Extensions), eller via SQL i SQL Editor.

Etter at du har aktivert den, kjører du noen spørringer og spør deretter visningen for å se statistikken:

CREATE EXTENSION IF NOT EXISTS pg_stat_statements;

SELECT
  query,
  calls,
  total_time,
  mean_time,
  stddev_time
FROM pg_stat_statements
ORDER BY total_time DESC
LIMIT 10;

Tolke resultater fra pg_stat_statements

Når du undersøker resultatet fra pg_stat_statements, bør du fokusere på:

  • total_time: Spørringer med høyest samlet kjøretid er de viktigste kandidatene for optimalisering.
  • mean_time: Høy gjennomsnittlig kjøretid tyder på en spørring som konsekvent er treg.
  • calls: En spørring som kalles ofte, kan bidra betydelig til den totale belastningen selv om den er rask, dersom total_time er høy.

Bruk denne innsikten til å finne ut hvilke spørringer som trenger oppmerksomhet, for eksempel ved å legge til indekser eller skrive dem om.

Sjekk av overvåkingsverktøy

Du har lært om ulike verktøy og måledata for overvåking av Supabase-databasen din. La oss teste kunnskapene dine!

Oppsummering: Hold databasen sunn

I denne leksjonen utforsket vi hvordan du overvåker ytelsen til Supabase-databasen din. Vi gikk gjennom:

  • Betydningen av overvåking og viktige KPI-er som CPU, minne og spørringsforsinkelse.
  • Bruk av delene Metrics og Query Performance i Supabase-dashbordet.
  • Bruk av kraftige PostgreSQL-visninger som pg_stat_activity for sanntidsinnsikt.
  • Implementering og tolking av pg_stat_statements for historisk analyse av spørringer.

Regelmessig overvåking hjelper deg med å vedlikeholde en rask og responsiv applikasjon på en proaktiv måte. Neste gang skal vi se nærmere på hvordan du optimaliserer de trege spørringene!

Gratis å komme i gang

Lær deg TypeScript med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
20
Leksjoner
76

Ofte stilte spørsmål

Er leksjonen «Overvåking av databaseytelse» gratis?

Ja – hele teksten i «Overvåking av databaseytelse» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av NestJS-API-er for virksomhetsbackend-kurset, kan du oppgradere til CoddyKit PRO. Kurset i NestJS-API-er for virksomhetsbackend inneholder totalt 6 leksjoner.

Hva lærer jeg i «Overvåking av databaseytelse»?

Bruk Supabase-verktøy og PostgreSQL-funksjoner til å overvåke databaseytelsen, identifisere flaskehalser og følge viktige måltall Du øver på NestJS-API-er for virksomhetsbackend med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med NestJS-API-er for virksomhetsbackend?

Ingen tidligere erfaring er nødvendig. NestJS-API-er for virksomhetsbackend på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 2 av 6.

Hvor lang tid tar leksjonen «Overvåking av databaseytelse»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne NestJS-API-er for virksomhetsbackend-leksjonen?

Ja. Alle NestJS-API-er for virksomhetsbackend-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Bufringsstrategier (Redis)
  2. Overvåking av databaseytelse
  3. Lastbalansering og proxyer
  4. Strategier for spørringsoptimalisering
  5. Serverless-distribusjon
  6. Skalering av Supabase-prosjektet
← Tilbake til NestJS-API-er for virksomhetsbackend