Partitioning -- 2 : Simple Range Partitioning -- by DATE
Range Partitioning allows you to separate a logical table into a number of distinct physical segments, each segment holding data that maps to a range of values.(I encourage you to read the Introduction...
View ArticlePartitioning -- 3a : Indexes on a Partitioned Table
Building on the case study of the Range Partitioned Table from the previous Blog Post, here are some Indexes.SQL> select index_name, tablespace_name, partitioned, uniqueness 2 from user_indexes 3...
View ArticleOracle Database Configurations using Docker and Vagrant
Oracle now makes available configurations for the Database (and other products) on both Docker and Vagrant via GitHub.Good time to familiarize oneself with GitHub, Docker and/or Vagrant.For the Docker...
View ArticlePartitioning -- 3b : More Indexes on Partitioned Table
In the previous blog post, I had demonstrated a Global (Non-Partitioned) Index and a Local (Partitioned) Index. A Global Index itself may be partitioned. A Local Index is actually Equi-Partitioned...
View ArticlePartitioning -- 3c : Unique Index[es] on Partitioned Table
Let's explore what sort of Unique Indexes you can create on a Partitioned Table.There are three types of partitioning for Indexes :a Global (Non-Partitioned)b Global Partitionedc Local...
View ArticleSome Statistics on this Blog
This blog now has 630 posts (including this one), 1000 comments and 1.82million pageviews to date.
View ArticlePartitioning -- 3d : Partial Indexing (in 11g)
Oracle 12c has introduced a new feature called "Partial Index" whereby selective partitions of a Table are indexed. This is useful, for example, where you have a large historical table and you know...
View ArticlePartitioning -- 4 : Row Movement
Do you expect Primary Keys to be updatable ? Some argue that Primary Key values should be immutable. The argument is that a Primary Key should not be modified.What about Partition Keys ? Would you...
View ArticlePartitioning -- 5 : List Partitioning
List Partitioning allows you to specify a value (or a set of values) for the Partition Key to map to each Partition.This example shows List Partitioning.SQL> create table request_queue 2 (request_id...
View ArticlePartitioning -- 6 : Hash Partitioning
Unlike Range or List Partitioning where you define the rule which identifies which Partition a row will be inserted into (based on the value in the Partition Key Column(s)), Hash Partitioning relies...
View ArticlePartitioning - 7 : Interval Partitioning
Interval Partitioning was introduced in 11g as an enhancement to Range Partitioning, but supporting only DATE and NUMBER datatypes. This allows you to define the interval for each Partition and leave...
View ArticlePartitioning -- 8 : Reference Partitioning
Like Interval Partitioning, another enhancement in 11g is Reference Partitioning.Reference Partitioning allows you to use a Referential Integrity Constraint to equi-partition a "Child" Table with a...
View ArticlePartitioning -- 9 : System Partitioning
System Partitioning, introduced in 11g, unlike all the traditional Partitioning methods, requires that all DML specify the Target Partition. For a System Partitioned Table, the RDBMS does not use a...
View ArticleSQL Slowdown ? A short list of potential reasons
Jonathan Lewis has published a short list of potential reasons why you might see a slowdown in SQL execution. With newer releases 12.2, 18c and 19c, the list may have to be expanded.
View ArticlePartitioning -- 10 : Virtual Column Based Partitioning
Oracle 11g supports specifying a Virtual Column as the Partition Key.A Virtual Column is a column where the value is derived on the basis of an expression on other columns or sql/plsql functions. The...
View ArticlePartitioning -- 11 : Composite Partitioning
Oracle allows Composite Partitioning where a Partition can, itself, be Sub-Partitioned. Each SubPartition is a distinct segment (allocation of physical Oracle Data blocks) while the Partition itself...
View ArticlePartitioning -- 12 : Data Dictionary Queries
Here's a compilation of some useful data dictionary queries on the implementation of Partitioning.REM List all Partitioned Tables in the database (or filter by OWNER in the WHERE clause)REM Note that...
View ArticlePartioning -- 13a : Relocating a Partition
When you want to / need to move a Partition to a different Tablespace (e.g. as part of a LifeCycle Management Policy), you may need downtime to relocate the Partition. However, version 12cRelease1...
View ArticlePartitioning -- 13b : Splitting a Partition
Let's say the business anticipates growing sales volume in 2019 and new reporting requirements. IT analyses the requirements and decides that the SALES_DATA Table that is currently Partitioned by...
View ArticlePartitioning -- 13c : Merging Partitions
The reverse of SPLITting a Partition is to MERGE two adjacent partitions.I reverse the SPLIT that I did in the previous blog post.SQL> l 1 select partition_name, tablespace_name, high_value 2 from...
View Article