Explain
=======

DESCRIPTION
-----------

Explain is a GUI-based tool that enables easier visualisation of Oracle Query
plans.  A query plan is the access path that Oracle will use to satisfy a SQL
query.  The Oracle query optimiser is responsible for deciding on the optimal
path to use.  Needless to say, understanding such plans requires a fairly
sophisticated knowledge of Oracle architecture and internals.

Explain allows a user to interactively edit a SQL statemant and view the
resulting query plan with the click of a single button.  The effects of
modifying the SQL or of adding hints can be rapidly established.

Explain allows the user to capture all the SQL currently cached by Oracle.  The
SQL capture can be filtered and sorted by different criterea, e.g. all SQL
matching a pattern, order by number of executions etc.

Explain is written using Perl, DBI/DBD::Oracle and Tk.

PREREQUISITES
-------------

1.  Oracle 7 or Oracle 8, with SQL*Net if appropriate
2.  Perl 5.004_04 or later
3.  DBI version 1.02 or later
4.  DBD::Oracle 0.54 or later
5.  pTk 800.011 or later
6.  Tk::Pod 3.15 or later

Items 2 through 6 can be obtained from any CPAN mirror.

INSTALLATION
------------

1.  Check you have all the prequisites installed and working.
2.  perl Makefile.PL; make install
3.  Make sure you have run the script $ORACLE_HOME/rdbms/admin/utlxplan.sql
    from a SQL*Plus session.  This script creates the PLAN_TABLE that is used
    by Oracle when explaining query plans.

DOCUMENTATION
-------------

Online, via the 'Help' menu, or 'perldoc explain'

COPYRIGHT AND DISCLAIMER 
------------------------

Copyright (c) 1999 Alan Burlison

You may distribute under the terms of either the GNU General Public License
or the Artistic License, as specified in the Perl README file, with the
exception that it cannot be placed on a CD-ROM or similar media for commercial
distribution without the prior approval of the author.

This code is provided with no warranty of any kind, and is used entirely at
your own risk.

This code was written by the author as a private individual, and is in no way
endorsed or warrantied by Sun Microsystems.
