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

147 lines
8.9 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?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="reference" />
<meta name="DC.Title" content="Bitmap probe" />
<meta name="abstract" content="A bitmap probe operation is used to test row numbers generated by a separate operation against the selected rows of a temporary bitmap. The row numbers can be generated by any operation that constructs a row number for a table. That row number is then used to probe into a temporary bitmap to determine if that row number matches the selection used to generate the temporary bitmap." />
<meta name="description" content="A bitmap probe operation is used to test row numbers generated by a separate operation against the selected rows of a temporary bitmap. The row numbers can be generated by any operation that constructs a row number for a table. That row number is then used to probe into a temporary bitmap to determine if that row number matches the selection used to generate the temporary bitmap." />
<meta name="DC.subject" content="definitions, bitmap probe access method, temporary bitmap, probe access method, bitmap probe, access method, access method" />
<meta name="keywords" content="definitions, bitmap probe access method, temporary bitmap, probe access method, bitmap probe, access method, access method" />
<meta name="DC.Relation" scheme="URI" content="rzajqtempbit.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="rzajqbitprobe" />
<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>Bitmap probe</title>
</head>
<body id="rzajqbitprobe"><a name="rzajqbitprobe"><!-- --></a>
<!-- Java sync-link --><script language="Javascript" src="../rzahg/synch.js" type="text/javascript"></script>
<h1 class="topictitle1">Bitmap probe</h1>
<div><p>A bitmap probe operation is used to test row numbers generated
by a separate operation against the selected rows of a temporary bitmap. The
row numbers can be generated by any operation that constructs a row number
for a table. That row number is then used to probe into a temporary bitmap
to determine if that row number matches the selection used to generate the
temporary bitmap.</p>
<div class="section"><p>The use of a bitmap probe operation allows the optimizer to generate
a plan that can take advantage of any sequencing provided by an index, but
still use the bitmap to perform additional selection before any Table Probe
operations.</p>
</div>
<div class="section"><p>A bitmap probe is identical to a row number list probe operation.
The only difference between the two operations is that a row number list probe
is performed over a list of row addresses while the bitmap probe is performed
over a bitmap that represents the row addresses.</p>
</div>
<div class="tablenoborder"><table cellpadding="4" cellspacing="0" summary="" frame="border" border="1" rules="all"><caption>Table 1. Bitmap probe attributes</caption><thead align="left"><tr><th valign="top" width="30.96446700507614%" id="d0e43">Data access method</th>
<th valign="top" width="69.03553299492386%" id="d0e45">Bitmap probe attributes</th>
</tr>
</thead>
<tbody><tr><td valign="top" width="30.96446700507614%" headers="d0e43 "><strong>Description</strong></td>
<td valign="top" width="69.03553299492386%" headers="d0e45 ">The temporary bitmap is quickly probed based upon the
row number generated by a separate operation.</td>
</tr>
<tr><td valign="top" width="30.96446700507614%" headers="d0e43 "><strong>Advantages</strong></td>
<td valign="top" width="69.03553299492386%" headers="d0e45 "><ul><li>The temporary bitmap only contains a reference to a rows' address, no
data, so the temporary can be efficiently probed within memory</li>
<li>The row numbers represented within the bitmap are sorted to provide efficient
lookup processing to test the underlying table</li>
<li>Selection is performed as the bitmap is generated to subset the number
of selected rows in the temporary object</li>
</ul>
</td>
</tr>
<tr><td valign="top" width="30.96446700507614%" headers="d0e43 "><strong>Considerations</strong></td>
<td valign="top" width="69.03553299492386%" headers="d0e45 ">Since the bitmap only contains the addresses of the
selected rows in the table, a separate Table Probe operation must be performed
in order to fetch the table rows </td>
</tr>
<tr><td valign="top" width="30.96446700507614%" headers="d0e43 "><strong>Likely to be used</strong></td>
<td valign="top" width="69.03553299492386%" headers="d0e45 "><ul><li>When the use of temporary results is allowed by the query environmental
parameter (ALWCPYDTA) </li>
<li>When the cost of creating and probing the bitmap is justified by reducing
the number of Table Probe operations that must be performed</li>
<li>When multiple indexes over the same table need to be combined in order
to minimize the number of selected rows</li>
</ul>
</td>
</tr>
<tr><td valign="top" width="30.96446700507614%" headers="d0e43 "><strong>Example SQL statement</strong></td>
<td valign="top" width="69.03553299492386%" headers="d0e45 "><pre>CREATE INDEX X1 ON Employee (WorkDept)
CREATE ENCODED VECTOR INDEX EVI2 ON
Employee (Salary)
CREATE ENCODED VECTOR INDEX EVI3 ON
Employee (Job)
SELECT * FROM Employee
WHERE WorkDept = 'E01' AND Job = 'CLERK'
AND Salary = 5000
ORDER BY WorkDept</pre>
</td>
</tr>
<tr><td valign="top" width="30.96446700507614%" headers="d0e43 "><strong>Messages indicating use</strong></td>
<td valign="top" width="69.03553299492386%" headers="d0e45 ">There are multiple ways in which a bitmap probe can
be indicated through the messages. The messages in this example illustrate
how the Classic Query Engine will indicate a bitmap probe was used. <ul><li>Optimizer Debug: <pre>CPI4328 -- Access path of file X1 was used by query.
CPI4338 - 2 Access path(s) used for bitmap
processing of file EMPLOYEE. </pre>
</li>
<li>PRTSQLINF: <pre>SQL4008 -- Index X1 used for table 1.
SQL4011 -- Index scan-key row positioning
used on table 1.
SQL4032 -- Index EVI2 used for bitmap
processing of table 1.
SQL4032 -- Index EVI3 used for bitmap
processing of table 1. </pre>
</li>
</ul>
</td>
</tr>
<tr><td valign="top" width="30.96446700507614%" headers="d0e43 "><strong>SMP parallel enabled</strong></td>
<td valign="top" width="69.03553299492386%" headers="d0e45 ">Yes</td>
</tr>
<tr><td valign="top" width="30.96446700507614%" headers="d0e43 "><strong>Also referred to as</strong></td>
<td valign="top" width="69.03553299492386%" headers="d0e45 ">Bitmap Probe, Preload <p>Row Number Bitmap Probe</p>
<p>Row
Number Bitmap Probe, Preload</p>
</td>
</tr>
<tr><td valign="top" width="30.96446700507614%" headers="d0e43 "><strong>Visual Explain icon</strong></td>
<td valign="top" width="69.03553299492386%" headers="d0e45 "><br /><img src="rzajq528.gif" alt="Bitmap probe icon" /><br /></td>
</tr>
</tbody>
</table>
</div>
<div class="section"><p>Using the example above, the optimizer created a temporary bitmap
for each of the encoded vector indexes. Additionally, an index probe operation
was performed against the radix index X1 to satisfy the ordering requirement.
Since the ORDER BY clause requires that the resulting rows be sequenced by
the WorkDept column, the temporary bitmap can no longer be scanned to process
the selected rows. However, the temporary bitmap can be probed using a row
address extracted from the index X1 used to satisfy the ordering. By probing
the temporary bitmap with the row address extracted from index probe operation,
the sequencing of the keys in the index X1 are preserved and the row can still
be tested against the selected rows within the bitmap.</p>
</div>
</div>
<div>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="rzajqtempbit.htm" title="The temporary bitmap is a temporary object that allows the optimizer to sequence rows based upon their row address (their row number). The bitmap can be either scanned or probed by the optimizer to satisfy different operations of the query.">Temporary bitmap</a></div>
</div>
</div>
</body>
</html>