it-swarm.com.de

Wie kann ich die Seitengröße einer Postgres-Datenbank ermitteln?

Gibt es eine Möglichkeit, die Seitengröße einer Postgres-Datenbank auszuwählen?

Ich weiß, dass die Seitengröße normalerweise 8 KB beträgt. Ich habe auch gelesen dieser E-Mail-Thread von 20 . Ich weiß nicht, dass pg_controldata funktioniert, da ich keinen Zugriff auf das Dateisystem habe, auf dem die Datenbank gehostet wird.

3
John

Wenn Sie keinen Zugriff auf pg_controldata ... haben.

Es gibt einen einfachen Weg:

test=# SELECT current_setting('block_size');
 current_setting
-----------------
 8192

Das Handbuch :

Die folgenden „Parameter“ sind schreibgeschützt und werden festgelegt, wenn PostgreSQL kompiliert oder installiert wird. [...]

block_size (integer)

Gibt die Größe eines Plattenblocks an. Sie wird beim Erstellen des Servers durch den Wert BLCKSZ bestimmt. Der Standardwert ist 8192 Byte. Die Bedeutung einiger Konfigurationsvariablen (wie shared_buffers ) wird durch block_size Beeinflusst. Siehe Abschnitt 19.4 für Informationen.

Verifizieren

Erstellen Sie eine Dummy-Tabelle mit nur einer kleinen Zeile: Eine Datenseite wird zugewiesen. Überprüfen Sie dann die Größe von die "Haupt" -Relation mit pg_relation_size()

test=# CREATE TEMP TABLE foo AS SELECT 1 AS id;
SELECT 1
test=# SELECT pg_size_pretty(pg_relation_size('pg_temp.foo'));
 pg_size_pretty
----------------
 8192 bytes
(1 row)

Die Seitengröße beträgt also 8 kB, was, wie Sie bereits erwähnt haben, kaum überraschend ist. Das Handbuch :

Jede Tabelle und jeder Index wird als Array von Seiten mit einer festen Größe gespeichert (normalerweise 8 kB, obwohl beim Kompilieren des Servers eine andere Seitengröße ausgewählt werden kann).

8