Home of SQLTools++
  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