|
Changelog |
|
|
|
The following is the list of
changes to this release of SQLTools++ since the latest
stable version 1.42RC3 of the original SQLTools available at
http://www.sqltools.net.
SQLTools++ is based on the source code of that original version and
adds the following features/changes:
- Scan for beginning of SQL
statement rather than taking current line as beginning
This works now always for completely blank lines (no char, not
even whitespace). In the Settings you can enable this for
"whitespace" lines, too. In this case lines in the editor
consisting only of whitespace will also considered as statement
separator. Please note that this only applies to "Execute
current", in "Execute script" mode you still need appropriate
delimiters like semicolon etc.
- Use blank line as single SQL
statement delimiter rather than semicolon
Same applies as above, in "Execute current" mode the end of a
statement will now be marked by blank lines (and in
addition by whitespace lines, depending on
settings)
- Show more verbose information in
status bar when executing SQL (the time to first fetch (actual
execution time), although this is available in the "Output" pane,
I don't want to switch the panes all the time)
- In Oracle 9i and above, use
Oracle DBMS_XPLAN package for explain plan (very important when
doing statement level performance tuning, provides invaluable
information, even more in 10gR1, 10gR2)
Old and new plan output is available for 9i and above. By
default, DBMS_XPLAN.DISPLAY output is shown, but by
right-clicking into the text, the context menu offers the option
to display the old tree-like plan. Sometimes it's more helpful to
be able to collapse/expand the tree, e.g. very complex plans
where you can't identify easily which steps are on the same
level. When switching the pane, the new output is shown
again.
- Enable "Describe" in object list,
which means that you can press F12 in object list and then see
the details in the object viewer. The "Describe" option has been
added to the object list context menu as well.
- Copy selected objects to
clipboard as comma separated list in Object List and Object
Viewer
Use the accelerator for copying to the clipboard (default CTRL+C)
to copy the list to the clipboard. In the Object List you can
also click the "Copy" button or select "Copy" from the context
menu.
- Drag&Drop for Object List and
Object Viewer to support multi-selection and double-click
The Object Viewer now supports multi-selection. In addition, if
multiple entries are selected, Drag&Drop drops a
comma-separated list of the selected objects. This applies to
both Object Viewer and Object List. In addition you can
double-click a leaf entry in the Object Viewer and it will paste
this entry into the editor at the current cursor
position.
- Support of Cardinality Feedback
Tuning (for 9i and later)
Starting with Oracle 9i, you can enable the generation of
extended statement execution statistics which are then available
in V$SQL_PLAN_STATISTICS resp. V$SQL_PLAN_STATISTICS_ALL. In
Oracle 9i, you need to set parameter "statistics_level" to "ALL"
on session or system level, in 10g you can use the hint
"gather_plan_statistics" to enable this for a single
statement.
In 10g, the package DBMS_XPLAN.DISPLAY_CURSOR shows these
execution statistics so that you can compare the optimizer
cardinality estimations to the actual rowsource output, which in
my opinion is one of the most efficient SQL statement tuning
methods, because the CBO usually generates very reasonable plans
if the cardinality estimates are correct. But if the estimates
are way off, this is very often the cause of very poor performing
statements, since whole execution of a statement is affected by
this wrong estimate, and therefore the order and access paths
chosen by the optimizer are far from being "optimal". You can
find in-depth information about this e.g. on Wolfgang Breitling's
site "Centrex Consulting" http://www.centrexcc.com.
For 10g this is done (so the output of DBMS_XPLAN.DISPLAY_CURSOR
is shown in the PLAN pane each time a statement is executed if
you select the option in the "Sesion" menu or the Settings of the
session), for 9i, the DISPLAY_CURSOR table function is not
available, so I'm currently in the process of preparing a
similar query on V$SQL_PLAN_STATISTICS_ALL and format the output
accordingly. This should basically do an emulation of the
DISPLAY_CURSOR functionality in 9i. Query has been defined, but
the tedious work of properly formatting the output is not done
yet.
- Background session support
I've added generic support for a "background session" on the same
physical connection (so in case you're using the default
dedicated server mode, both sessions will be handled by the same
dedicated server process, thanks to Tom Kyte for pointing this
out in his books). In case you're now enabling "Session
statistics" or "DISPLAY_CURSOR output", this background session
will be established, in case you deselect both, it will be
disconnected. It can be identified in the CLIENT_INFO column of
V$SESSION as background session. Session statistics and
DISPLAY_CURSOR will be run by the background session so that they
don't interfere with the primary connection (in terms of
statistics, although the current session measuring already tries
to minimize the impact of measuring the stats, performing it in a
separate session ensures this. SQL*Plus AUTOTRACE STATISTICS does
the same - adding a second session on the same physical
connection for measuring - as far as I know).
- Session
statistics revised
The session statistics are now more sophisticated. The default
mode is "Auto detect" which means that the appropriate set of
available session statistics is selected depending on the
database version. I've provided the complete set of session
statistics for 9iR2 Enterprise Edition and 10gR2 Enterprise
Edition. For versions lower than 9i the old set of statistics
will be used.
In the Settings dialog you can force the statistics set to use if
you don't want to use the "Auto detect" feature. In addition you
can create your own set of statistics by selecting "Custom" from
the statistics drop-down list and customizing the file
"data/sesstat_Custom.dat" in your SQLTools installation
directory. You'll find the remaining statistics definition files
there as well.
- Popup-Editor for showing Grid
cell contents
Similar to TOAD the context menu of the Grid now offers the
option to show the cell contents in a separate Popup Window. In
the context menu of the Popup Window you can copy the contents to
the clipboard and select whether you like to have word-wrapping
active or not.
- Reload NLS session settings after
"ALTER SESSION" command
If you issue an "ALTER SESSION" command the current NLS session
settings are re-read, because so far these were only read at
beginning of the session and cached in memory. Any changes to
your NLS environment during the session weren't reflected by the
settings stored in the cache, but now the cache will be
refreshed.
- Proper formatting of execution
time in case of execution times greater than one minute
The formatting of execution times more than a minute was
incorrect.
- Various keyboard accelerators and
handling issues fixed
If you are in the Object Viewer you can close it now using its
assigned keyboard accelerator (default ALT+1). Closing windows
like Object List, Object Viewer etc. using the keyboard
accelerators now sets the focus again to the currently active
editor window.
The wish
list
Here is the ever growing list of features I would like to add, but
haven't managed to cope with yet.
- Enable filter in Object list
Enable those greyed out filter controls to filter the objects
shown in the Object List
- In Oracle 9i and above, use
Oracle DBMS_METADATA package for DDL extraction
Probably one of the next features I'll add, it doesn't seem to be
too complex. It should provide support for many more object types
and out-of-the-box support for many features like partitioning
etc.
- Edit Data feature: Extend
existing Grid to enable DML operations
(INSERT/UPDATE/DELETE)
- Online visual match: Highlight
matching braces/brackets etc. when moving cursor (more an
OpenEditor issue)
- Completey fix Auto-Fit in Grid to
data, which sometimes does not work for me as intended
Tip: Adjust the "Max column length" setting in the "Data Grid 1"
options. It means the maximum number of chars to be used for
calculating the column width.
- Multi-connection feature
Idea is to have support for multiple DB connections at the same
time, and you can select from a drop-down list of connections
which you want to use as current connection in your SQL
worksheet. Currently you need to start multiple instances of
SQLTools++ to keep multiple connections open at the same
time.
- Threaded query support
Non-blocking execution of SQL
- Execution Time in SQL history
- Automatically save files before SQL execute
- Null password on connect should show a separate password entry dialog / preselect SYSDBA if connect as SYS
- Run SQL file in external tool (e.g. SQL*Plus)
|
|
|
|
|
SQLTools++
SQLTools++ is published under the GNU General Public License
(GPL). This means that this tool can be used free of charge under the GPL. The formal terms
of the GPL license can be found at http://www.gnu.org/licenses/.
SQLTools++ release version "SQLTools_pp 1.0.2 RC1"
Release Date 28/Mar/2007
Download the Windows installer here:
SQLTools_pp_1.02RC1.exe
File size: 1.077.762 bytes
MD5: ad45b2c316cb1ca841a744b5ee6cee09
SHA1: 318544abb2f262c8c0493a4caf5421d1282864c9
Virus checked on http://www.virustotal.com, no viruses were found
Installation instructions: If you have already an existing installation of the
original SQLTools, I recommend to install SQLTools++ in a separate directory as these
versions are not compatible to each other in terms of support files they require. If you
have customised your existing installation (e.g. keyboard accelerators) you can try to
move/migrate your changes to the new installation, but be aware that new lines have been
added to some of the config files, so keep a backup of the original files in case the
application does not start anymore after modifying the configuration.
Download the source tarball here:
sqlt_1.02RC1.tar.gz
Browse the CVS repository here:
http://www.sqltools-plusplus.org:7676/cgi-bin/viewvc.cgi
The corresponding CVS tag for this release is: "sqltpp_1_02RC1_3"
You can download the source tarball also from the CVS repository
browser.
Build instructions: You need Visual C++ 2005, Oracle OCI 10g
libraries and header files (part of any regular Oracle database or client
installation) and the MFC libraries, which means that Visual C++ 2005 Express Edition is
not sufficient since it does not contain the MFC libraries and header files. You can
download or order a trial version of Visual Studio 2005 from the Microsoft homepage:
http://www.microsoft.com/emea/msdn/visualstudio/getthetrials/default.aspx
The Professional Edition trial version available there is
sufficient, you don't need the Team Edition.
The Project file to use is: SQLTools2005.sln or SQLTools2005.vcproj in the SQLTools subdirectory
|