2015-12-11 3 views

ответ

1

Нет функции, которая вычисляет размер строки, только функцию, которая вычисляет размер значения столбца. Таким образом, вы можете сделать что-то вроде этого:

select pg_column_size(column_1) + 
     pg_column_size(column_2) + 
     pg_column_size(column_3) as row_size 
from the_table; 

Это может быть автоматизирован с помощью динамического SQL и функции PL/PgSQL, если вам это нужно.

+0

Спасибо, но как я могу запустить этот запрос для всех строк в таблице. Помогите мне в предоставлении дианейного запроса.? –

+0

@DeepeshGoel: это будет работать для всех _rows_ в таблице, потому что у него нет предложения 'where' –

+0

Спасибо, человек! –

1

Функция для вычисления размера строки из Postgress строки таблицы что-то вроде этого

SELECT sum(pg_column_size(t.*)) as filesize, count(*) as filerow FROM TABLE_NAME as t 

заменить TABLE_NAME с именем таблицы; , чтобы добавить условие t.COLUMN_NAME = 'YOUR_VALUE'

+0

Ницца. Обратите внимание, что 'pg_column_size (t. *)' Можно упростить до 'pg_column_size (t)'. Это значение будет включать заголовок заголовка строки «overhead», поэтому, чтобы получить фактический размер данных, вам нужно вычесть 24: 'pg_column_size (t) - 24' –

Смежные вопросы