Databases gaan allemaal over zoekopdrachten. Je slaat er je gegevens in op en dan moet je ze op een of andere manier kunnen terugvinden. Hier komen vragen - u schrijft ze in een of andere taal, gestructureerd of niet, op die manier definieert u welke gegevens u wilt ophalen. Idealiter zouden die zoekopdrachten snel zijn, we willen immers niet wachten op onze gegevens. Er zijn veel tools waarmee u inzicht krijgt in hoe uw zoekopdrachten zich gedragen en hoe ze presteren. In deze blogpost vergelijken we pgDash en ClusterControl. In beide gevallen zijn queryprestaties slechts een deel van de functionaliteit. Laten we ze zonder verdere uitleg eens bekijken.
Wat is pgDash?
pgDash is een tool die speciaal is bedoeld voor het bewaken van PostgreSQL en het bewaken van de queryprestaties is een van de beschikbare functionaliteiten.
pgDash vereist pg_stat_statements om de gegevens op te halen. Het is mogelijk om queries per database te tonen. U kunt definiëren welke kolommen zichtbaar moeten zijn (sommige worden standaard niet weergegeven om de gegevens beter leesbaar te maken). U kunt meerdere soorten gegevens zien, zoals uitvoeringstijd (gemiddelde, max, min, totaal), maar ook informatie over tijdelijke blokken, rijen die zijn geopend, schijftoegang en bufferhit. Dit zorgt voor een mooi inzicht in hoe een bepaalde query presteert en wat de reden kan zijn waarom deze niet op een efficiënte manier presteert. U kunt de gegevens sorteren met behulp van elke kolom op zoek naar query's die bijvoorbeeld de langzaamste zijn of die de meest tijdelijke blokken schrijven.
Indien nodig kunt u zoekopdrachten opzoeken die in een bepaald tijdvenster zijn uitgevoerd.
De granulariteit hier is één minuut.
Voor elke zoekopdracht in de lijst kunt u klikken en meer gedetailleerde statistieken bekijken.
U kunt de exacte zoekopdracht zien, enkele gegevens erop (schijftoegang, gedeelde buffertoegang, tijdelijke blokkering van toegang). Het is ook mogelijk om het uitvoeren van het uitvoeringsplan voor de query's te testen en op te slaan. Eindelijk kunt u de grafieken zien die laten zien hoe de prestaties van de zoekopdracht in de tijd zijn veranderd.
Over het algemeen geeft pgDash een goed inzicht in de prestatiestatistieken van zoekopdrachten in PostgreSQL.
ClusterControl PostgreSQL-querybewaking en -beheer
ClusterControl wordt geleverd met Query Monitor die bedoeld is om gebruikers inzicht te geven in de prestaties van hun zoekopdrachten. Query Monitor kan worden gebruikt voor PostgreSQL maar ook voor MySQL en Galera Cluster.
ClusterControl toont gegevens die zijn verzameld over alle databases en hosts in het cluster. De lijst met query's bevat informatie over prestatiegerelateerde statistieken. Aantal gebeurtenissen, onderzochte rijen, tijdelijke tabellen, maximale, gemiddelde en totale uitvoeringstijd. De lijst kan worden gesorteerd met behulp van enkele kolommen (voorvallen, max, gemiddelde, standaarddeviatie en totale uitvoeringstijd).
Elke zoekopdracht kan worden aangeklikt, deze toont de volledige tekst van de zoekopdracht, sommige extra details en de algemene optimalisatietips.
ClusterControl wordt ook geleverd met de module Query Outliers.
Als er zoekopdrachten zijn die afwijken van de gemiddelde prestatie van die specifieke zoekopdracht type, worden ze in dit gedeelte weergegeven, zodat de gebruiker beter begrijpt welke zoekopdrachten zich inconsistent gedragen en de oorzaak hiervan kan achterhalen.
PostgreSQL-tabel en indexstatistieken
Naast gegevens die rechtstreeks verband houden met de queryprestaties, bieden beide hulpprogramma's informatie over andere interne elementen die de queryprestaties kunnen beïnvloeden.
pgDash heeft een sectie "Tools" waarin u informatie kunt verzamelen over indexen, tabelgrootte en bloat:
Vergelijkbare gegevens zijn beschikbaar in ClusterControl, in Querystatistieken:
Het is mogelijk om de I/O-statistieken voor tabellen en indexen te controleren, tabel- en indexbloat, ongebruikte of gedupliceerde indexen. U kunt ook controleren welke tabellen het meest waarschijnlijk worden geopend met behulp van index- of sequentiële scans. U kunt ook de grootte van de grootste tabellen en databases controleren.
Conclusie
We hopen dat deze korte blog u inzicht geeft in hoe ClusterControl zich verhoudt tot pgDash in functies die verband houden met queryprestaties. Houd er rekening mee dat ClusterControl niet alleen bedoeld is om u te helpen met prestatiebewaking, maar ook om HA-stacks voor meerdere Open Source-databases te bouwen en te implementeren, het configuratiebeheer uit te voeren, back-upschema's te definiëren en uit te voeren en nog veel meer functies. Als u geïnteresseerd bent in ClusterControl, kunt u het gratis downloaden.