172 похожих чатов

Добрйы день, коллеги. А кто-нибудь сталкивался с дублями таблиц в

select * FROM pg_statio_user_tables?

8 ответов

16 просмотров
Dmitriy-S Автор вопроса

точно нет и relid одинаковый

Dmitriy S
точно нет и relid одинаковый

Покажите. Казалось бы, тогда там дубли в pg_class. Дело в том, что основа этого view примерно такая: SELECT c.oid AS relid, n.nspname AS schemaname, c.relname, t.relname AS toast_name FROM pg_class AS c LEFT JOIN pg_class AS t ON c.reltoastrelid = t.oid LEFT JOIN pg_namespace AS n ON n.oid = c.relnamespace;

Dmitriy-S Автор вопроса
Yaroslav Schekin
Покажите. Казалось бы, тогда там дубли в pg_class....

SELECT c.oid AS relid, n.nspname AS schemaname, c.relname, pg_stat_get_blocks_fetched(c.oid) - pg_stat_get_blocks_hit(c.oid) AS heap_blks_read, pg_stat_get_blocks_hit(c.oid) AS heap_blks_hit, sum(pg_stat_get_blocks_fetched(i.indexrelid) - pg_stat_get_blocks_hit(i.indexrelid))::bigint AS idx_blks_read, sum(pg_stat_get_blocks_hit(i.indexrelid))::bigint AS idx_blks_hit, pg_stat_get_blocks_fetched(t.oid) - pg_stat_get_blocks_hit(t.oid) AS toast_blks_read, pg_stat_get_blocks_hit(t.oid) AS toast_blks_hit, pg_stat_get_blocks_fetched(x.indexrelid) - pg_stat_get_blocks_hit(x.indexrelid) AS tidx_blks_read, pg_stat_get_blocks_hit(x.indexrelid) AS tidx_blks_hit FROM pg_class c LEFT JOIN pg_index i ON c.oid = i.indrelid LEFT JOIN pg_class t ON c.reltoastrelid = t.oid LEFT JOIN pg_index x ON t.oid = x.indrelid LEFT JOIN pg_namespace n ON n.oid = c.relnamespace WHERE c.relkind = ANY (ARRAY['r'::"char", 't'::"char", 'm'::"char"]) GROUP BY c.oid, n.nspname, c.relname, t.oid, x.indexrelid; Буду смотреть

Dmitriy S
SELECT c.oid AS relid, n.nspname AS schemaname...

Хмм... а из какой это версии? Потому что в v15: CREATE OR REPLACE VIEW pg_catalog.pg_statio_all_tables AS SELECT c.oid AS relid, n.nspname AS schemaname, c.relname, pg_stat_get_blocks_fetched(c.oid) - pg_stat_get_blocks_hit(c.oid) AS heap_blks_read, pg_stat_get_blocks_hit(c.oid) AS heap_blks_hit, i.idx_blks_read, i.idx_blks_hit, pg_stat_get_blocks_fetched(t.oid) - pg_stat_get_blocks_hit(t.oid) AS toast_blks_read, pg_stat_get_blocks_hit(t.oid) AS toast_blks_hit, x.idx_blks_read AS tidx_blks_read, x.idx_blks_hit AS tidx_blks_hit FROM pg_class c LEFT JOIN pg_class t ON c.reltoastrelid = t.oid LEFT JOIN pg_namespace n ON n.oid = c.relnamespace LEFT JOIN LATERAL ( SELECT sum(pg_stat_get_blocks_fetched(pg_index.indexrelid) - pg_stat_get_blocks_hit(pg_index.indexrelid))::bigint AS idx_blks_read, sum(pg_stat_get_blocks_hit(pg_index.indexrelid))::bigint AS idx_blks_hit FROM pg_index WHERE pg_index.indrelid = c.oid) i ON true LEFT JOIN LATERAL ( SELECT sum(pg_stat_get_blocks_fetched(pg_index.indexrelid) - pg_stat_get_blocks_hit(pg_index.indexrelid))::bigint AS idx_blks_read, sum(pg_stat_get_blocks_hit(pg_index.indexrelid))::bigint AS idx_blks_hit FROM pg_index WHERE pg_index.indrelid = t.oid) x ON true WHERE c.relkind = ANY (ARRAY['r'::"char", 't'::"char", 'm'::"char"])

Dmitriy S
14.5 в CloudSQL

А это точно не fork (тогда причём тут PostgreSQL, по большому счёту)? ;)

Yaroslav Schekin
Хмм... а из какой это версии? Потому что в v15: CR...

В ванильном 14 -- тожэ как он говорит, это в 15 переделали на LATERAL JOIN. Впрочем, проблема, скорее всего именно в форке и его переделанном тостере. Несложно заметить, что оно принцыпиально завязано на то, что у toast-таблицы ровно один индэкс.

Dmitriy S
14.5 в CloudSQL

Пинайте поддержку cloudsql -- это явно их баг какой-то (возможно, не тот, что я указал).

Похожие вопросы

Обсуждают сегодня

коллеги, добрый вечер! А никто не знает как модальная форма может себя закрыть? Ну допустим модальная форма определила, что смысла ей работать нет и хочет вернуть modalResult...
Михаил
83
Hi Everyone! To all Are you Looking for Interview Support at the Lowest Price? Look no further! Then contact us We offer Interview Support for a low cost variety of technol...
Rambabu Nallamilli
3
верно что я могу удалить эти addq и subq т.к. со стеком никакого взаимодействия нет (исключая call)?
Michael
16
А если изначально бот работал так : есть сайт онлайн школы. У каждого ученика свой кабинет. Где он авторизуется по своим данным. И уже в кабинете, на самом сайте делает оплату...
Денис 💡 Фрилансер
13
Добрый день Хочу начать обучение языку, не являюсь представителем it, буду благодарна за помощь, совсем пока не понимаю ничего) Подскажите, пожалуйста, где можно начать первы...
Sara Lala
23
средствами IBX как-то можно выполнить запрос insert ... returning?
Igor
31
А что ты вообще делаешь ?
Yesgoter
13
На работе пишем распределенное приложение, у которого сотни, если не тысячи настроек. Конфиги написаны на xml, расположены на разных хостах и должны быть согласованы друг с др...
Aleksandr Druzhinin
5
Hi there everyone Is there anyone who have not started hamster bot yet? I need only one, I'll be glad if you do this for me DM if you haven't yet
Mehrshad
53
Всем привет 🙂 Какая-то непонятная проблема у меня с видео, раньше такого не было. Загружаю видео с гугл диска именно в видео mp4 и меняю ссылку как положено вот она: https://d...
Ксюша|Верстка на Тильде|Дизайн 🦥
6
Карта сайта