Мониторинг производительности

Wireless
Дата: 09.06.2004 15:54:59
Кто какие выборки делает из pg_statio_user_indexes, pg_statio_user_tables.

Я для себя, например, иногда делаю выборку

-- показывает частоиспользуемые индексы, в порядке убывания

-- эффективности (отношение hit/read)
select indexrelname, idx_blks_read, idx_blks_hit, (idx_blks_hit::numeric/idx_blks_read)::numeric(10,3) as K from pg_statio_user_indexes where idx_blks_read>1000 order by 4 desc;

В представлении pg_statio_user_tables оч.много столбцов...
В документации есть только это:
pgsql_docs
pg_statio_user_tables
For each table in the current database, the total
number of disk blocks read from that table, the number of buffer hits,
the numbers of disk blocks read and buffer hits in all the indexes of
that table, the numbers of disk blocks read and buffer hits from the
table's auxiliary TOAST table (if any), and the numbers of disk blocks
read and buffer hits for the TOAST table's index.


Собственно, что есть heap_blks_read / heap_blks_hit ,
idx_blks_read/idx_blks_hit,
toast_blks_read/toast_blks_hit,
tidx_blks_read/tidx_blks_hit ?

TOAST насколько я помню используется в PG для хранения
"больших" столбцов в отдельной таблице. Как я понимаю,
в большинстве случаев нет смысла смотреть отдельно статистику
по TOAST и не-TOAST подтаблицам, так??? Если нет, то нужно
будет просто просуммировать данные из pg_statio_user_tables
соотв-ие toast+не-toast?
Wireless
Дата: 09.06.2004 16:02:10
.... В продолжение темы производительности и TOAST в частности.

В PG в одной из последних версий (не помню в 7.2 или 7.3) появилась
возможность явно указывать где будут храниться данные - в основной
таблице или в toast:
ALTER TABLE ALTER column SET STORAGE { PLAIN | EXTERNAL | EXTENDED | MAIN }

Описание
SET STORAGE
This form sets the storage mode for a column. This controls
whether this column is held inline or in a supplementary table,
and whether the data should be compressed or not. PLAIN must be
used for fixed-length values such as integer and is inline,
uncompressed. MAIN is for inline, compressible data. EXTERNAL
is for external, uncompressed data, and EXTENDED is for
external, compressed data. EXTENDED is the default for all data
types that support it. The use of EXTERNAL will, for example,
make substring operations on a text column faster, at the
penalty of increased storage space.


Есть у кого-нибудь реальный опыт изменения формата хранения?
Что означает компрессия, кто-нибудь пробовал ее изменять?
Вообще, насколько сильно SET STORAGE может повлиять на производительность (интересует в первую очередь практический опыт).