Poszukuję przewidywanego rozmiaru tabeli, określając typ kolumny i jej długość. Próbuję użyć do tego celu pg_column_size
.W jaki sposób pg_column_size może być mniejsza niż długość oktet_length?
Podczas testowania funkcji zdałem sobie sprawę, że z tą funkcją wydaje się być nie tak.
Wartość wyniku z pg_column_size(...)
jest czasami nawet mniejsza niż wartość zwracana z octet_length(...)
na tym samym ciągu.
W kolumnie znajdują się tylko cyfry.
postgres=# \d+ t5
Table "public.t5"
Column | Type | Modifiers | Storage | Stats target | Description
--------+-------------------+-----------+----------+--------------+-------------
c1 | character varying | | extended | |
Has OIDs: no
postgres=# select pg_column_size(c1), octet_length(c1) as octet from t5;
pg_column_size | octet
----------------+-------
2 | 1
704 | 700
101 | 7000
903 | 77000
(4 rows)
Czy to błąd? Czy istnieje ktoś z pewnym wzorem do obliczenia przewidywanego rozmiaru tabeli z typów kolumn i ich długości?
Dziękuję bardzo ... – KIM