---
title: Track all-up I/O statistics with pg_stat_io in Postgres 16, join our upcoming webinar & more
---

| Join our webinar, new pganalyze Enterprise Release, meet us at pgcon in Ottawa, product improvements, 5mins of Postgres episodes and more. |
| --- |

| View in browser Hi there, Welcome to the February 2023 edition of the pganalyze newsletter!   Today, we start by sharing all the details about an upcoming Postgres 16 feature: The new "pg_stat_io" view, which our team helped review during the Postgres development cycle, got committed recently.   We're also excited to announce our new pganalyze Enterprise Server release, v2023.03.0, which brings Lock Monitoring and other features to the self-hosted edition of pganalyze.   Later this month, you can join us for our next webinar, where we'll walk through how to use the Postgres query planner to debug bad plans and speed up queries. Join us live on March 29th, at 9:30am Pacific.   And later this year, at the end of May, you can meet us at pgcon in Ottawa  where we've just heard back that our talk on automating index selection using constraint programming got accepted!   As always, you can also find our 5mins of Postgres episodes in the newsletter, where we've talked about topics such as tracing locks, pg_repack, benefits and downfalls of unlogged tables, and more. All the best, Lukas Cumulative I/O statistics with pg_stat_io in Postgres 16 One of the most common questions we get from people running Postgres databases at scale is: How do we optimize the I/O operations of our database?   In this article, we talk about querying system wide I/O statistics with Postgres 16's newly added pg_stat_io feature, how it enables measuring information that wasn't visible before (such as bulk reads, bulk writes and shared buffer evictions) and talk about the future of I/O observability in Postgres.   Waiting for Postgres 16: Cumulative I/O statistics with pg_stat_io→ Upcoming Webinar Webinar on March 29th, 9:30am Pacific Time: How to use the Postgres query planner to debug bad plans and speed up queries →   In our upcoming webinar you will get an understanding of how the Postgres query planner chooses different plans for the same query, and how to debug bad plans when they occur.   In detail, we'll discuss how to use auto_explain, how to identify a bad plan, how to switch plans to improve Postgres performance, and more. Register for this free webinar See you at pgcon '23 in Ottawa! We've been working on a new approach to enable developers and data engineers to automate Postgres index selection using constraint programming. This work is still in active development, but the good news is:   Our talk at pgcon got accepted! Expect lots of in-depth information about how to use a solver for optimizing index selection, and more. See y'all in Ottawa at the end of May!   Take a look at the pgcon 2023 website→ (schedule will be live soon) 5mins of Postgres E53: Tracing Locks in Postgres using eBPF programs→   We talk about tracing Postgres locks using eBPF programs. Specifically, we’re looking at pg_lock_tracer and pw_lw_lock_tracer by Jan Nidzwetzki. E54: Never run VACUUM FULL: How to run pg_repack on Amazon RDS and Aurora→   We talk about why you shouldn't use VACUUM FULL and how to use the alternative, pg_repack, on Amazon RDS and Aurora. We walk through pg_repack’s benefits, how to install it, and how it helped making one of our tables over 10x smaller. E55: Avoid Postgres performance cliffs with MultiXact IDs and foreign keys→   We talk about performance cliffs encountered with MultiXact transaction IDs. We also look at foreign key relationships and the Postgres VACUUM and autovacuum process. E56: Unlogged tables in Postgres: Is their data truly gone after a crash?→   We talk about unlogged tables, reasons to use them for increased write performance, reduced vacuum impact and less total WAL, and reasons to not use them, because data is lost when Postgres crashes. Subscribe on YouTube We publish weekly videos on Postgres, our conference talks, tutorials, product walk-throughs, and more. Subscribe to pganalyze on YouTube Product updates pganalyze Enterprise Server v2023.03.0 This brings recently released functionality, such as the new Lock Monitoring to self hosted deployments of pganalyze Read the full change log for details pganalyze collector 0.49.0 Update parser to be fully compatible with Postgres 15 Besides supporting newer syntax like the MERGE statement, this parser update also drops support for "?" replacement characters found in pg_stat_statements output before Postgres 10 When upgrading you may notice that some queries will get new query fingerprints assigned, due to this query parser update Postgres 10 is now the minimum version for monitored Postgres servers Enforce maximum time for each snapshot collection This is especially helpful if you have one slow server on the same collector as many other servers Support Ctrl+C (SIGINT) for stopping a collector test right away Multiple improvements for Log Insights & more Index Advisor New "Status" page that shows last time the Indexing Engine processed a table, as well as any errors that were encountered Correctly handle table/index names with leading digits (e.g. "123test") Consistently retry failed queries when collector is upgraded, or query analysis logic changes Fix query analysis for operations involving two parameter references (e.g. "$1 * $2") Unused indexes: Allow configuring look back interval for unused indexes, and default to 35 days (instead of 14 days) You can change the interval for when an index is considered "unused" by going to the Check-Up page Handle table hierarchies (partitioned tables) so that unused indexes are only reported if all children have the index marked as unused Report never used indexes as unused (if seen for sufficient time) VACUUM monitoring & tuning As announced last month, we're starting a new early access program for improved autovacuum metrics (available for testing shortly), and per-table autovacuum tuning recommendations (coming soon) If you haven't registered yet, here is the link to register your interest Other improvements Improved handling of complex query tag comments Previously query tags were detected using a regular-expression based logic, that excluded some special comment syntax - we now use the Postgres scanner (via pg_query's scan method) to find comments in query strings, to improve accuracy for edge cases Increase entropy of API keys and prefix with "pga" This doubles the random bits used in API keys for additional security, and adds a prefix to help identify pganalyze API keys If you want to rotate a legacy API key, go to the "API Keys" page and create a new key, switch over, and then revoke the old key Fixed incorrect averaging of replication lag for alerts We've added a rate limit on query samples for the same query within the same log snapshot (we now pick the slowest example for a given query) Improved warning in case payment for your subscription has failed Fixed issue where a limited number of invoices were shown in-app Review us on G2 Please leave your feedback (good or bad!) in this survey - we appreciate it! Fill out the G2 survey Duboce Labs, Inc., 1501 Mariposa St, Unit 408, San Francisco, CA 94107 Unsubscribe Manage preferences |
| --- |