الاسم
ST_MemSize — تُعيد مقدار مساحة الذاكرة التي يشغلها الشكل الهندسي.
المختصر
integer ST_MemSize(geometry geomA);
الوصف
تُعيد مقدار مساحة الذاكرة (بالبايت) التي يشغلها الشكل الهندسي.
تُكمّل هذه الدالة دوال كائنات قاعدة البيانات المدمجة في PostgreSQL: pg_column_size وpg_size_pretty وpg_relation_size وpg_total_relation_size.
|
|
|
قد تُعيد pg_relation_size، التي تعطي حجم الجدول بالبايت، حجمًا أصغر من ST_MemSize. وذلك لأن pg_relation_size لا تضيف حصة جداول TOAST، والأشكال الهندسية الكبيرة تُخزَّن في جداول TOAST. pg_total_relation_size - تشمل الجدول وجداول TOAST والفهارس. تُعيد pg_column_size المساحة التي سيشغلها الشكل الهندسي في عمود مع مراعاة الضغط، لذا قد تكون أصغر من ST_MemSize |
تدعم هذه الدالة الأبعاد الثلاثية ولا تُسقط قيمة Z.
تدعم هذه الدالة الأقواس الدائرية (Circular Strings) والمنحنيات.
تدعم هذه الدالة الأسطح متعددة الوجوه (Polyhedral surfaces).
تدعم هذه الدالة المثلثات وأسطح الشبكات المثلثية غير المنتظمة (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