Slow index access and COL=:N where :N is NULL
All Oracle specialists know that any predicate X=NULL can’t be true and we should use “X is NULL” in such cases. Oracle optimizer knows about that, so if we create a table like this: create table...
View ArticleCBO and Partial indexing
Oracle 12c introduced Partial indexing and sometimes it works fine for simple partitioned tables with literals, but it has a few serious problems: For example, consider the following simple...
View ArticlePartitioning by node (instance_number)
Years ago, I had to solve the problem of cluster-wide contention for log table blocks during a massive number of inserts from numerous sessions.Since the table was essentially insert-only and reads...
View ArticleInterval Search: Optimizing Date Range Queries – Part 1
One of the most common and enduring challenges in database management is performing efficient interval searches, particularly for date intervals such as: WHERE :dt BETWEEN beg_date AND end_date. In...
View ArticleInterval Search: Part 2. Dynamic Range Segmentation – Simplified
In the previous part, I discussed the most efficient known methods for optimizing range queries. In this part, I’ll introduce a simple version of my custom approach, which I call Dynamic Range...
View ArticleInterval Search: Part 3. Dynamic Range Segmentation – Custom Domain Index
In this part, I’ll show how to implement Dynamic Range Segmentation (DRS) explained in the previous part using a custom Domain Index, allowing you to apply this optimization with minimal changes to...
View ArticleInterval Search Series: Simplified, Advanced, and Custom Solutions
Interval Search: Part 1. Optimizing Date Range Queries Interval Search: Part 2. Dynamic Range Segmentation – Simplified Interval Search: Part 3. Dynamic Range Segmentation – Custom Domain Index
View ArticleInterval Search: Part 4. Dynamic Range Segmentation – interval quantization
Forums, mailing lists, and StackOverflow are all great resources for Oracle performance discussions, but I’ve long thought it would be useful to have a dedicated online chat/group specifically for...
View ArticlePartition Pruning and Global Indexes
There is a common misconception that partition pruning does not help in the case of global indexes and only works with local indexes or full table scans (FTS). It is understandable how this...
View ArticleOracle Telegram Bot
For the Oracle performance tuning and troubleshooting Telegram channel https://t.me/ora_perf, I developed a simple helpful Telegram bot. It simplifies common Oracle database tasks directly within...
View Article