ibm-information-center/dist/eclipse/plugins/i5OS.ic.rzajq_5.4.0.1/per0001.htm

110 lines
9.0 KiB
HTML
Raw Normal View History

2024-04-02 14:02:31 +00:00
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="en-us" xml:lang="en-us">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="security" content="public" />
<meta name="Robots" content="index,follow" />
<meta http-equiv="PICS-Label" content='(PICS-1.1 "http://www.icra.org/ratingsv02.html" l gen true r (cz 1 lz 1 nz 1 oz 1 vz 1) "http://www.rsac.org/ratingsv01.html" l gen true r (n 0 s 0 v 0 l 0) "http://www.classify.org/safesurf/" l gen true r (SS~~000 1))' />
<meta name="DC.Type" content="concept" />
<meta name="DC.Title" content="Processing queries: Overview" />
<meta name="abstract" content="This overview of the query optimizer provides guidelines for designing queries that will perform and will use server resources more efficiently." />
<meta name="description" content="This overview of the query optimizer provides guidelines for designing queries that will perform and will use server resources more efficiently." />
<meta name="DC.subject" content="query optimizer, optimization, performance, using SQL, application programs, resource" />
<meta name="keywords" content="query optimizer, optimization, performance, using SQL, application programs, resource" />
<meta name="DC.Relation" scheme="URI" content="rzajqkickoff.htm" />
<meta name="DC.Relation" scheme="URI" content="perf30.htm" />
<meta name="DC.Relation" scheme="URI" content="gotips.htm" />
<meta name="DC.Relation" scheme="URI" content="apvalid.htm" />
<meta name="DC.Relation" scheme="URI" content="decmakrules.htm" />
<meta name="DC.Relation" scheme="URI" content="perf24.htm" />
<meta name="DC.Relation" scheme="URI" content="rzajqdistinct.htm" />
<meta name="DC.Relation" scheme="URI" content="groupopt.htm" />
<meta name="DC.Relation" scheme="URI" content="orderingopt.htm" />
<meta name="DC.Relation" scheme="URI" content="viewopt.htm" />
<meta name="DC.Relation" scheme="URI" content="rzajqmqt.htm" />
<meta name="DC.Relation" scheme="URI" content="rzajqrecursive.htm" />
<meta name="copyright" content="(C) Copyright IBM Corporation 1998, 2006" />
<meta name="DC.Rights.Owner" content="(C) Copyright IBM Corporation 1998, 2006" />
<meta name="DC.Format" content="XHTML" />
<meta name="DC.Identifier" content="per0001" />
<meta name="DC.Language" content="en-us" />
<!-- All rights reserved. Licensed Materials Property of IBM -->
<!-- US Government Users Restricted Rights -->
<!-- Use, duplication or disclosure restricted by -->
<!-- GSA ADP Schedule Contract with IBM Corp. -->
<link rel="stylesheet" type="text/css" href="./ibmdita.css" />
<link rel="stylesheet" type="text/css" href="./ic.css" />
<title>Processing queries: Overview</title>
</head>
<body id="per0001"><a name="per0001"><!-- --></a>
<!-- Java sync-link --><script language="Javascript" src="../rzahg/synch.js" type="text/javascript"></script>
<h1 class="topictitle1">Processing queries: Overview</h1>
<div><p>This overview of the query optimizer provides guidelines for designing
queries that will perform and will use server resources more efficiently.</p>
<div class="p">This overview covers queries that are optimized by the query optimizer
and includes interfaces such as SQL, OPNQRYF, APIs (QQQQRY), ODBC, and Query/400
queries. Whether you apply the guidelines, the query results will still be
correct. <div class="note"><span class="notetitle">Note:</span> The information in this overview is complex. You might find
it helpful to experiment with an <span class="keyword">iSeries™</span> server
as you read this information to gain a better understanding of the concepts.</div>
</div>
<p>When you understand how <span class="keyword">DB2 Universal Database™ for iSeries</span> processes
queries, it is easier to understand the performance impacts of the guidelines
discussed in this overview. There are two major components of <span class="keyword">DB2 Universal Database for iSeries</span> query
processing:</p>
<ul><li>How the server accesses data. <p>These methods are the algorithms that
are used to retrieve data from the disk. The methods include index usage and
row selection techniques. In addition, parallel access methods are available
with the <span class="keyword">DB2<sup>®</sup> UDB Symmetric Multiprocessing</span> operating
system feature.</p>
</li>
<li>Query optimizer.<p>The query optimizer identifies the valid techniques
which can be used to implement the query and selects the most efficient technique.</p>
</li>
</ul>
</div>
<div>
<ul class="ullinks">
<li class="ulchildlink"><strong><a href="perf30.htm">How the query optimizer makes your queries more efficient</a></strong><br />
Data manipulation statements such as SELECT specify only what data the user wants, not how to retrieve that data. This path to the data is chosen by the optimizer and stored in the access plan. You should understand the techniques employed by the query optimizer for performing this task.</li>
<li class="ulchildlink"><strong><a href="gotips.htm">General query optimization tips</a></strong><br />
Here are some tips to help your queries run as fast as possible.</li>
<li class="ulchildlink"><strong><a href="apvalid.htm">Access plan validation</a></strong><br />
An access plan is a control structure that describes the actions necessary to satisfy each query request. It contains information about the data and how to extract it. For any query, whenever optimization occurs, the query optimizer develops an optimized plan of how to access the requested data.</li>
<li class="ulchildlink"><strong><a href="decmakrules.htm">Single table optimization</a></strong><br />
At run time, the optimizer chooses an optimal access method for
the query by calculating an<em> implementation cost</em> based on the current
state of the database. The optimizer uses 2 costs when making decisions:
an I/O cost and a CPU cost. The goal of the optimizer is to minimize both
I/O and CPU cost.</li>
<li class="ulchildlink"><strong><a href="perf24.htm">Join optimization</a></strong><br />
A join operation is a complex function that requires special attention
in order to achieve good performance. This section describes how <span class="keyword">DB2 Universal Database for iSeries</span> implements join queries and
how optimization choices are made by the query optimizer. It also describes
design tips and techniques which help avoid or solve performance problems.</li>
<li class="ulchildlink"><strong><a href="rzajqdistinct.htm">Distinct optimization</a></strong><br />
Distinct is used to compare a value with another value.</li>
<li class="ulchildlink"><strong><a href="groupopt.htm">Grouping optimization</a></strong><br />
<span class="keyword">DB2 Universal Database for iSeries</span> has certain
techniques to use when the optimizer encounters grouping. The query optimizer
chooses its methods for optimizing your query.</li>
<li class="ulchildlink"><strong><a href="orderingopt.htm">Ordering optimization</a></strong><br />
This section describes how <span class="keyword">DB2 Universal Database for iSeries</span> implements
ordering techniques, and how optimization choices are made by the query optimizer.
The query optimizer can use either index ordering or a sort to implement ordering.</li>
<li class="ulchildlink"><strong><a href="viewopt.htm">View implementation</a></strong><br />
Views, derived tables (nested table expressions or NTEs), and common table expressions (CTEs) are implemented by the query optimizer using one of two methods.</li>
<li class="ulchildlink"><strong><a href="rzajqmqt.htm">Materialized query table optimization</a></strong><br />
Materialized query tables (MQTs) (also referred to as automatic summary tables or materialized views) can provide performance enhancements for queries.</li>
<li class="ulchildlink"><strong><a href="rzajqrecursive.htm">Recursive query optimization</a></strong><br />
Certain applications and data are recursive by nature. Examples of such applications are a bill-of-material, reservation, trip planner or networking planning system where data in one results row has a natural relationship (call it a parent, child relationship) with data in another row or rows. Although the kinds of recursion implemented in these systems can be performed by using SQL Stored Procedures and temporary results tables, the use of a recursive query to facilitate the access of this hierarchical data can lead to a more elegant and better performing application.</li>
</ul>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="rzajqkickoff.htm" title="The goal of database performance tuning is to minimize the response time of your queries and to make the best use of your server's resources by minimizing network traffic, disk I/O, and CPU time. This goal can only be achieved by understanding the logical and physical structure of your data, understanding the applications used on your server, and understanding how the many conflicting uses of your database may impact database performance.">Performance and query optimization</a></div>
</div>
</div>
</body>
</html>