Advertisement Β· 728 Γ— 90

Posts by Tanel Poder

Blog greatest hits :-) . The death of the demo script. connor-mcdonald.com/2016/03/23/the-death-of-...

3 hours ago 1 1 0 0

Imagine your team doing agentic coding in the codebase serving mills of customers without understanding how it works, and you get paged at 2 am, and since no one knows how the system works you need to ask LLM to tell you, and it gives you, wait for it... a PLAUSIBLE answer what might be wrong.

3 hours ago 2 1 0 0
Post image

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...

4 hours ago 0 0 0 0
Post image

Jan Nidzwetzki - pg_plan_alternatives: Tracing PostgreSQL's Query Plan Alternatives using eBPF
jnidzwetzki.github.io/2026/03/04/p...

1 week ago 2 1 0 0

My observation is that AI has sped up development of mainline, never before seen features at the median shop by ~1.2x.

Undifferentiated backlog items move much faster, so does any new product line with no customers or load bearing infrastructure yet.

Bottleneck is verification and review

1 week ago 10 3 1 0
Post image

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...

1 week ago 3 1 0 0
Post image

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...

1 week ago 3 1 0 0
Join the Oxide Computer Company & Friends Discord Server! The Oxide Computer Company and friends; home of the Oxide and Friends podcast. | 4928 members

Oxide and Friends is back, at a special time! @ahl.bsky.social and I will be joined by Oxide engineers Andrew Stone and Finch Foner to talk about how we build a quorum of trust in the distributed system that is the Oxide rack. Join us today at 2p Pacific/5p Eastern! discord.gg/QrcKGTTPrF?e...

1 week ago 37 4 1 1
Advertisement
Post image

Old but gold (2024):

Oracle Hint Scopes and Join Level Cardinality Hint:

tanelpoder.com/posts/oracle...

1 week ago 1 1 0 0
Post image

Old but gold (2024):

Oracle Hint Scopes and Join Level Cardinality Hint:

tanelpoder.com/posts/oracle...

1 week ago 1 1 0 0
Post image

If you use GitHub (especially if you pay for it!!) consider doing this *immediately*

Settings -> Privacy -> Disallow GitHub to train their models on your code.

GitHub opted *everyone* into training. No matter if you pay for the service (like I do). WTH

github.com/settings/cop...

2 weeks ago 2061 1509 92 136
Preview
Interesting links - March 2026

And just like that, it's time for March's Interesting Links in the Data and AI World!

πŸ‘‰πŸ» rmoff.net/2026/03/25/i...

With links from great folk including @gunnarmorling.dev, @tomcooper.dev, @sqlliz.bsky.social, @tanelpoder.com, @eatonphil.bsky.social, @larahogan.bsky.social, @almog.xyz, and more!

2 weeks ago 10 2 2 0
Post image

Old but gold! (2025)

Find which Oracle SQL_ID hits the SQL*Net break/reset to client event:

tanelpoder.com/posts/find-w...

2 weeks ago 0 1 0 0
Post image

Old but gold! (2025)

Find which Oracle SQL_ID hits the SQL*Net break/reset to client event:

tanelpoder.com/posts/find-w...

2 weeks ago 0 1 0 0
Post image Post image Post image

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...

2 weeks ago 4 1 0 0
Post image Post image Post image

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...

2 weeks ago 4 1 0 0

Yep - cardinality - things like if you process 1M rows (and then fetch only top 10) vs. only going after the 10 rows you need, then the number of columns returned doesn't matter that much!

3 weeks ago 1 0 0 0

... but learning the platforms & tools you *depend* on typically pays off over time :-)

4 weeks ago 1 0 1 0
Advertisement

But just to get the entire list of column names of a table (or many tables in multiple schemas), there'd just be data dictionary metadata queries (all_tab_columns in Oracle). I understand how for a developer who's not deep into database stuff would just do a SELECT * instead of learning dictionary..

4 weeks ago 2 0 1 0

I know people used SELECT * ... WHERE 1=0 (or WHERE False on some DBs) just to get the list of table/query result column names and then RErun the same query without that WHERE 1=0 clause to get data. But it's possible to run a query once and "describe the query output" to get column names in one go

4 weeks ago 1 0 1 0

Yeah, I ended up getting deeper into the rabbit-hole myself (regarding cursor mem usage, etc) when writing that blog post!

4 weeks ago 1 0 0 0

Yeah, I once proposed a database "strict mode" configuration parameter when talking to Oracle development folks, which would simply reject (with an ORA- error) or log a warning about any bad practices it sees in App-DB interaction (like directly comparing VARCHAR2 to a NUMBER bind var datatype etc).

4 weeks ago 2 1 0 0
Post image

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...

4 weeks ago 21 5 4 2
Post image

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...

4 weeks ago 21 5 4 2

Been there!

1 month ago 0 0 0 0

Once I fix the shortcomings and fill the gaps one way or another, will write or youtube about it :-)

1 month ago 1 0 0 0

I first used "ash_index_helper.sql" that queried v$ash and v$sql_plan, etc, but since modern 19.x something databases store access_predicates/filter_predicates in AWR too, I cloned it to "dash_index_helper.sql" so you can go back in AWR:

github.com/tanelpoder/t...

1 month ago 0 0 1 0
Advertisement
Santa's little (index) helper Santa's little (index) helperΒ  Getting a little unexpected help is always nice.Β  This was the case for me when I was tas...

... but now it looks like I'll just feed the relevant info into a language model instead. Let's see how it goes!

Nevertheless, people have found this tool already useful in the past!

backendtales.blogspot.com/2023/02/sant...

1 month ago 0 0 1 0

But it became clear that more than just a single SQL query is needed, for example you wouldn't see a filter predicate on a table if CBO ended up doing a full scan and just throwing rows away much higher up in some hash join. I was going to write a Python tool or something...

1 month ago 0 0 1 0

The idea was to start with only the access paths that consume the most response time or resources and then see how frequently the queries are actually executed *and* show cardinality estimates/filter factors ("needle in the haystack?") and propose *better* indexes (not more).

1 month ago 0 0 1 0