For many SQL-related problems, obtaining a reproducible test
case makes it easier to resolve the problem. Starting with the 11g Release
2 (11.2), Oracle Database contains the SQL Test Case Builder, which automates the somewhat
difficult and time-consuming process of gathering and reproducing as much
information as possible about a problem and the environment in which it
occurred.
SQL Test Case Builder captures information pertaining to a SQL-related
problem, along with the exact environment under which the problem occurred, so
that you can reproduce and test the problem on a separate database. After the
test case is ready, you can upload the problem to Oracle Support to enable
support personnel to reproduce and troubleshoot the problem.
The information gathered by SQL Test Case Builder includes the query being
executed, table and index definitions (but not the actual data), PL/SQL
functions, procedures, and packages, optimizer statistics, and initialization
parameter settings.
16.6.1 Creating a Test
Case
You can access the SQL Test Case Builder from Enterprise Manager or manually
using the DBMS_SQLDIAG
package.
16.6.1.1 Accessing SQL Test
Case Builder from Enterprise Manager
From Enterprise Manager, the SQL Test Case Builder is accessible only when a
SQL incident occurs. A SQL-related problem is referred to as a SQL incident, and
each SQL incident is identified by an incident number. You can access the SQL
Test Case Builder from the Support Workbench
page in
Enterprise Manager.
You can access the Support Workbench
page in either of
the following ways:
- In the Database Home page of Enterprise Manager,
underDiagnostic Summary
, click the link
toActive Incidents
(indicating the number of active
incidents). This opens theSupport Workbench
page, with
the incidents listed in a table. - Click Advisor
Central underRelated Links
to open
theAdvisor Central
page. Next, click SQL
Advisors and then Click here to go to
Support Workbench to open theSupport
page.
Workbench
From the Support Workbench
page, to access the SQL
Test Case Builder:
- Click an incident ID to open the problem details for the particular
incident. - Next, click Oracle Support in
theInvestigate and Resolve
section. - Click Generate Additional Dumps and Test
Cases. - For a particular incident, click the icon in the
Go To
column to run the SQL Test Case Builder.
TaskThe output of the SQL Test Case Builder is a SQL script that contains the
commands required to re-create all the necessary objects and the environment.
SQL Test Case Builder stores the file in the following location,
where inc_num refers to the incident
number and run_num refers to the run
number:$ADR_HOME/incident/incdir_inc_num/SQLTCB_run num
For example, a valid output file name could be as follows:
$ORACLE_HOME/log/diag/rdbms/dbsa/dbsa/incident/incdir_2657/SQLTCB_1
16.6.1.2 Accessing SQL Test
Case Builder Using DBMS_SQLDIAG
You can also invoke the SQL Test Case Builder manually, using
the DBMS_SQLDIAG
package. This package consists of
various subprograms for the SQL Test Case Builder, some of which are listed
in Table
16-1.
Table 16-1 SQL Test Case Builder Procedures in
DBMS_SQLDIAG
Procedure Name | Function |
---|---|
|
Generates a SQL test case |
|
Generates a SQL test case corresponding to the incident ID passed as an |
|
Generates a SQL test case corresponding to the SQL text passed as an |
For more information on this package and all of its procedures and
parameters, see Oracle Database PL/SQL Packages and Types
Reference.
http://docs.oracle.com/cd/E11882_01/server.112/e41573/sql_overview.htm#PFGRF94838