Новые диагностические тулзы на нашем сайте
Четыре небольших запроса которые помогут вам в работе с PostgreSQL С выходом новой версии PotsgreSQL 10.0 мы решили предложить вам, нашим читателям, проверить насколько хорошо настроена ваша…
Четыре небольших запроса которые помогут вам в работе с PostgreSQL С выходом новой версии PotsgreSQL 10.0 мы решили предложить вам, нашим читателям, проверить насколько хорошо настроена ваша…
DBA’s best friends: pg_stat_activity and pg_locks Today, I would like to discuss another handy stats views — pg_stat_activity. This is really useful and powerful view the value…
Great news! PostgreSQL 10 is out. Release notes look amazing and there are a lot of new, wonderful changes and additions. In my personal list, the most…
A graphical overview of Postgres ecosystem Have you ever wondered how Postgres resources are distributed? With the below illustration I attempted to capture key processes that encompass…
Everything you always wanted to know about Postgres stats Everyone who works with postgres, knows about postgres’ streaming replication. Every modern database has replication features and postgres…
Troubleshooting Streaming Replication from PGConf RU 2017 Moscow This week, I have a pleasure speaking at PGConf RU conference in Moscow. It’s very interesting event and I…
Популярные темы семинаров:
В процессе Аудита проводится:
Настоящее предложение не является офертой.
Указанные условия, включая стоимость оказываемых услуг в рублях РФ, не являются офертой, и могут быть изменены в зависимости от согласованных в дальнейшем существенных условий договора и предпочтительной для клиента валюты платежа.
Работая с нами, вы получаете возможность использовать знания и опыт высококвалифицированных специалистов по PostgreSQL для оптимизации работы вашей БД, при этом не меняя состав вашей команды.
Приобретая пакет консалтинговых часов, вы можете обратиться к нам для решения как горящих, так и плановых задач, получения помощи в масштабировании БД и консультаций по архитектуре. Заявки на консультации принимаются с 09:00 по 18:00 МСК.
Указанные условия, включая стоимость оказываемых услуг в рублях РФ, не являются офертой, и могут быть изменены в зависимости от согласованных в дальнейшем существенных условий договора и предпочтительной для клиента валюты платежа.
Поддержка от Data Egret — это сочетание регулярных проверок (Health Checks), круглосуточная доступность команды DBA для ответа на аварийные обращения и решение рутинных задач по оптимизации работы баз данных, включая:
Базовый | Премиум | Enterprise |
До 10 серверов | До 40 серверов | До 100 серверов |
Чат, аварийный телефон | Чат, аварийный телефон | Чат, аварийный телефон |
до 10 часов работы DBA/месяц* | до 25 часов работы DBA/месяц* | до 60 часов работы DBA/месяц* |
SLA
проблема — до 1 ч., |
SLA
проблема — до 1 ч., |
SLA
проблема — до 1 ч., |
24/7 SLA на аварии — 1 ч. | 24/7 SLA на аварии — 1 ч. | 24/7 SLA на аварии — 30 мин |
Автоматические Health Check | Автоматические Health Check с рекомендациями от DBA | Индивидуальная проверка ваших БД нашими DBA |
Цена может варьировать в зависимости от индивидуальных требований клиента и обсуждается индивидуально. Настоящее предложение не является публичной офертой.*Возможно платное увеличение лимита часов на базовые работы.**При выработке лимита часов, включенных в пакет, дополнительные часы оплачиваются по дополнительному тарифу. По предварительной договоренности возможно увеличение лимита часов, включенных в пакет, по сниженному тарифу. Указанные условия, включая стоимость оказываемых услуг в рублях РФ, могут быть изменены в зависимости от согласованных в дальнейшем существенных условий договора и предпочтительной для клиента валюты платежа. Минимальная длительность контракта — 6 месяцев.
|
select case when setting::bigint < 90600 then 'Вы используете старую версию PostgreSQL, которая более не поддерживается сообществом.'||chr(10)|| 'Рекомендуем вам перейти на последнюю актуальную версию как можно скорее.' when setting::bigint < 100000 then 'Вы используете старую версию PostgreSQL, которая пока что поддерживается сообществом.'||chr(10)|| 'Рекомендуем вам перейти на последнюю актуальную версию.' when setting::bigint < 110000 then 'Вы используете достаточно современную версию PostgreSQL, которая активно поддерживается сообществом.'||chr(10)|| 'У вас все неплохо, но можно обновиться и на последнюю актуальную версию при возможности.' when setting::bigint < 140000 then 'Вы пользуетесь одной из самых последних версий PostgreSQL.'||chr(10)|| 'У вас все отлично.' else 'Вы используете версию которая находится в разработке,'||chr(10)|| 'если это production, то рекомендуем вам перейти на стабильную версию PostgreSQL.' end as "Проверка мажорной версии PostgreSQL" , case when setting::bigint between 130002 and 139999 or setting::bigint between 120006 and 129999 or setting::bigint between 110010 and 119999 or setting::bigint between 100015 and 109999 or setting::bigint between 90620 and 90699 then 'У вас стоит один из последних патчей PostgreSQL для вашей версии.'||chr(10)|| 'Похоже вы следите за обновлениями PostgreSQL. Это хороший факт.' else 'Похоже вы не обновляли PostgreSQL, после установки/последнего мажорного обновления, совсем.'||chr (10)|| 'Это плохо, рекомендуем вам обновиться до последней актуальной версии PostgreSQL.' end as "Проверка минорной версии PostgreSQL" , 'Актуальные версии на данный момент следующие, в порядке убывания актуальности:'||chr (10)|| '13.3, 12.7, 11.12, 10.17, 9.6.22' as "Список актуальных версий" from pg_settings where name = 'server_version_num';
SELECT (clock_timestamp() - xact_start) AS ts_age, state, pid, query FROM pg_stat_activity WHERE query ~ 'autovacuum' AND NOT pid=pg_backend_pid();
SELECT now()-pg_postmaster_start_time() "Uptime", now()-stats_reset "Minutes since stats reset", round(100.0*checkpoints_req/checkpoints,1) "Forced checkpoint ratio (%)", round(min_since_reset/checkpoints,2) "Minutes between checkpoints", round(checkpoint_write_time::numeric/(checkpoints*1000),2) "Average write time per checkpoint (s)", round(checkpoint_sync_time::numeric/(checkpoints*1000),2) "Average sync time per checkpoint (s)", round(total_buffers/pages_per_mb,1) "Total MB written", round(buffers_checkpoint/(pages_per_mb*checkpoints),2) "MB per checkpoint", round(buffers_checkpoint/(pages_per_mb*min_since_reset*60),2) "Checkpoint MBps" FROM ( SELECT checkpoints_req, checkpoints_timed + checkpoints_req checkpoints, checkpoint_write_time, checkpoint_sync_time, buffers_checkpoint, buffers_checkpoint + buffers_clean + buffers_backend total_buffers, stats_reset, round(extract('epoch' from now() - stats_reset)/60)::numeric min_since_reset, (1024.0 * 1024 / (current_setting('block_size')::numeric))pages_per_mb FROM pg_stat_bgwriter ) bg
Запрос покажет статистику по контрольным точкам с момента, когда она в последний раз обнулялась.
Важными показателями будут минуты между контрольными точками и объем записываемой информации.
После идентификации запроса необходимо посмотреть его план. Скопируйте код ниже, который добавит `EXPLAIN (analyze)` в начало вашего запроса, потом запустите запрос.
Будьте осторожны с запросами, которые меняют данные т.к. они будут исполнены!
explain (analyze) select 10/2; /* Вместо select 10/2 вставьте пожалуйста ваш запрос который работает медленно */
При выводе вы получите два параметра — время планирования и время исполнения запроса, например:
Planning time: 3667.361 ms
Execution time: 1.652 ms
В рамках настоящей Политики под информацией Пользователя понимаются:
Информацию Пользователя Оператор может использовать в следующих целях:
Оператор вправе передать информацию Пользователя третьим лицам в следующих случаях:
При обработке информации, являющейся персональными данными Пользователей, Оператор руководствуется Федеральным законом № 152-ФЗ «О персональных данных».