Sign in

Tanel Poder

@tanelpoder.com
2K followers 468 following 334 posts

A long-time computer performance nerd. Creator of 0x.tools. Perf & troubleshooting blog: tanelpoder.com. All onions are mine!

PostsRepliesMedia
Tanel Poder @tanelpoder.com · 18/06/2026
Releasing an eBPF Runtime Reporter and Profiler tool (brr). I've used it for profiling eBPF programs themselves. It unifies bpftop-like utilization/event frequency monitoring with perf_events based CPU sampling, with source code line mapping. github.com/tanelpoder/b...
1103
Tanel Poder @tanelpoder.com · 15/05/2026
Almost Summer Sale 2026: All my flagship video courses discounted until end of May! Plus *free* Exadata Internals & Advanced Performance Metrics seminar videos! tanelpoder.com/posts/almost...
021
Tanel Poder @tanelpoder.com · 30/04/2026
A pretty recent summary article from Oracle on enabling and getting SQL monitoring reports in various ways (including historical captures): Real-Time SQL Monitoring: a MUST for SQL Tuning blogs.oracle.com/coretec/orac... (I'm working on something new & related too ;-)
172
Tanel Poder @tanelpoder.com · 15/04/2026
I've been busy in the last months! Announcing a brand new "Practical Exadata Performance" training course! I'm not aware of any other training *like this* offered in the world. 😎 Also, a *free* seminar! Exadata is an awesome platform, if used right! learn.tanelpoder.com
054
Tanel Poder @tanelpoder.com · 13/04/2026
Was doing some Exadata performance work and this question came up: "Where does the Exadata storage() predicate come from?" I wrote about it a while ago 😎 tanelpoder.com/2014/03/05/w... The inmemory() predicate works using similar logic: access_predicate on INMEMORY full table scan.
001
Tanel Poder @tanelpoder.com · 10/04/2026
Get Oracle Partition High Values as VARCHAR2 types instead of LONG in Oracle 19c and earlier (new blog). There's also some data 23/26ai data dictionary internals! tanelpoder.com/posts/oracle...
032
Tanel Poder @tanelpoder.com · 30/03/2026
Another old but interesting blog post (2008!) An Oracle database may have duplicate (non-unique) ROWIDs (and data object IDs) when using transportable tablespaces. That's not a bug, Oracle guarantees ROWID uniqueness only at table level, not at DB level. tanelpoder.com/2008/10/21/t...
031
Tanel Poder @tanelpoder.com · 29/03/2026
Old but gold (2024): Oracle Hint Scopes and Join Level Cardinality Hint: tanelpoder.com/posts/oracle...
011
Tanel Poder @tanelpoder.com · 24/03/2026
Old but gold! (2025) Find which Oracle SQL_ID hits the SQL*Net break/reset to client event: tanelpoder.com/posts/find-w...
001
Tanel Poder @tanelpoder.com · 21/03/2026
The number of citations in my Google Scholar profile just reached a new order of magnitude! 100 citations! 😅 The most cited item is a patent from 2015 about *transparently* offloading parts of RDBMS SQL exec plans to distributed engines & hybrid cloud. scholar.google.com/citations?us...
041
Tanel Poder @tanelpoder.com · 13/03/2026
Reasons why SELECT * is bad for SQL performance: An old blog (with Oracle-specific examples) with a whole range of reasons why. It's not only about network traffic and SQL plan execution, but client side processing and memory usage as well. tanelpoder.com/posts/reason...
4215
Tanel Poder @tanelpoder.com · 06/03/2026
I wrote an Oracle "ash_index_helper.sql" script 5 yrs ago, trying to pull all relevant info of top time-consuming *access paths* into one place, as a single SQL script. Summarize access paths to a schema or just one table/SQL. Too complex for a single script, time for AI? 😎
130
Tanel Poder @tanelpoder.com · 01/03/2026
New blog: Testing the Datadog Explain Plan Visualizer with Oracle execution plans tanelpoder.com/posts/testin...
1116
Tanel Poder @tanelpoder.com · 16/02/2026
Discovered an awesome article (and the entire site) via HN. Example: "How is data stored?" www.makingsoftware.com/chapters/how...
0102
Tanel Poder @tanelpoder.com · 02/02/2026
Vinicius Grippa has created a cool implementation of SQL Flamegraphs for MySQL: MyFlames. GitHub repo here, look into demos/mysql-*.svg files for more examples: github.com/vgrippa/myfl...
041
Tanel Poder @tanelpoder.com · 28/01/2026
If you clone the same (cat) photo into 360 versions, each rotated by one more degree, then put all these versions through a ViT embedding model, should the resulting cat-vectors look at least somewhat similar? I used a heatmap to answer this question! tanelpoder.com/catvector/
020
Tanel Poder @tanelpoder.com · 28/01/2026
Back in the the day we did something similar (for Oracle execution plans), called PlanViz: tanelpoder.com/posts/sql-pl...
020
Tanel Poder @tanelpoder.com · 28/01/2026
A free SQL explain plan visualizer tool by @datadoghq Currently for PostgreSQL, MySQL, MSSQL and MongoDB explain.datadoghq.com
1148
Tanel Poder @tanelpoder.com · 28/11/2025
(3 days left until the end of Black Friday Sale of my online training courses!) Also, an old post for Oracle nerds: "Oracle Shared Pool Internals: List Chunk Position in the LRU List" tanelpoder.com/posts/oracle...
010
Tanel Poder @tanelpoder.com · 10/11/2025
Added a blog update about the V$PROCESS_MEMORY_DETAIL auto-population for processes with PGA growth to over 500MB. Enabled in Oracle 19.18+, so no "oradebug dump pga_get_detail" needed, just query the V$ views for a detailed "heapdump": tanelpoder.com/2014/03/26/o...
093
Tanel Poder @tanelpoder.com · 10/11/2025
New scripts: vstat.sql & dstat.sql for showing Oracle Sysmetric history with 1-minute granularity (both from AWR and regular V$ views) tanelpoder.com/posts/oracle...
062
Tanel Poder @tanelpoder.com · 03/11/2025
Also just fixed a "bug" in my yesterday's writing - it was late and I had picked a number from a wrong column for one explanation! :-) And that's exactly why I added the computed "optimizer cardinality misestimate" column to my XB scripts, so I wouldn't have to do such lookups & math manually.
000
Tanel Poder @tanelpoder.com · 03/11/2025
New blog: xb.sql and xbi.sql - Explain Oracle Execution Plans Better! (Part 3 - Cardinality Misestimates) tanelpoder.com/posts/xb-sql...
141
Tanel Poder @tanelpoder.com · 02/11/2025
I just extended the Black Friday sale to the whole month of November! All my existing full-week flagship courses are heavily discounted for the entire month, and more content coming soon! tanelpoder.com/posts/black-...
053
Tanel Poder @tanelpoder.com · 29/10/2025
For example, this screenshot aggregates samples from an 1-hour range (by default, configurable with command line options) and you can toggle that yellow highlighted window with "w" and move with "[ ]" currently hardcoded width at 5min (but will be adjustable soon) 😎 tanelpoder.com/posts/xcaptu...
000
Tanel Poder @tanelpoder.com · 24/10/2025
Previously on this show: Find which Oracle SQL_ID hits the SQL*Net break/reset to client event tanelpoder.com/posts/find-w...
020
Tanel Poder @tanelpoder.com · 24/10/2025
Previously on this show: SQL Plan Execution FlameGraphs with Loop and Row Counts tanelpoder.com/posts/sql-pl...
000
Tanel Poder @tanelpoder.com · 23/10/2025
😎
001
Tanel Poder @tanelpoder.com · 22/10/2025
Announcing my new Oracle Optimizer, Partitioning and I/O-Intensive Database Handling Deep Dive Training! If you run serious Oracle workloads on-premises or in the cloud and want to learn some practical *and* new things this year, this is it! tanelpoder.com/posts/new-or...
141
Tanel Poder @tanelpoder.com · 22/10/2025
There's a new Data Guard in town (not the Oracle one). Cool to see Linkedin, OpenAI and Anthropic collaborating: arxiv.org/html/2502.01...
000
Tanel Poder @tanelpoder.com · 22/10/2025
Filtering data in real time (at CERN) After early filtering, this snippet from the article: "At this stage, the remaining events are recorded to a 40 Petabyte disk buffer." A 40 PB *buffer* for data 🫠 lhcb-outreach.web.cern.ch/filtering-da...
2134
Tanel Poder @tanelpoder.com · 20/10/2025
tabhisthybrid.sql: Display Oracle hybrid histograms and filter cardinality estimates tanelpoder.com/posts/tabhis...
143
Tanel Poder @tanelpoder.com · 12/10/2025
pqr.sql: Generate QR Codes with Pure SQL in PostgreSQL tanelpoder.com/posts/genera...
042
Tanel Poder @tanelpoder.com · 16/09/2025
If you have eBPF "biolatency" style IO latency monitoring tools always-on, you might want to reduce its tracepoint CPU overhead by not storing IO start times in a shared hashtable at all. In my results, 59x lower tracepoint CPU overhead at 37M IOPS 😎 tanelpoder.com/posts/optimi...
052
Tanel Poder @tanelpoder.com · 11/09/2025
Already getting good questions about 0x.tools in YouTube!
170
Tanel Poder @tanelpoder.com · 09/09/2025
The xCapture and xtop eBPF tools are now in beta, with a demo dataset! With a pre-recorded xcapture dataset from my dev server, now you can play with xtop "thread activity sampling" drilldown even on your laptop, without having to run xcapture yourself! (link in replies :-)
275
Tanel Poder @tanelpoder.com · 27/08/2025
Something for Linux block I/O nerds - Linux Storage Stack Diagram (up to kernel v6.16) published: www.thomas-krenn.com/en/wiki/Linu...
1206
Tanel Poder @tanelpoder.com · 25/08/2025
I have published the CatVector embedding-vector heatmap visualization app (for learning and fun!) as a static webpage now (just browser is enough, no downloads or Python needed). And now we have dark mode too! 😼 tanelpoder.com/catvector/
033
Tanel Poder @tanelpoder.com · 22/08/2025
YouTube helpfully generated a table of contents for my 11 minute demo video of 0x.tools xtop "top for wall clock time" dimensional performance analysis tool. You see I'm talking about multiple topics there (including syscall,TCP,IO latency) www.youtube.com/watch?v=cZ_z...
030
Tanel Poder @tanelpoder.com · 21/08/2025
This is what I'm currently playing with: *Passive sampling* of hardware interrupt stacks with eBPF. With xintr, you'll soon be able to see inside your interrupt activity even on cloud VMs without hardware performance counters and without kernel probe & tracepoint overhead! Demo link in replies.
160
Tanel Poder @tanelpoder.com · 19/08/2025
What if I told you that now it's possible to see inside hardware interrupt handling activity, even without PMU access on cloud VMs, without tracing or slowing anything down? Thanks to passive sampling with eBPF, task iterators and some pointer chasing, this is now a thing 😎
171
Tanel Poder @tanelpoder.com · 17/08/2025
As I'm creating new content for my latest online training courses, I just bundled the 2021 "Troubleshooting Very Complex Oracle Performance Problems" videos into the AOT & SQL Tuning courses, without an extra fee; existing attendees will have access too! learn.tanelpoder.com
132
Tanel Poder @tanelpoder.com · 15/08/2025
Achieving 11M IOPS & 66 GiB/s IO on a Single ThreadRipper Workstation. This post was about I/O & hardware geekery, but if you want to learn some thing about modern "computers are networks" topology and PCIe root complexes and some bottlenecks I hit, check out this: tanelpoder.com/posts/11m-io...
1112
Tanel Poder @tanelpoder.com · 14/08/2025
New Tool: xstack - Completely Passive eBPF Linux Stack Profiling Without Any Tracepoints tanelpoder.com/posts/xstack...
056
Tanel Poder @tanelpoder.com · 13/08/2025
A new tool in 0x.tools family: xtop - Top for Wall-Clock Time. It uses eBPF/xcapture v3 and gives you "x-ray vision" into Linux system activity. It will be available on next Tuesday 19 Aug at 1pm EDT when I also run a live demo webinar! tanelpoder.com/posts/xtop-t...
1199
Tanel Poder @tanelpoder.com · 12/08/2025
MySQL's New Storage and Execution Engine: DuckDB​ www.linkedin.com/pulse/mysqls...
1122
Tanel Poder @tanelpoder.com · 02/07/2025
New Webinar: Testing High-Performance Vector Search With CatBench on Google AlloyDB Omni Time: Wednesday, July 23th at 9am EDT. Sign up here: rsvp.withgoogle.com/events/bench... More info: tanelpoder.com/posts/testin... /cc @kirantailor.bsky.social
042
Tanel Poder @tanelpoder.com · 30/05/2025
Here's the link (and some cats!): tanelpoder.com/posts/catben...
000
Tanel Poder @tanelpoder.com · 30/05/2025
New Blog: Catbench Vector Search Playground has Postgres Query Throughput and Latency Monitoring Now This is a demo app that helps you to learn and experiment with adding vector search-based functionality into new or existing apps! (link in reply)
121
Tanel Poder @tanelpoder.com · 28/05/2025
New blog: Using Postgres pg_test_fsync tool for testing low latency writes An easy to use tool that comes with standard Postgres installation, for testing write latency of devices where you put your WAL/redo logs and any other files requiring low write latency. (link in reply)
295