Как узнать размер столбца таблицы postgres - PullRequest
0 голосов
/ 30 мая 2018

У меня есть запрос, который работает в цикле и каждый раз запрашивает 30K строк из БД.Это хорошо работает для определенного типа данных (давайте назовем группу как компания), поэтому данные о компаниях A и B сравнительно малы в таблице, но для компании C их размер очень велик.для 30000 строк размер компании A и B составляет около 24 МБ, а для компании C - 700 МБ.Из-за этого сценария система начала исчерпывать память для компании C.

Теперь я оставил уменьшение размера выборки с 30K до 5K, так что компания C также будет извлечена без каких-либо проблем.

Я хочу, чтобы это происходило динамически, потому что для компании A и B, если я уменьшу до 5K, трафик БД может резко возрасти там, где это требуется только для компании C.

Так что мне нужно разработать кодкоторый может знать максимальный размер столбца компании A, B, C (BLOB), поэтому исходя из размера, я могу выбрать 30K или 5K в качестве размера выборки.

Весь код находится в Java, Hibernate и Postgres

Ответы [ 2 ]

0 голосов
/ 06 июня 2018

Пример использования PostgreSQL:

SELECT table_name, pg_size_pretty(pg_relation_size(quote_ident(table_name)))
FROM information_schema.tables
WHERE table_schema = 'public'
ORDER BY 2

Не знаю, можете ли вы иметь определенный размер столбца, хотя

0 голосов
/ 06 июня 2018

Есть несколько способов узнать размер, например: pg_column_size, octet_length.Но в моем сценарии они неэффективны из-за количества времени, которое требуется.Поэтому я передумал:).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...