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

181 lines
11 KiB
HTML

<?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="Additional database monitor examples" />
<meta name="abstract" content="The following are additional ideas or examples on how to extract information from the performance monitor statistics. All of the examples assume data has been collected in LIB/PERFDATA and the documented views have been created." />
<meta name="description" content="The following are additional ideas or examples on how to extract information from the performance monitor statistics. All of the examples assume data has been collected in LIB/PERFDATA and the documented views have been created." />
<meta name="DC.subject" content="database monitor, examples" />
<meta name="keywords" content="database monitor, examples" />
<meta name="DC.Relation" scheme="URI" content="dbmonexamples.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="rzajqmon4" />
<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>Additional database monitor examples</title>
</head>
<body id="rzajqmon4"><a name="rzajqmon4"><!-- --></a>
<!-- Java sync-link --><script language="Javascript" src="../rzahg/synch.js" type="text/javascript"></script>
<h1 class="topictitle1">Additional database monitor examples</h1>
<div><p>The following are additional ideas or examples on how to extract
information from the performance monitor statistics. All of the examples assume
data has been collected in LIB/PERFDATA and the documented views have been
created.</p>
<div class="section"> <ol><li>How many queries are performing dynamic replans? <pre> <strong>SELECT</strong> COUNT(*)
<strong>FROM</strong> LIB/QQQ1000
<strong>WHERE</strong> Dynamic_Replan_Reason_Code &lt;&gt; 'NA'</pre>
</li>
<li>What is the statement text and the reason for the dynamic replans? <pre> <strong>SELECT</strong> Dynamic_Replan_Reason_Code, Statement_Text_Long
<strong>FROM</strong> LIB/QQQ1000
<strong>WHERE</strong> Dynamic_Replan_Reason_Code &lt;&gt; 'NA'</pre>
<div class="note"><span class="notetitle">Note:</span> You
need to refer to the description of column Dynamic_Replan_Reason_Code for
definitions of the dynamic replan reason codes.</div>
</li>
<li>How many indexes have been created over LIB1/TBL1? <pre> <strong>SELECT</strong> COUNT(*)
<strong>FROM</strong> LIB/QQQ3002
<strong>WHERE</strong> System_Table_Schema = 'LIB1'
<strong>AND</strong> System_Table_Name = 'TBL1'</pre>
</li>
<li>What key columns are used for all indexes created over LIB1/TBL1 and what
is the associated SQL statement text? <pre><strong>SELECT</strong> A.System_Table_Schema, A.System_Table_Name,
A.Index_Advised_Columns, B.Statement_Text_Long
<strong>FROM</strong> LIB/QQQ3002 A, LIB/QQQ1000 B
<strong>WHERE</strong> A.Join_Column = B.Join_Column
<strong>AND</strong> A.Unique_Count = B.Unique_Count
<strong>AND</strong> A.System_Table_Schema = 'LIB1'
<strong>AND</strong> A.System_Table_Name = 'TBL1' </pre>
<div class="note"><span class="notetitle">Note:</span> This query
shows key columns only from queries executed using SQL.</div>
</li>
<li>What key columns are used for all indexes created over LIB1/TBL1 and what
was the associated SQL statement text or query open ID? <pre><strong>SELECT</strong> A.System_Table_Schema, A.System_Table_Name, A.Index_Advised_Columns,
B.Open_Id, C.Statement_Text_Long
<strong>FROM</strong> LIB/QQQ3002 A <strong>INNER JOIN</strong> LIB/QQQ3014 B
<strong>ON</strong> (A.Join_Column = B.Join_Column <strong>AND</strong>
A.Unique_Count = B.Unique_Count)
<strong>LEFT OUTER JOIN</strong> LIB/QQQ1000 C
<strong>ON</strong> (A.Join_Column = C.Join_Column <strong>AND</strong>
A.Unique_Count = C.Unique_Count)
<strong>WHERE</strong> A.System_Table_Schema <strong>LIKE</strong> '%'
<strong>AND</strong> A.System_Table_Name = '%' </pre>
<div class="note"><span class="notetitle">Note:</span> This query shows
key columns from all queries on the server.</div>
</li>
<li>What types of SQL statements are being performed? Which are performed
most frequently? <pre><strong>SELECT</strong> <strong>CASE</strong> Statement_Function
<strong>WHEN</strong> 'O' <strong>THEN</strong> 'Other'
<strong>WHEN</strong> 'S' <strong>THEN</strong> 'Select'
<strong>WHEN</strong> 'L' <strong>THEN</strong> 'DDL'
<strong>WHEN</strong> 'I' <strong>THEN</strong> 'Insert'
<strong>WHEN</strong> 'U' <strong>THEN</strong> 'Update'
<strong>ELSE</strong> 'Unknown'
<strong>END</strong>, COUNT(*)
<strong>FROM</strong> LIB/QQQ1000
<strong>GROUP BY</strong> Statement_Function
<strong>ORDER BY</strong> 2 DESC </pre>
</li>
<li>Which SQL queries are the most time consuming? Which user is running
these queries? <pre><strong>SELECT</strong> (End_Timestamp - Start_Timestamp), Job_User,
Current_User_Profile, Statement_Text_Long
<strong>FROM</strong> LIB/QQQ1000
<strong>ORDER BY</strong> 1 <strong>DESC</strong></pre>
</li>
<li>Which queries are the most time consuming? <pre><strong>SELECT</strong> (A.Open_Time + B.Clock_Time_to_Return_All_Rows),
A.Open_Id, C.Statement_Text_Long
<strong>FROM</strong> LIB/QQQ3014 A <strong>LEFT OUTER JOIN</strong> LIB/QQQ3019 B
<strong>ON</strong> (A.Join_Column = B.Join_Column <strong>AND</strong>
A.Unique_Count = B.Unique_Count)
<strong>LEFT OUTER JOIN</strong> LIB/QQQ1000 C
<strong>ON</strong> (A.Join_Column = C.Join_Column <strong>AND</strong>
A.Unique_Count = C.Unique_Count)
<strong>ORDER BY</strong> 1 <strong>DESC</strong> </pre>
<div class="note"><span class="notetitle">Note:</span> This example assumes detail
data was collected (STRDBMON TYPE(*DETAIL)). </div>
</li>
<li>Show the data for all SQL queries with the data for each SQL query logically
grouped together. <pre><strong>SELECT</strong> A.*
<strong>FROM</strong> LIB/PERFDATA A, LIB/QQQ1000 B
<strong>WHERE</strong> A.QQJFLD = B.Join_Column
<strong>AND</strong> A.QQUCNT = B.Unique_Count</pre>
<div class="note"><span class="notetitle">Note:</span> This might be used
within a report that will format the interesting data into a more readable
format. For example, all reason code columns can be expanded by the report
to print the definition of the reason code (that is, physical column QQRCOD
= 'T1' means a table scan was performed because no indexes exist over the
queried table).</div>
</li>
<li>How many queries are being implemented with temporary tables because a
key length of greater than 2000 bytes or more than 120 key columns was specified
for ordering? <pre><strong>SELECT</strong> <strong>COUNT</strong>(*)
<strong>FROM</strong> LIB/QQQ3004
<strong>WHERE</strong> Reason_Code = 'F6'</pre>
</li>
<li>Which SQL queries were implemented with nonreusable ODPs? <pre><strong>SELECT</strong> B.Statement_Text_Long
<strong>FROM</strong> LIB/QQQ3010 A, LIB/QQQ1000 B
<strong>WHERE</strong> A.Join_Column = B.Join_Column
<strong>AND</strong> A.Unique_Count = B.Unique_Count
<strong>AND</strong> A.ODP_Implementation = 'N';</pre>
</li>
<li>What is the estimated time for all queries stopped by the query governor?
<pre><strong>SELECT</strong> Estimated_Processing_Time, Open_Id
<strong>FROM</strong> LIB/QQQ3014
<strong>WHERE</strong> Stopped_By_Query_Governor = 'Y' </pre>
<div class="note"><span class="notetitle">Note:</span> This example
assumes detail data was collected (STRDBMON TYPE(*DETAIL)). </div>
</li>
<li>Which queries estimated time exceeds actual time? <pre><strong>SELECT</strong> A.Estimated_Processing_Time,
(A.Open_Time + B.Clock_Time_to_Return_All_Rows),
A.Open_Id, C.Statement_Text_Long
<strong>FROM</strong> LIB/QQQ3014 A <strong>LEFT OUTER JOIN</strong> LIB/QQQ3019 B
<strong>ON</strong> (A.Join_Column = B.Join_Column <strong>AND</strong>
A.Unique_Count = B.Unique_Count)
<strong>LEFT OUTER JOIN</strong> LIB/QQQ1000 C
<strong>ON</strong> (A.Join_Column = C.Join_Column <strong>AND</strong>
A.Unique_Count = C.Unique_Count)
<strong>WHERE</strong> A.Estimated_Processing_Time/1000 &gt;
(A.Open_Time + B.Clock_Time_to_Return_All_Rows)</pre>
<div class="note"><span class="notetitle">Note:</span> This
example assumes detail data was collected (STRDBMON TYPE(*DETAIL)). </div>
</li>
<li>Should a PTF for queries that perform UNION exists be applied. It should
be applied if any queries are performing UNION. Do any of the queries perform
this function? <pre> <strong>SELECT</strong> COUNT(*)
<strong>FROM</strong> QQQ3014
<strong>WHERE</strong> Has_Union = 'Y'</pre>
<div class="note"><span class="notetitle">Note:</span> If result is greater than
0, the PTF should be applied.</div>
</li>
<li>You are a system administrator and an upgrade to the next release is planned.
You want to compare data from the two releases. <ul><li>Collect data from your application on the current release and save this
data in LIB/CUR_DATA</li>
<li>Move to the next release</li>
<li>Collect data from your application on the new release and save this data
in a different table: LIB/NEW_DATA</li>
<li>Write a program to compare the results. You will need to compare the
statement text between the rows in the two tables to correlate the data.</li>
</ul>
</li>
</ol>
</div>
</div>
<div>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="dbmonexamples.htm" title="The iSeries navigator interface provides a powerful tool for gathering and analyzing performance monitor data using database monitor. However, you may want to do your own analysis of the database monitor files.">Database monitor examples</a></div>
</div>
</div>
</body>
</html>