# analyze

Published articles for analyze.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Plan Advice in PostgreSQL 19

DevFeed: [Plan Advice in PostgreSQL 19](<https://devfeed.tech/articles/plan-advice-in-postgresql-19-34622.md>)

Original publisher: [Read original article](<https://tapoueh.org/blog/2026/09/plan-advice-in-postgresql-19/>)

Author: Dimitri Fontaine PostgreSQL Major Contributor; Author

Published: 2026-09-15T16:27:53Z

Content type: tutorial

Language: en

Sources: [Dimitri Fontaine](<https://devfeed.tech/sources/dimitri-fontaine.md>)

Topics: [PostgreSQL](<https://devfeed.tech/topics/postgresql.md>), [version](<https://devfeed.tech/topics/version.md>), [SQL](<https://devfeed.tech/topics/sql.md>), [Docker Compose](<https://devfeed.tech/topics/docker-compose.md>)

Tags: [analyze](<https://devfeed.tech/tags/analyze.md>), [beta](<https://devfeed.tech/tags/beta.md>), [docker-compose](<https://devfeed.tech/tags/docker-compose.md>), [pg-plan-advice](<https://devfeed.tech/tags/pg-plan-advice.md>), [postgresql](<https://devfeed.tech/tags/postgresql.md>), [sql](<https://devfeed.tech/tags/sql.md>)

### AI overview

This tutorial explains PostgreSQL 19's pg_plan_advice and pg_stash_advice modules, which represent query-plan decisions as reusable advice and can apply that advice by query ID. It also describes reconstructing comparable plan advice from ordinary plan output on earlier PostgreSQL versions.

### Source excerpt

There is a conversation that happens in every PostgreSQL shop eventually. A query that has been fine for a year gets slow overnight. Nothing was deployed. The data grew a little, ANALYZE ran, and the planner -- entirely reasonably, on the numbers it had -- picked a different plan. The old plan was better. You would like it back. PostgreSQL 19 ships two new modules for exactly this: pg_plan_advice, which can read a plan back out as a string and enforce it later, and pg_stash_advice, which keeps those strings keyed by query id and applies them automatically. ▸ Every query below ran against the Lab, the free dataset bundle used throughout this blog, on PostgreSQL 19 Beta 3: POSTGRES_VERSION=19beta3 PG_MAJOR=19 docker compose up. Both modules are contrib, and the Lab image ships them; nothing below runs a LOAD to enable them, because the server already has them -- pg_plan_advice in session_preload_libraries, pg_stash_advice in shared_preload_libraries (it can survive a restart, which needs loading that way). One line each in postgresql.conf, or the equivalent server-start flag, and you're done. pg_stash_advice still needs its own CREATE EXTENSION, further down, for its SQL functions -- that's independent of how the module itself got loaded.

## Waiting for PostgreSQL 19 - Introduce the REPACK command

DevFeed: [Waiting for PostgreSQL 19 - Introduce the REPACK command](<https://devfeed.tech/articles/waiting-for-postgresql-19-introduce-the-repack-command-33681.md>)

Original publisher: [Read original article](<https://www.depesz.com/2026/03/19/waiting-for-postgresql-19-introduce-the-repack-command/>)

Author: depesz

Published: 2026-03-19T18:07:59Z

Content type: article

Language: en

Sources: [select \* from depesz;](<https://devfeed.tech/sources/select-from-depesz.md>)

Topics: [PostgreSQL](<https://devfeed.tech/topics/postgresql.md>), [postgresql clusters](<https://devfeed.tech/topics/postgresql-clusters.md>)

Tags: [analyze](<https://devfeed.tech/tags/analyze.md>), [bloat](<https://devfeed.tech/tags/bloat.md>), [command](<https://devfeed.tech/tags/command.md>), [indexes](<https://devfeed.tech/tags/indexes.md>), [locking](<https://devfeed.tech/tags/locking.md>), [maintenance](<https://devfeed.tech/tags/maintenance.md>), [pg-repack](<https://devfeed.tech/tags/pg-repack.md>), [pg19](<https://devfeed.tech/tags/pg19.md>), [planner](<https://devfeed.tech/tags/planner.md>), [postgresql](<https://devfeed.tech/tags/postgresql.md>), [repack](<https://devfeed.tech/tags/repack.md>), [uncategorized](<https://devfeed.tech/tags/uncategorized.md>), [vacuum](<https://devfeed.tech/tags/vacuum.md>), [waiting](<https://devfeed.tech/tags/waiting.md>)

### AI overview

The article examines PostgreSQL 19's proposed built-in REPACK command, which combines functionality associated with VACUUM FULL and CLUSTER. It demonstrates reclaiming space and reordering a table, discusses locking because concurrent operation is not yet supported, and introduces the pg_stat_progress_repack progress view and available command forms.

### Source excerpt

On 10th of March 2026, Álvaro Herrera committed patch: Introduce the REPACK command REPACK absorbs the functionality of VACUUM FULL and CLUSTER in a single command. Because this functionality is completely different from regular VACUUM, having it separate from VACUUM makes it easier for users to understand; as for CLUSTER, the term is heavily ... Continue reading "Waiting for PostgreSQL 19 - Introduce the REPACK command"

## Per-worker, and global, IO bandwidth in explain plans

DevFeed: [Per-worker, and global, IO bandwidth in explain plans](<https://devfeed.tech/articles/per-worker-and-global-io-bandwidth-in-explain-plans-33676.md>)

Original publisher: [Read original article](<https://www.depesz.com/2026/02/21/per-worker-and-global-io-bandwidth-in-explain-plans/>)

Author: depesz

Published: 2026-02-21T13:24:57Z

Content type: article

Language: en

Sources: [select \* from depesz;](<https://devfeed.tech/sources/select-from-depesz.md>)

Topics: [PostgreSQL](<https://devfeed.tech/topics/postgresql.md>), [IO](<https://devfeed.tech/topics/io.md>), [parallel](<https://devfeed.tech/topics/parallel.md>)

Tags: [analyze](<https://devfeed.tech/tags/analyze.md>), [execution](<https://devfeed.tech/tags/execution.md>), [explain](<https://devfeed.tech/tags/explain.md>), [explain-depesz-com](<https://devfeed.tech/tags/explain-depesz-com.md>), [io](<https://devfeed.tech/tags/io.md>), [parallel](<https://devfeed.tech/tags/parallel.md>), [plan](<https://devfeed.tech/tags/plan.md>), [postgresql](<https://devfeed.tech/tags/postgresql.md>), [speed](<https://devfeed.tech/tags/speed.md>), [timing](<https://devfeed.tech/tags/timing.md>), [uncategorized](<https://devfeed.tech/tags/uncategorized.md>), [worker](<https://devfeed.tech/tags/worker.md>)

### AI overview

This article explains how PostgreSQL explain plans can report per-worker and global I/O bandwidth during parallel execution. It describes how summed worker timings differ from wall-clock time and introduces an exclusive-time bandwidth figure for the disks' total workload.

### Source excerpt

Jeremy Schneider suggested a change to how plans are displayed - adding another bit of information in case we have timing information for IO for explain node. Took me a while to research, but it finally made it's way... Let's consider this simple plan. In it's Parallel Seq Scan node we see: -> Parallel Seq ... Continue reading "Per-worker, and global, IO bandwidth in explain plans"

## Measuring and analyzing the KotlinJS bundle size - Gustavo Fão Valvassori

DevFeed: [Measuring and analyzing the KotlinJS bundle size - Gustavo Fão Valvassori](<https://devfeed.tech/articles/measuring-and-analyzing-the-kotlinjs-bundle-size-gustavo-fao-valvassori-38293.md>)

Original publisher: [Read original article](<https://touchlab.co/measuring-kotlin-js-bundle>)

Published: 2024-02-16T00:00:00Z

Content type: tutorial

Language: en

Sources: [Touchlab | Enterprise Mobile Innovation & Development](<https://devfeed.tech/sources/touchlab-enterprise-mobile-innovation-development.md>)

Topics: [kotlinjs](<https://devfeed.tech/topics/kotlinjs.md>), [Webpack](<https://devfeed.tech/topics/webpack.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>), [Web Development](<https://devfeed.tech/topics/web-development.md>)

Tags: [analyze](<https://devfeed.tech/tags/analyze.md>), [article](<https://devfeed.tech/tags/article.md>), [devtools](<https://devfeed.tech/tags/devtools.md>), [gradle](<https://devfeed.tech/tags/gradle.md>), [gradle-plugin](<https://devfeed.tech/tags/gradle-plugin.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [kotlin-js](<https://devfeed.tech/tags/kotlin-js.md>), [kotlinjs](<https://devfeed.tech/tags/kotlinjs.md>), [lighthouse](<https://devfeed.tech/tags/lighthouse.md>), [measuring](<https://devfeed.tech/tags/measuring.md>), [performance](<https://devfeed.tech/tags/performance.md>)

### AI overview

This tutorial explains how KotlinJS projects are compiled into JavaScript and bundled with Webpack. It presents two ways to measure and analyze bundle size: examining source maps with SourceMapExplorer or Chrome Lighthouse, and using WebpackBundleAnalyzer.

### Source excerpt

Smaller JavaScript bundle size helps improve a website's loading speed and performance. In this article, we present two different ways of analyzing and measuring KotlinJS bundle size.

## 10x: Logging at Clay.io

DevFeed: [10x: Logging at Clay.io](<https://devfeed.tech/articles/10x-logging-at-clay-io-35612.md>)

Original publisher: [Read original article](<https://zolmeister.com/2014/10/10x-logging-at-clay-io.html>)

Author: Zoli Kahan

Published: 2014-10-25T05:00:00Z

Content type: article

Language: en

Sources: [Zolmeister](<https://devfeed.tech/sources/zolmeister.md>)

Topics: [Logging](<https://devfeed.tech/topics/logging.md>), [log management](<https://devfeed.tech/topics/log-management.md>), [logstash](<https://devfeed.tech/topics/logstash.md>), [elasticsearch](<https://devfeed.tech/topics/elasticsearch.md>), [kibana](<https://devfeed.tech/topics/kibana.md>), [Amazon VPC](<https://devfeed.tech/topics/amazon-vpc.md>), [Server](<https://devfeed.tech/topics/server.md>), [Linux](<https://devfeed.tech/topics/linux.md>), [Docker](<https://devfeed.tech/topics/docker.md>)

Tags: [aggregate](<https://devfeed.tech/tags/aggregate.md>), [amazon](<https://devfeed.tech/tags/amazon.md>), [amazon-vpc](<https://devfeed.tech/tags/amazon-vpc.md>), [analyze](<https://devfeed.tech/tags/analyze.md>), [apply](<https://devfeed.tech/tags/apply.md>), [architecture](<https://devfeed.tech/tags/architecture.md>), [complex](<https://devfeed.tech/tags/complex.md>), [docker](<https://devfeed.tech/tags/docker.md>), [elasticsearch](<https://devfeed.tech/tags/elasticsearch.md>), [kibana](<https://devfeed.tech/tags/kibana.md>), [linux](<https://devfeed.tech/tags/linux.md>), [logging](<https://devfeed.tech/tags/logging.md>), [logs](<https://devfeed.tech/tags/logs.md>), [logstash](<https://devfeed.tech/tags/logstash.md>), [network](<https://devfeed.tech/tags/network.md>), [series](<https://devfeed.tech/tags/series.md>), [server](<https://devfeed.tech/tags/server.md>), [servers](<https://devfeed.tech/tags/servers.md>), [ssh](<https://devfeed.tech/tags/ssh.md>)

### AI overview

This article describes how Clay.io used Logstash to aggregate logs from more than 20 servers, with Elasticsearch and Kibana for analysis. It also discusses log rotation, securing Elasticsearch through Amazon VPC, and open-sourced Docker containers for deploying a distributed logging system.

### Source excerpt

10x: Logging at Clay.io Managing 20+ servers as a small team is no easy task, and when things go wrong (they always do) figuring out what happened quickly is essential. Of course we can't ssh into each machine, that would take ages, so instead we use Logstash to aggregate our logs. This is the second post in my series, and if you missed last episode: Architecture at Clay.io. Logstash overview Logstash deployments have two parts. The aggregate server (or cluster), and the client servers.