PostgreSQL:n suorituskyky ja kyselyjen optimointi · Oppitunti

pg_stat_statementsin ja pg_buffercachen käyttö

Hyödyntäkää tehokkaita laajennuksia, kuten `pg_stat_statements` ja `pg_buffercache`, saadaksenne perusteellista tietoa suorituskyvystä.

Oppitunti 1/411 vaihetta

pg_stat_statementsin ja pg_buffercachen käyttö on ilmainen PostgreSQL:n suorituskyky ja kyselyjen optimointi-oppitunti CoddyKitissä. Tämä on oppitunti 1/4. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu PostgreSQL:n suorituskyky ja kyselyjen optimointi-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. PostgreSQL:n suorituskyky ja kyselyjen optimointi-kurssilla on yhteensä 4 oppituntia.

PostgreSQL-laajennukset: lisätehoa

PostgreSQL on erittäin tehokas, ja sen toiminnallisuutta voidaan laajentaa entisestään laajennusten avulla.

Laajennukset ovat moduuleja, jotka lisäävät tietokantaan uusia funktioita, tietotyyppejä, operaattoreita ja muuta. Ne ovat kuin liitännäisiä, jotka parantavat tietokannan ominaisuuksia ilman, että sen ydinkoodia tarvitsee muuttaa.

Tässä oppitunnissa tutustumme kahteen tärkeään suorituskyvyn seurantaan tarkoitettuun laajennukseen: pg_stat_statements ja pg_buffercache.

Tutustuminen pg_stat_statements-laajennukseen: kyselyprofiler

pg_stat_statements on korvaamaton työkalu tietokannan työkuorman ymmärtämiseen. Se seuraa kaikkien palvelimen suorittamien SQL-lauseiden suoritustilastoja.

Tämän laajennuksen avulla voitte tunnistaa seuraavat asiat:

  • Mitkä kyselyt suoritetaan useimmin.
  • Mitkä kyselyt kuluttavat eniten kokonaisaikaa.
  • Kyselyt, joiden keskimääräinen suoritusaika on pitkä.
  • Kyselyt, jotka lukevat tai kirjoittavat paljon levylohkoja.

Se on ensisijainen työkalunne kyselytason suorituskyvyn pullonkaulojen paikantamiseen.

pg_stat_statements-laajennuksen aktivointi

Jotta voitte käyttää pg_stat_statements-laajennusta, se on ensin otettava käyttöön PostgreSQL:n asetuksissa.

1. Muokatkaa postgresql.conf-tiedostoa ja lisätkää pg_stat_statements parametrin shared_preload_libraries arvoksi. Esimerkiksi shared_preload_libraries = 'pg_stat_statements'.

2. Käynnistäkää PostgreSQL-palvelin uudelleen, jotta muutos tulee voimaan.

3. Yhdistäkää lopuksi tietokantaan ja luokaa laajennus:

CREATE EXTENSION pg_stat_statements;

pg_stat_statements-tulosteen tulkitseminen

Kun pg_stat_statements on otettu käyttöön, se kerää tietoja näkymään nimeltä pg_stat_statements. Tässä on joitakin keskeisiä sarakkeita, joita tarkistatte usein:

  • query: Normalisoitu SQL-lause.
  • calls: Kyselyn suorituskertojen määrä.
  • total_time: Tämän kyselyn suorittamiseen käytetty kokonaisaika (millisekunteina).
  • mean_time: Keskimääräinen suoritusaika kutsua kohden.
  • rows: Palautettujen tai käsiteltyjen rivien kokonaismäärä.
  • shared_blks_hit / shared_blks_read: Välimuistiosumat verrattuna levyltä lukemiseen.

Lajittelu sarakkeen total_time mukaan auttaa löytämään eniten resursseja kokonaisuutena kuluttavat kyselyt.

Käytännön esimerkki: tärkeimmät kyselyt

Katsotaan, miten löydetään viisi kyselyä, jotka ovat kuluttaneet eniten kokonaisaikaa suoritukseen. Tämä kysely auttaa priorisoimaan optimointityöt.

Sarake hit_percent antaa käsityksen siitä, kuinka tehokkaasti PostgreSQL:n puskurivälimuisti toimii kyseisen kyselyn kohdalla.

SELECT
    query,
    calls,
    total_time,
    mean_time,
    rows,
    100.0 * shared_blks_hit / (shared_blks_hit + shared_blks_read + 1) AS hit_percent
FROM
    pg_stat_statements
ORDER BY
    total_time DESC
LIMIT 5;

Tutustuminen pg_buffercache-laajennukseen: muistin tarkastelu

Kun pg_stat_statements näyttää kyselyiden suorituskyvyn, pg_buffercache antaa tietoa PostgreSQL:n jaetusta puskurivälimuistista. Se on muistialue, johon PostgreSQL tallentaa usein käytettyjä tietolohkoja.

Puskurivälimuistin sisällön ymmärtäminen auttaa selvittämään seuraavat asiat:

  • Mitkä taulut tai indeksit ovat aktiivisimmassa käytössä.
  • Onko shared_buffers-asetus riittävä.
  • Hyötyvätkö kyselyt välimuistiin tallennetuista tiedoista vai joutuvatko ne lukemaan levyltä.

pg_buffercache-laajennuksen aktivointi

pg_buffercache-laajennuksen käyttöönotto on yksinkertaisempaa kuin pg_stat_statements-laajennuksen. Se ei yleensä edellytä parametrin shared_preload_libraries muuttamista tai palvelimen uudelleenkäynnistämistä.

Teidän tarvitsee vain yhdistää tietokantaan ja luoda laajennus:

CREATE EXTENSION pg_buffercache;

Jaetun puskurivälimuistin tarkasteleminen

Kun laajennus on luotu, voitte tehdä kyselyitä pg_buffercache-näkymään nähdäksenne, mitkä relaatiot (taulut tai indeksit) käyttävät eniten puskuripaikkoja. Kukin puskuri vastaa yleensä 8 kilotavun datalohkoa.

Tämä kysely näyttää välimuistissa käyttämiensä puskuripaikkojen määrän perusteella viisi eniten puskuripaikkoja käyttävää relaatiota:

SELECT
    c.relname AS relation_name,
    count(*) AS buffers_in_cache
FROM
    pg_buffercache b
JOIN
    pg_class c ON b.relfilenode = c.relfilenode
JOIN
    pg_database d ON b.reldatabase = d.oid AND d.datname = current_database()
GROUP BY
    c.relname
ORDER BY
    buffers_in_cache DESC
LIMIT 5;

Välimuistin tehokkuuden tulkitseminen

Jos taulukko tai indeksi näkyy jatkuvasti pg_buffercache-tulosteen kärjessä ja käyttää paljon puskuripaikkoja, kyseisiä tietoja käytetään usein ja ne säilytetään muistissa.

Tämä on yleensä hyvä merkki, sillä muistista lukeminen on paljon nopeampaa kuin levyltä lukeminen ja kirjoittaminen. pg_stat_statements-näkymän suuri hit_percent-arvo korreloi usein sen kanssa, että tiedot ovat puskurivälimuistissa.

Näiden tietojen avulla voitte arvioida, olisiko shared_buffers-arvon suurentamisesta tai vähemmän tietoja käsittelevien kyselyiden optimoinnista hyötyä.

Pikatarkistus: valvontatyökalut

Mitkä seuraavista väitteistä pitävät paikkansa pg_stat_statements- ja pg_buffercache-laajennuksista?

Kertaus: laajennusten syvällinen tarkastelu

Hienoa työtä! Olette oppineet hyödyntämään kahta tehokasta PostgreSQL-laajennusta suorituskyvyn valvontaan:

  • pg_stat_statements: tärkeä työkalu SQL-kyselyiden profilointiin, hitaasti suoritettavien tai usein suoritettavien lauseiden tunnistamiseen sekä niiden resurssienkulutuksen ymmärtämiseen.
  • pg_buffercache: tarjoaa näkyvyyden jaettuun puskurivälimuistiin ja auttaa ymmärtämään, mitkä tiedot ovat aktiivisesti muistissa ja kuinka tehokkaasti välimuisti toimii.

Yhdessä nämä laajennukset tarjoavat syvällistä tietoa tietokannan työkuormasta ja muistin käytöstä ja ohjaavat optimointia.

Aloita maksutta

Opi SQL tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
22
Oppitunnit
88

Usein kysytyt kysymykset

Onko oppitunti ”pg_stat_statementsin ja pg_buffercachen käyttö” ilmainen?

Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa PostgreSQL:n suorituskyky ja kyselyjen optimointi-oppimispolun 3 oppituntia, myös oppitunnin “pg_stat_statementsin ja pg_buffercachen käyttö”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. PostgreSQL:n suorituskyky ja kyselyjen optimointi-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”pg_stat_statementsin ja pg_buffercachen käyttö”?

Hyödyntäkää tehokkaita laajennuksia, kuten `pg_stat_statements` ja `pg_buffercache`, saadaksenne perusteellista tietoa suorituskyvystä. Harjoittelet PostgreSQL:n suorituskyky ja kyselyjen optimointi-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni PostgreSQL:n suorituskyky ja kyselyjen optimointi-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin PostgreSQL:n suorituskyky ja kyselyjen optimointi-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 1/4.

Kuinka kauan ”pg_stat_statementsin ja pg_buffercachen käyttö”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä PostgreSQL:n suorituskyky ja kyselyjen optimointi-oppitunnilla?

Kyllä. Jokainen PostgreSQL:n suorituskyky ja kyselyjen optimointi-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. pg_stat_statementsin ja pg_buffercachen käyttö
  2. Lokituksen määritys analyysiä varten
  3. Integrointi ulkoisiin valvontatyökaluihin
  4. Aktiivisen toiminnan diagnosointi pg_stat_activityllä
← Takaisin: PostgreSQL:n suorituskyky ja kyselyjen optimointi