PostgreSQL Wartungsstrategien



Ähnliche Dokumente
Grundlagen der PostgreSQL Administration

Performance Probleme aufspüren

PostgreSQL - Troubleshooting

ANFRAGEOPTIMIERUNG IN POSTGRESQL

Urs Meier Art der Info Technical Info (Februar 2002) Aus unserer Projekterfahrung und Forschung

Leseprobe: SQL mit MySQL - Band 4 Kompendium mit Online-Übungs-DB. Kompendium zur schnellen Kurzinformation der Datenbanksprache SQL/MySQL 5.

6. Sichten, Integrität und Zugriffskontrolle. Vorlesung "Informa=onssysteme" Sommersemester 2015

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER

Bibliografische Informationen digitalisiert durch

Nachtrag: Farben. Farbblindheit. (Light und Bartlein 2004)

MIN oder MAX Bildung per B*Tree Index Hint

Indexing und Performance Tuning

Aktuelle Entwicklungen

Partitionieren über Rechnergrenzen hinweg

Naxtron GmbH Schlosstalstrasse Winterthur. Subject. New Features Oracle 9i Tuning. Edo Bezemer. Author

DB2 Codepage Umstellung

Cassandra Query Language (CQL)

MySQL: Einfaches Rechnen.

Tuning von PostGIS mit Read- Only-Daten von OpenStreetMap

Beispiel 1: Filmdatenbank

Mengenvergleiche: Alle Konten außer das, mit dem größten Saldo.

Dipl. Inf. Eric Winter. PostgreSQLals HugeData Storage Ein Erfahrungsbericht

Datenbanktechnologie mit praktischen Übungen in MySQL und PHP

SQL für Trolle. mag.e. Dienstag, Qt-Seminar

PostgreSQL Ein Überblick

Oracle 9i Einführung Performance Tuning

MySQL 5.1. Kristian Köhntopp

Wie profitiert SAP MaxDB von SSD Technologie?

Datenbank- und Informationssysteme. Lösungsvorschläge zu Übungsblatt 2. Sommersemester CREATE DOMAIN KennzeichenDomain AS VARCHAR(9);

IV. Datenbankmanagement

Handbuch organice SQL-Reportgenerator

Übung Datenbanken in der Praxis. Datenmodifikation mit SQL

Dynamisches SQL. Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München

desk.modul : WaWi- Export

Fachhochschule Kaiserslautern Labor Datenbanken mit MySQL SS2006 Versuch 1

105.3 SQL-Datenverwaltung

SQL Tutorial. SQL - Tutorial SS 06. Hubert Baumgartner. INSO - Industrial Software

Views in SQL. 2 Anlegen und Verwenden von Views 2

MySQL Cluster und MySQL Proxy

Dieser Foliensatz darf frei verwendet werden unter der Bedingung, dass diese Titelfolie nicht entfernt wird.

Universität Augsburg, Institut für Informatik WS 2006/2007 Dr. W.-T. Balke 27. Nov M. Endres, A. Huhn, T. Preisinger Lösungsblatt 5

Shopware 4.1 Kategorien

Die PostgreSQL Performance Schnelldiagnose

SQL (Structured Query Language) Schemata Datentypen

Einführung in SQL. 1. Grundlagen SQL. Structured Query Language. Viele Dialekte. Unterteilung: i. DDL (Data Definition Language)

IBM Informix Tuning und Monitoring

SQL. Fortgeschrittene Konzepte Auszug

MySQL Performance Tuning für Entwickler

SQL structured query language

Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin

Hands-on für UI5-Anwendung auf HANA

Löschen eines erkannten aber noch nicht konfigurierten Laufwerks

PostgreSQL optimieren

Die Idee der Recovery Area: Sie enthält bei Beschädiging der Database Area alles, was für ein erfolgreiches Recovery gebraucht wird

10.6 Programmier-Exits für Workitems

PostgreSQL optimieren

Oracle 9i Einführung Performance Tuning

Performance Tuning

mit Musterlösungen Prof. Dr. Gerd Stumme, Dipl.-Inform. Christoph Schmitz 11. Juni 2007

MIPS-Aufrüstung vermeiden. BMC DB2-Mainview Usertreffen 2012 Hubertus Beucke

Explain verstehen. Hans-Jürgen Schönig.

DOAG Demo Kino: Advisors, Monitoring Werkzeuge in der Datenbank Ulrike Schwinn Business Unit Database Oracle Deutschland B.V.

Row Chaining & Row Migration Alte Bekannte - immer noch aktuell! DOAG 2014 Datenbank Dierk Lenz

Erstellen einer Datenbank. Datenbankabfragen

Welche GC-Strategie ist die richtige?

Foreign Data Wrappers

PostgreSQL in großen Installationen

Oracle 12c: Neuerungen in PL/SQL. Roman Pyro DOAG 2014 Konferenz

Ein reales Testumfeld bereitstellen - basierend auf einer Produktionsdatenbank (ohne eine neue Kopie zu erstellen)

Tag 4 Inhaltsverzeichnis

SQL und MySQL. Kristian Köhntopp

Inhaltsverzeichnis. Lutz Fröhlich. PostgreSQL 9. Praxisbuch für Administratoren und Entwickler. ISBN (Buch):

Installation MySQL Replikationsserver

SQL: statische Integrität

if ($rows == 0) { save_new(); } }

Der SAS DataStep und die Prozedur SQL Cellent Finance Solutions GmbH Seite: 1

SQL-Optimizer und Optimierung bei DB2

SQL. DDL (Data Definition Language) Befehle und DML(Data Manipulation Language)

Labor 3 - Datenbank mit MySQL

Seminar 2. SQL - DML(Data Manipulation Language) und. DDL(Data Definition Language) Befehle.

Übersicht über Datenbanken

MySQL Replikation. Erkan Yanar linsenraum.de linsenraum.de

PostgreSQL Administration

SQL. strukturierte Datenbankabfragesprache eine Datenbanksprache zur. Structured Query Language:

Tanuki Service Wrapper 101. JVM Verwaltung mit der Community Edition. Alexander Pacnik Karlsruhe,

SQL-Befehlsliste. Vereinbarung über die Schreibweise

FO /5 Einspeisung BHKW und PV-Anlage dreiphasig

Datenbanksysteme I. Klausur zum Praktikum. Mehrere Professoren prüfen mit genau einem Beisitzer genau einen Studenten.

Automatisierung von Tabellen- und Index-Reorganisationen

Datenbankstatistiken im Griff mit DBMS_STATS. DOAG 2012 Konferenz + Ausstellung Nürnberg 21. November 2012

Sie sollen eine Datenbank für Befragungen mittels Online-Fragebögen zu unterschiedlichen Themen erstellen:

IT-Symposium Ralf Durben. Business Unit Datenbank. ORACLE Deutschland GmbH. 1

Transkript:

Jens Wilke PGConf.DE 11. November 2011

Wartungsstrategien Warum Wartung? Autovacuum Tuning Repairtools

Warum Wartung? Statistiken pg statistic ANALYZE MVCC (Multiversion Concurrency Control) Wiederverwendung von Speicherplatz gelöschter Zeilenversionen

Warum Wartung? MVCC (Multiversion Concurrency Control) INSERT INTO foo VALUES ( foo ),( bar ); xmin xmax col1 1 0 foo 1 0 bar DELETE FROM foo where col1 = bar ; xmin xmax col1 1 3 bar 1 0 foo

Warum Wartung? MVCC (Multiversion Concurrency Control) INSERT INTO foo VALUES ( foo ),( bar ); xmin xmax col1 1 0 foo 1 0 bar DELETE FROM foo where col1 = bar ; xmin xmax col1 1 3 bar 1 0 foo

Warum Wartung? MVCC (Multiversion Concurrency Control) INSERT INTO foo VALUES ( foo ),( bar ); xmin xmax col1 1 0 foo 1 0 bar DELETE FROM foo where col1 = bar ; xmin xmax col1 1 3 bar 1 0 foo

Warum Wartung? VACUUM Freespace Map Transaktionsnummernüberlauf Strategien zur Reduzierung von Vacuum TRUNCATE/Partitionierung Für massiv fragmentierte Tabellen oder Indexe ist Vacuum i.d.r. nicht ausreichend Table-Bloat Index-Bloat Monitoring check postgres.pl Bloat Check pgstattuple

Autovacuum Daemon Autovacuum/Autoanalyze regelmäßige/permanente Wartung tägliches manuelles Vacuum Analyze ist in vielen Fällen nicht ausreichend Autoanalyze Tuning ist bei kippenden Plänen notwendig Autovacuum Tuning ist erforderlich, wenn es nicht nachkommt oder wenn die Worker eine zu hohe Systemlast verursachen und meist nur bei größeren Tabellen sinnvoll. Problematik langlaufender Transaktionen Statistics collector und ANALYZE: pg stat user tables und pg class

Autovacuum Config Parameter postgresql.conf (defaults) track counts = on autovacuum = on maintenance work mem = 16MB autovacuum max workers = 3 autovacuum vacuum cost limit = 200 autovacuum vacuum cost delay = 20ms log autovacuum min duration = -1 autovacuum naptime = 1min

Autovacuum Parameter Storage Parameter (pg class.reloptions) und/oder postgresql.conf autovacuum enabled = on (Storage Parameter) default statistics target = 100 autovacuum vacuum scale factor = 0.2 autovacuum analyze scale factor = 0.1 autovacuum vacuum threshold = 50 autovacuum analyze threshold = 50 Storage Parameter ändern ALTER TABLE... SET (autovacuum analyze scale factor=0.05);

Autovacuum Tuning autovacuum UPDATES + DELETES >= reltuples * autovacuum vacuum scale factor + autovacuum vacuum threshold autoanalyze INSERTS + UPDATES + DELETES >= reltuples * autovacuum analyze scale factor + autovacuum analyze threshold

Autovacuum Tuning Statistik SELECT s.*, c.reloptions FROM pg stat user tables s JOIN pg class c ON s.relid = c.oid ORDER BY n live tup DESC; -[ RECORD 1 ]-----+------------------------------------------------- schemaname foo relname bar [...] n tup ins 4826182 n tup upd 5510336 n tup del 1962041 n tup hot upd 1679879 n live tup 12566817 n dead tup 48725 last vacuum last autovacuum 2011-10-10 19:40:55.15632+02 last analyze last autoanalyze 2011-10-10 21:22:51.942734+02 reloptions {autovacuum vacuum scale factor=0.1, autovacuum analyze scale factor=0.05}

Autovacuum Logging 2011-10-24 17:52:08 CEST LOG: automatic vacuum of table foo.public.bar : index scans: 1 pages: 0 removed, 27452 remain tuples: 27126 removed, 460599 remain system usage: CPU 2.37s/5.68u sec elapsed 504.47 sec 2011-10-25 02:52:20 CEST LOG: automatic vacuum of table foo.public.bar : index scans: 1 pages: 0 removed, 27452 remain tuples: 942 removed, 455541 remain system usage: CPU 1.16s/3.09u sec elapsed 373.97 sec

Repairtools für die Reduktion massiver Bloat lockende Tools und/oder mit Downtime dump und restore CLUSTER vs VACUUM FULL 8.4/9.0 ALTER TABLE foo ALTER int col SET DATA TYPE integer; REINDEX nicht oder marginal lockende Tools ohne Downtime CREATE INDEX CONCURRENTLY compact table (ctid based) pg reorg/trigger based Replication