Chat now with support
Chat with Support

SQL Optimizer for Oracle 9.3.3 - User Guide

Welcome to SQL Optimizer
About SQL Optimizer SQL Optimization Workflow New in This Release Additional Resources Database Privileges Database Privileges Script Connect to the Database Windows Layout Customize Toolbars Keyboard Shortcuts Support Bundle Register SQL Optimizer Check for Updates SQL Operations
ALL PARTITION ALTER INDEX AND EQUAL ANTI JOIN BITMAP AND BITMAP COMPACTION BITMAP CONSTRUCTION BITMAP CONVERSION BITMAP INDEX BITMAP JOIN INDEX UPDATE BITMAP JOIN INDEX UPDATE STATEMENT BITMAP KEY ITERATION BITMAP MERGE BITMAP MINUS BITMAP OR BUFFER SORT CARTESIAN JOIN COLLECTION ITERATOR CONCATENATION CONNECT BY CONNECT BY PUMP COUNT COUNT STOPKEY CREATE AS SELECT CUBE SCAN DDL STATEMENT DELETE DOMAIN INDEX FAST FULL INDEX SCAN FILTER FIRST ROWS FIXED INDEX FIXED TABLE FOR UPDATE FULL INDEX SCAN FULL INDEX SCAN DESCENDING FULL INDEX SCAN (MIN/MAX) HASH GROUP BY HASH GROUP BY PIVOT HASH JOIN HASH JOIN BUFFERED HASH PARTITION HASH UNIQUE INDEX INDEX BUILD NON UNIQUE INDEX RANGE SCAN INDEX RANGE SCAN DESCENDING INDEX RANGE SCAN (MIN/MAX) INDEX SAMPLE FAST FULL SCAN INDEX SKIP SCAN INDEX SKIP SCAN DESCENDING INDEX UNIQUE SCAN INLIST ITERATOR INLIST PARTITION INSERT INTERSECTION INTO INVALID PARTITION ITERATOR PARTITION LOAD AS SELECT MAT_VIEW ACCESS MAT_VIEW REWRITE ACCESS MERGE JOIN MINUS MULTI-TABLE INSERT NESTED LOOPS OUTER JOIN PARTITION PARTITION HASH EMPTY PARTITION LIST PARTITION RANGE PROJECTION PX BLOCK ITERATOR PX COORDINATOR PX ITERATOR PX PARTITION PX PARTITION HASH ALL PX PARTITION LIST ALL PX PARTITION RANGE ALL PX RECEIVE PX SEND RANGE PARTITION RECURSIVE EXECUTION RECURSIVE WITH PUMP REFERENCE MODEL REMOTE SELECT SEMI JOIN SEQUENCE SINGLE PARTITION SINGLE RANGE PARTITION SORT SORT AGGREGATE SORT GROUP BY SORT GROUP BY CUBE SORT GROUP BY NOSORT SORT GROUP BY ROLLUP SORT JOIN SORT ORDER BY SORT UNIQUE SQL MODEL TABLE ACCESS TABLE ACCESS BY GLOBAL INDEX ROWID TABLE ACCESS BY INDEX ROWID TABLE ACCESS BY LOCAL INDEX ROWID TABLE ACCESS BY ROWID TABLE ACCESS BY USER ROWID TABLE ACCESS CLUSTER TABLE ACCESS FULL TABLE ACCESS HASH TABLE ACCESS SAMPLE TABLE QUEUE TEMP TABLE GENERATION TEMP TABLE TRANSFORMATION UNION UNION ALL UNION ALL (RECURSIVE WITH) UNPIVOT UPDATE VIEW VIEW PUSHED PREDICATE WINDOW
Optimize SQL
Create Optimize SQL Sessions Open Optimizer SQL Sessions Rewrite SQL Generate Execution Plan Alternatives
Optimize Indexes Batch Optimize SQL Scan SQL Inspect SGA Analyze Impact Manage Plans Configure Options SQL Optimizer Tutorials About Us Legal Notices

Test Run Different Bind Values

For SQL statements that contain a bind variable, you can use the Test Run Different Bind Values tab in Optimize SQL to test run SQL alternatives against a number of different bind values. This feature allows you to evaluate how one alternative performs against different bind values. In addition, you can compare the performance of different alternatives across a whole range of bind values within one test run.

You can manually enter bind values or import values from a .txt or .csv file. You can also find and use bind values captured by Oracle. If you import multiple values from a file, you can then select all or a subset of those values to test run. This allows you to easily reuse the same source file of bind values.

To use the Test Run Different Bind Values feature, your SQL must be valid and must contain at least one bind variable.

To test run SQL alternatives with different bind values

  1. Select the Optimize SQL tab in the main window.

  2. Select a SQL Rewrite or Plan Control Session.
  3. Enter a SQL statement with a bind variable.
  4. Click to generate SQL alternatives. See Optimize SQL Statements for more information about generating SQL alternatives.
  5. Test run the SQL alternatives in the SQL Details tab to find the best performing statements.
  6. After the test-run process is finished, select the Test Run Different Bind Values tab.
  7. In the Test Run Different Bind Values tab, select the alternatives you want to test run again using a range of bind values.
    • Select one or more (or all) alternatives by selecting the check box beside each SQL alternative.
  8. Click Define Bind Values in the breadcrumb navigation (upper panel) or click the Next->Define Bind Values button.
  9. Use the Define Bind Values page to build a list of values to use. You may want to test run the best performing alternatives against your most important bind values.
    1. If you want to change the data type for a bind variable, click the data type link in the header.
    2. The bind values you used to test run alternatives in the SQL Details tab are entered by default in Set 1.
    3. A Set consists of one bind value for each variable in the SQL statement.
  10. To specify multiple bind value sets, use one or more of the following methods. You can use more than one method to add to the list of values.
    • To manually enter values, click in the last row of the grid and enter a bind value or set of values. Repeat this process until your list is complete.
    • To find available bind values captured by Oracle and use these to populate the list, click .
    • To import values from a delimited .txt or .csv file, click .
    • To browse for values, use the Data Browser pane. See Set Bind Variables for more information.
  11. You can rename each set. Click within the Set Name column for each set and enter a name.
  12. Duplicate value sets and duplicate names are not allowed and are flagged ! for easy identification.
  13. To delete a set, select it and click . To export the list of bind values and save it as a file, click .
  14. When the list of bind values is complete, click Next->Finish Setup.
  15. In the Finish Setup page, select one of the following options:

    Test run only the newly added or modified

    (Applicable only when modifying a current test run)

    Select this option to test run only the alternatives you added and/or the bind value sets you added or modified.

    Test run all SQL using every set of bind values

    OR

    Test run everything again

    Select this option if you want to immediately test run all the SQL alternatives you selected using all the bind values you specified.
    Let me select what to test run Select this option if you want to select which SQL alternatives to test run or which bind values to use.
  16. Click Finish Setup.
    • If you selected to test run immediately, the Test Run Settings dialog opens. Specify test-run options for this test run and click Start Test Run. See Test Run Settings for more information.

      SQL Optimizer runs the SQL alternatives you selected using each bind value set you defined.

    • If you selected Let me select what to test run, a page opens allowing you to select which SQL alternatives to test run and which bind values to use.

      Make your selections and then click Finish Setup.

      If you selected to test run multiple alternatives, the Test Run Settings dialog opens. Specify test-run options for this test run and click Start Test Run. See Test Run Settings for more information.

  17. During the test run, view test-run progress in the Summary pane.
  18. Click to abort the currently executing bind value set.
  19. Click to stop the test run process. See Stop and Resume the Optimization Process for more information.

To review test-run results

  1. Summary pane. When the test-run process is finished, the Summary pane displays a summary of results for the selected alternatives you tested.

    • To modify the list of alternatives or bind values and then rerun, click one of the View/Modify links in the Summary pane.
  2. Alternatives pane. The Alternatives pane displays the run-time statistics.
    • The master grid shows test-run status and run-time averages for each alternative using all bind value sets.
    • Click + next to each alternative to expose the run-time statistics for each bind value set. Grids are nested for easy viewing.
    • The nested grids show the run-time statistics for each execution of an alternative with one bind value set.
    • Review the Performance for Bind Sets column—The graph in this column displays the relative performance within the group of bind values. Use this chart to observe variation in SQL performance when different bind values are used. Then compare the differences in the amount of variation for different alternatives.

      Click the Average Elapsed Time link to change the statistic used to draw the graph. (Changing the performance statistic in this column changes it for all grids and the performance charts.)

  3. Review the Performance Charts to see performance information for the top SQL.
    • The chart displays the top ten (or less) alternatives based on the selected performance criteria.
    • You can select which top alternatives to display by selecting alternatives in the selection pane.
    • Click the Average Elapsed Time link to change the performance criteria displayed in the chart (and the grids).
    • Use the cursor to hover over the chart to display performance details for each top alternative.
    • Select Show distribution (Overall performance view) to display the actual data points. This allows you to see the distribution of test-run results for the different bind value sets. You can gauge how stable the performance of an alternative is, based on this distribution, e.g., are results clustered or dispersed.
    • If a SQL was terminated, the Number of incomplete test runs is represented by a red bar below the x axis. The number represents the bind value sets that were not test run.

      To show more or all terminated test runs, in the field directly above the performance chart, click the link to increase the number of terminated test runs to display.

    • In the View field, you can select to display either the Overall performance or the Performance variation view.
    • In the Performance variation view, you can change the chart line color for an alternative. Click the color-coded alternative name in the legend/selection pane and select a color from the palette.
  4. To rerun one or more alternatives from the results page, select one of the test-run actions from the toolbar. See Test Run SQL Alternatives for more information about test run actions.
  5. Return to the SQL Details tab—You can return to the SQL Details tab at any time to perform Optimization / Test Run tasks. Some actions on the SQL Details tab, such as deleting alternatives, can result in changes to your Test Run Different Bind Values results. If you attempt an action that may affect your Test Run Different Bind Values results, SQL Optimizer warns you.

 

Related Topic

 

Use Execution Plans

About Execution Plans

The execution plan displays the steps a database takes to execute a SQL statement. You can use the execution plan to determine if a statement is efficient.

In the step formats (like Tree Plan) each step indicates how SQL Optimizer retrieves rows of data. The steps are numbered in the order of execution to make the plan easier to read.

Oracle executes each child operation before the parent operation. For some SQL statements, Oracle executes the parent operation once it retrieves a single row from the child operation. Other SQL statements require that Oracle retrieve all rows from the child operation before it executes the parent operation.

Reviewing Execution Plans

Use the Execution Plan window to review the execution plan for the original SQL statement or selected alternative. Several display options and configurations are available.

You can select an execution plan format, configure plan content, and customize plan text.

To select a plan format

  1. Right-click the execution plan and select View Plan | option.
  2. Select one of the following formats:
    • Tree Plan—Displays plan as tree view with numbered steps.
    • DBMS_XPlan (Formatted)—Displays plan using the DBMS_XPLAN output with added formatting.
    • DBMS_XPlan (Plain Text)—Displays plan using the DBMS_XPlan output as plain text. This is the format returned by Oracle.
    • Graphic Plan—Displays a graphic view of the plan. Includes numbered steps.
    • MS Graphic Plan—Displays a graphic type view. Includes numbered steps.
    • Plain Language Plan—Lists steps using descriptions in plain language.
  3. Go to Review Execution Plans to learn more about the different plan formats and how to customize them.

Execution Plan Window - Optimize SQL

The Execution Plan window displays the available execution plans. Each tab contains a different type of execution plan.

  • Default Plan—The Default Plan tab displays the execution plan chosen by Oracle and is retrieved using the EXPLAIN PLAN statement. Click to retrieve the default plan after entering/importing the original SQL.
  • Actual Plan—The Actual Plan is retrieved from the plan cache after execution and is the actual execution plan performed by the database to execute the statement.

  • Virtual Plan—The Virtual Plan tab is displayed for indexes when you generate index alternatives in an Optimize SQL, SQL Rewrite session. See Fill Missing Execution Plans for more information about retrieving other execution plans for index alternatives.

Execution Plan Actions

Right-click in the Execution Plan window to select from the following actions:

Action

Description

Copy

Copies the execution plan to the clipboard.

Save

Saves the execution plan as a .jpg file. The DBMS_XPlan formats can be saved as a .txt file also.

Print

Opens the print window so you can print the execution plan.

View Plan

Allows you to change how the execution plan is displayed.

Step Description Select this option to display a description of the selected step in the Execution Plan pane footer.
Plan Information

If you select this option, SQL Optimizer identifies whether an execution plan uses any of the following: cardinality feedback, dynamic sampling, SQL plan directives, or adaptive plan. If applicable, the information displays in the Execution Plan pane directly above the Execution Plan tab.

Animate Plan Steps

Highlights, one-by-one, the execution plan steps.

Plan Options

Opens the Execution Plan Options window so you can select which information is displayed in the execution plan and whether to display specific items as a column.

Help on plan step

Displays the help text for the currently selected step in the execution plan.

Help on Execution Plan

Opens online help for the Execution Plan window.

 

Related Topics

Fill Missing Execution Plans

Copy Execution Plans

Retrieve Execution Plans

Available execution plans for a selected SQL statement are displayed in the Execution Plan window. In Optimize SQL, if a plan is not displayed, use one of the following methods to retrieve it.

To retrieve the Default Plan

  • After entering or importing SQL in an Optimize SQL session, click . SQL Optimizer retrieves the default plan.

    Note: When you generate virtual index alternatives, the execution plan is not retrieved for the SQL statement because SQL Optimizer does not physically create indexes on the database. See Fill Missing Execution Plans for more information.

To retrieve the Actual Plan

  • To retrieve an Actual Plan, do one of the following:
    • Execute the selected SQL statement.
    • For the selected statement, select the Actual Plan tab and then click the Execute link.

Tip: Click the arrow beside and select Refresh All Plans to refresh the plans that have already been retrieved.

 

Related Topics

Animate Execution Plans

Copy Execution Plans

Related Documents

The document was helpful.

Select Rating

I easily found the information I needed.

Select Rating