Databaser handler udelukkende om forespørgsler. Du gemmer dine data i dem og så skal du kunne hente dem på en eller anden måde. Her kommer forespørgsler – du skriver dem på et eller andet sprog, struktureret eller ej, på den måde definerer du hvilke data du vil hente. Ideelt set ville disse forespørgsler være hurtige, trods alt ønsker vi ikke at vente på vores data. Der er mange værktøjer, der lader dig forstå, hvordan dine forespørgsler opfører sig, og hvordan de klarer sig. I dette blogindlæg vil vi sammenligne pgDash og ClusterControl. I begge tilfælde er forespørgselsydeevne kun en del af funktionaliteten. Uden yderligere grund, lad os tage et kig på dem.
Hvad er pgDash?
pgDash er et værktøj dedikeret til overvågning af PostgreSQL, og overvågning af forespørgselsydeevnen er en af de tilgængelige funktioner.
pgDash kræver pg_stat_statements for at få dataene. Det er muligt at vise forespørgsler pr. database. Du kan definere, hvilke kolonner der skal være synlige (som standard vises nogle af dem ikke, for at gøre dataene nemmere at læse). Du kan se flere typer data som udførelsestid (gennemsnit, maks., min., total), men også information om midlertidige blokeringer, rækker, der tilgås, diskadgang og bufferhit. Dette giver et godt indblik i, hvordan en given forespørgsel klarer sig, og hvad der kan være årsagen til, at den ikke fungerer på en effektiv måde. Du kan sortere dataene ved at bruge en hvilken som helst kolonne, der leder efter forespørgsler, der for eksempel er de langsomste, eller som skriver de mest midlertidige blokke.
Hvis det er nødvendigt, kan du slå forespørgsler op, der er udført i et defineret tidsvindue.
Granulariteten her er et minut.
For hver forespørgsel på listen kan du klikke og se mere detaljeret statistik.
Du kan se den nøjagtige forespørgsel, nogle data på den (diskadgang, delt bufferadgang, midlertidig blokering af adgang). Det er også muligt at aktivere test og lagring af eksekveringsplanen for forespørgslerne. Endelig kan du se graferne, der viser, hvordan ydelsen af forespørgslen ændrede sig over tid.
Samlet set giver pgDash et godt indblik i forespørgselsydeevnemålingerne i PostgreSQL.
ClusterControl PostgreSQL-forespørgselsovervågning og -styring
ClusterControl kommer med Query Monitor, som er beregnet til at give brugerne indsigt i udførelsen af deres forespørgsler. Query Monitor kan bruges til PostgreSQL, men også til MySQL og Galera Cluster.
ClusterControl viser data samlet på tværs af alle databaser og værter i klyngen. Listen over forespørgsler indeholder oplysninger om præstationsrelaterede metrics. Antal forekomster, undersøgte rækker, midlertidige tabeller, maksimal, gennemsnitlig og samlet udførelsestid. Listen kan sorteres ved hjælp af nogle af kolonnerne (forekomster, maks., gennemsnit, standardafvigelse og samlet udførelsestid).
Hver forespørgsel kan klikkes på, den viser fuld forespørgselstekst, noget ekstra detaljer og de generelle optimeringstip.
ClusterControl leveres også med modulet Query Outliers.
Hvis der er nogen forespørgsler, der afviger fra den gennemsnitlige ydeevne for den pågældende forespørgsel type, vil de blive vist i dette afsnit, hvilket giver brugeren mulighed for bedre at forstå, hvilke forespørgsler der opfører sig inkonsekvent og forsøge at finde årsagen til dette.
PostgreSQL tabel- og indeksmålinger
Uden over data, der er direkte relateret til forespørgselsydeevnen, giver begge værktøjer information om andre interne elementer, der kan påvirke forespørgselsydeevnen.
pgDash har en "Værktøjer"-sektion, hvor du kan indsamle oplysninger om indekser, tabelstørrelse og bloat:
Lignende data er tilgængelige i ClusterControl, i Query Statistics:
Det er muligt at tjekke I/O-statistikken for tabel og indekser, tabel- og indeksbloat, ubrugte eller duplikerede indekser. Du kan også kontrollere, hvilke tabeller der er mere tilbøjelige til at få adgang til ved hjælp af indeks- eller sekventielle scanninger. Du kan også tjekke størrelsen af de største tabeller og databaser.
Konklusion
Vi håber, at denne korte blog giver dig indsigt i, hvordan ClusterControl kan sammenlignes med pgDash i funktioner relateret til forespørgselsydeevne. Husk, at ClusterControl ikke kun er beregnet til at hjælpe dig med ydeevneovervågning, men også til at opbygge og implementere HA-stacks til flere Open Source-databaser, udføre konfigurationsstyring, definere og udføre backup-planer og mange flere funktioner. Hvis du er interesseret i ClusterControl, kan du downloade det gratis.