名稱

ST_MemSize — 傳回幾何物件所佔用的記憶體空間大小。

概要

integer ST_MemSize(geometry geomA);

描述

傳回幾何物件所佔用的記憶體空間大小(以位元組為單位)。

此函式補充了 PostgreSQL 內建的資料庫物件函式 pg_column_size、pg_size_pretty、pg_relation_size、pg_total_relation_size。

[Note]

pg_relation_size 傳回表格的位元組大小,可能小於 ST_MemSize。這是因為 pg_relation_size 不會加入 toasted table 的貢獻,而大型幾何物件會儲存在 TOAST 表格中。

pg_total_relation_size - 包含表格、toasted 表格和索引。

pg_column_size 會傳回幾何物件在考量壓縮情況下於欄位中會佔用多少空間,因此可能小於 ST_MemSize。

此函式支援 3D 幾何,且不會捨棄 z 索引。

此方法支援圓形字串和曲線。

此函式支援多面體曲面。

此函式支援三角形和不規則三角網格曲面 (TIN)。

變更:2.2.0 名稱變更為 ST_MemSize 以遵循命名慣例。

範例

--Return how much byte space Boston takes up  in our Mass data set
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)*1.00 /
		SUM(ST_MemSize(geom))*100 As numeric(10,2)) As perbos
FROM towns;

totgeomsum	bossum	perbos
----------	------	------
1522 kB		30 kB	1.99


SELECT ST_MemSize(ST_GeomFromText('CIRCULARSTRING(220268 150415,220227 150505,220227 150406)'));

---
73

--What percentage of our table is taken up by just the geometry
SELECT pg_total_relation_size('public.neighborhoods') As fulltable_size, sum(ST_MemSize(geom)) As geomsize,
sum(ST_MemSize(geom))*1.00/pg_total_relation_size('public.neighborhoods')*100 As pergeom
FROM neighborhoods;
fulltable_size geomsize  pergeom
------------------------------------------------
262144         96238	 36.71188354492187500000