STV_MemSize
Returns the length of the spatial object in bytes as an INTEGER.
Use this function to determine the optimal column width for your spatial data.
Behavior Type
Syntax
STV_MemSize( g )
Arguments
g |
Spatial object, value of type GEOMETRY or GEOGRAPHY |
Returns
INTEGER
Examples
The following example shows how you can optimize your table by sizing the GEOMETRY or GEOGRAPHY column to the maximum value returned by STV_MemSize:
=> CREATE TABLE mem_size_table (id int, geom geometry(800)); CREATE TABLE => COPY mem_size_table (id, gx filler LONG VARCHAR, geom as ST_GeomFromText(gx)) FROM STDIN DELIMITER '|'; Enter data to be copied followed by a newline. End with a backslash and a period on a line by itself. >>1|POINT(3 5) >>2|MULTILINESTRING((1 5, 2 4, 5 3, 6 6),(3 5, 3 7)) >>3|MULTIPOLYGON(((2 6, 2 9, 6 9, 7 7, 4 6, 2 6)),((0 0, 0 5, 1 0, 0 0)),((0 2, 2 5, 4 5, 0 2))) >>\. => SELECT max(STV_MemSize(geom)) FROM mem_size_table; max ----- 336 (1 row) => CREATE TABLE production_table(id int, geom geometry(336)); CREATE TABLE => INSERT INTO production_table SELECT * FROM mem_size_table; OUTPUT -------- 3 (1 row) => DROP mem_size_table; DROP TABLE