sql >> Database teknologi >  >> RDS >> Oracle

Sådan forstår du statistik over sporingsfiler i Oracle. Såsom CPU, forløbet tid, forespørgsel...osv

Den mindste enhed for dataadgang i Oracle Database er en blok. Ikke en række.

Hver blok kan gemme mange rækker.

Databasen kan få adgang til en blok i aktuel eller konsistent tilstand.

  • Aktuel =som blokken eksisterer "lige nu".
  • Konsistent =som den blokerede eksisterede på det tidspunkt, din forespørgsel startede.

Forespørgslen og de aktuelle kolonner rapporterer, hvor mange gange databasen har tilgået en blok i konsistent (forespørgsel) og aktuel tilstand.

Når du tilgår en blok, er den muligvis allerede i buffercachen (hukommelsen). Hvis det er tilfældet, er der ikke behov for diskadgang. Hvis ikke, skal den foretage en fysisk aflæsning (pr). Diskkolonnen er en optælling af de samlede fysiske læsninger.

Statistikken for hver linje i planen er tallene for den pågældende operation. Plus summen af ​​alle dens underordnede operationer.

Enkelt sagt behandler databasen planen ved at få adgang til det første barn først. Sender derefter rækkerne op til forælderen. Så alle de andre børn ops af den forælder i rækkefølge. Underordnede handlinger indrykkes fra deres overordnede i displayet.

Så databasen behandlede din forespørgsel sådan:

  1. Læs 2.000 rækker fra KUNDE. Dette krævede 749 konsistente blok-gets og 363 disklæsninger (cr- og pr-værdier på denne række). Dette tog 10.100 mikrosekunder.
  2. Læs 112.458 rækker fra BOOKING. Dette gjorde 8.203 konsistente læsninger og nul disklæsninger. Dette tog 337.595 mikrosekunder
  3. Forenede disse to tabeller ved hjælp af en hash-join. CR, PR, PW (fysiske skrivninger) og tidsværdier er summen af ​​operationerne under dette. Plus hvilket arbejde denne operation end gjorde. Så hashen join:
    • gjorde 8.952 - ( 749 + 8.203 ) =nul konsekvente læsninger
    • gjorde 363 - ( 363 + 0 ) =nul fysiske aflæsninger
    • tog 1.363.447 - ( 10.100 + 337.595 ) =1.015.752 mikrosekunder at udføre

Læg mærke til, at CR &PR-totalerne for hash-join matcher forespørgslen og disktotalerne i hentelinjen?

Optællingskolonnen angiver antallet af gange, den handling er sket. En hentning er et kald til databasen for at hente rækker. Så klienten ringede til databasen 7.499 gange. Hver gang den modtog loft ( 112.458 / 7.499 ) =15 rækker.

CPU er den samlede tid i sekunder, serverens processorer udførte dette trin. Forløbet er den samlede vægurs tid. Dette er CPU-tiden + eventuelt ekstra arbejde. Såsom disklæsninger, netværkstid osv.




  1. Hvordan importerer jeg moduler eller installerer udvidelser i Postgres?

  2. Fejl #2002 Kan ikke oprette forbindelse til lokal MySQL-server gennem socket '/Applications/MAMP/tmp/mysql/mysql.sock' (2)

  3. Sådan opretter du med vilje en langvarig MySQL-forespørgsel

  4. Inkonsekvent MySQL DATEDIFF-adfærd