Namn

ST_MemSize — Returnerar hur mycket minnesutrymme en geometri tar upp.

Synopsis

integer ST_MemSize(geometry geomA);

Beskrivning

Returnerar den mängd minnesutrymme (i byte) som geometrin tar upp.

Detta kompletterar PostgreSQL: s inbyggda databasobjektfunktioner pg_column_size, pg_size_pretty, pg_relation_size, pg_total_relation_size.

[Notera]

pg_relation_size som ger bytestorleken för en tabell kan returnera en bytestorlek som är lägre än ST_MemSize. Detta beror på att pg_relation_size inte lägger till bidrag från toasted-tabeller och att stora geometrier lagras i TOAST-tabeller.

pg_total_relation_size - inkluderar tabellen, de toastade tabellerna och indexen.

pg_column_size returnerar hur mycket utrymme en geometri skulle ta i en kolumn med hänsyn till komprimering, så det kan vara lägre än ST_MemSize

Denna funktion stöder 3d och kommer inte att tappa z-index.

Denna metod stöder cirkulära strängar och kurvor.

Denna funktion stöder polyedriska ytor.

Denna funktion stöder trianglar och triangulerade oregelbundna nätverksytor (TIN).

Ändrad: 2.2.0 namnet ändrat till ST_MemSize för att följa namngivningskonventionen.

Exempel

Compare the memory used by all geometries in a Massachusetts town dataset with the subset for Boston.

Code
SELECT pg_size_pretty(sum(ST_MemSize(geom))) AS totgeomsum,
       pg_size_pretty(sum(CASE WHEN town = 'BOSTON' THEN ST_MemSize(geom) ELSE 0 END)) AS bossum,
       cast(
           sum(CASE WHEN town = 'BOSTON' THEN ST_MemSize(geom) ELSE 0 END) * 100.0
           / sum(ST_MemSize(geom)) AS numeric(10, 2)
       ) AS perbos
FROM towns;
Rasterutdata
totgeomsum | bossum | perbos
------------+--------+--------
 1522 kB    | 30 kB  |   1.99
(1 row)

Return the memory size of a CircularString in bytes.

Code
SELECT ST_MemSize('CIRCULARSTRING(220268 150415,220227 150505,220227 150406)'::geometry);
Rasterutdata
st_memsize
------------
         80
(1 row)

Calculate the percentage of a table's total size used by geometry data.

Code
SELECT pg_total_relation_size('public.neighborhoods') AS fulltable_size,
       sum(ST_MemSize(geom)) AS geomsize,
       sum(ST_MemSize(geom)) * 100.0
           / pg_total_relation_size('public.neighborhoods') AS pergeom
FROM neighborhoods;
Rasterutdata
fulltable_size | geomsize |         pergeom
----------------+----------+--------------------------
         262144 |    96238 | 36.71188354492187500000
(1 row)