SHARE
Facebook X Pinterest WhatsApp

Disk Sorts – A Subtle Threat to Database Performance

Jun 7, 2003

by Robin Schumacher

Even though
database vendors continue to proclaim the fact that they have “self-healing”
databases, performance problems continue to plague many critical database
systems. Added complexity in the database engines and a reduced DBA staff has
added to the administrator’s burden of keeping databases up and running at a
rapid pace.

When
troubleshooting performance problems, an Oracle DBA can employ a number of
different techniques to uncover the root cause of database slowdowns. These
methods include observing key ratios, using wait events, viewing performance
details for heavy resource-hungry sessions, and tracking down inefficient SQL.
The most in-vogue practices focus on bottlenecks (waits) and SQL interrogation,
but smart DBAs also know when to put into play their favorite ratio and session
scripts or monitors to fully expose a suspected performance problem.

I have to
confess that when working through the database tuning process, I have often
overlooked a subtle, but nasty threat to database performance – disk sorts.
Excessive disk sort activity can make a wreck out of well-optimized SQL
statements and give a black eye to even the most robust database server. How
can this happen? More importantly, is your database suffering from disk sort problems?
Let’s take a look at this performance thief and see how to both find and fix
disk sort activity on a database.

What is a Disk Sort?

All DBAs
know that various operations and SQL statement executions can create sort
activity in the database. For example, include one of Oracle’s aggregation
functions (MAX,
MIN, etc.) in a SQL
statement and you’ve introduced a sort operation to the database. A required
sort is not necessarily a bad thing if it is efficiently performed. A short
list of some of the most common SQL commands/clauses that can cause sorts
include:

  • CREATE INDEX, ALTER INDEX …
    REBUILD
  • DISTINCT
  • ORDER BY
  • GROUP BY
  • UNION
  • INTERSECT
  • MINUS
  • IN, NOT IN
  • Aggregation functions (MAX, MIN, AVG, SUM)
  • Certain unindexed joins
  • Certain correlated subqueries

A sort can become problematic if it requires disk I/O for
it to complete. When a sort operation occurs, Oracle attempts to perform the
sort in a memory space that is assigned by the DBA. In Oracle versions below
Oracle9i, this memory sort area was controlled by the SORT_AREA_SIZE and
SORT_AREA_RETAINED_SIZE initialization parameters. For Oracle9i and above,
Oracle recommends the use of PGA_AGGREGATE_TARGET. If a sort is too large to
be contained within this memory space, Oracle will continue the sort on disk –
specifically, in the user’s assigned temporary tablespace. This is where
performance problems can begin to develop.

Most DBAs
will tell you that they understand the impact of excessive physical I/O on
their database and that they strive to keep it to a minimum. However, when
they refer to physical I/O, they typically think about physical read activity
needed to satisfy a SQL statement’s request, but totally forget about disk
sorts. They shouldn’t. In my opinion, a disk sort can far outweigh the
unwanted effects of regular disk I/O read activity because a disk sort involves
both physical reads and physical writes. First, Oracle must perform
physical writes to a session’s temporary tablespace for the sort activity it cannot
handle in memory. Then, the database must turn right around and read that
information back from disk to build the result set requested by the SQL query.
So in essence, it’s a double whammy especially for large result sets that are
the product of heavy sort requests.

Recommended for you...

Best Certifications for Database Administrators
Ronnie Payne
Oct 14, 2022
Best Courses for Database Administrators
Ronnie Payne
Jul 22, 2022
TYPE Definition Change in Oracle 21c
Is COUNT(rowid) Faster Than COUNT(*)?
Database Journal Logo

DatabaseJournal.com publishes relevant, up-to-date and pragmatic articles on the use of database hardware and management tools and serves as a forum for professional knowledge about proprietary, open source and cloud-based databases--foundational technology for all IT systems. We publish insightful articles about new products, best practices and trends; readers help each other out on various database questions and problems. Database management systems (DBMS) and database security processes are also key areas of focus at DatabaseJournal.com.

Property of TechnologyAdvice. © 2025 TechnologyAdvice. All Rights Reserved

Advertiser Disclosure: Some of the products that appear on this site are from companies from which TechnologyAdvice receives compensation. This compensation may impact how and where products appear on this site including, for example, the order in which they appear. TechnologyAdvice does not include all companies or all types of products available in the marketplace.