Saturday, December 22, 2007

SQLTools++ 1.10 RC2 is out

Good news, SQLTools++ 1.10 RC2 is out.

You can download it from the SQLTools++ homepage.

Here's a summary of the changes:

SQLTools++ Version 1.10RC2 (22-DEC-2007):

Improvements:
- Tested with Oracle 11g Server and Client, recognizes 11g as server/client version
- 11g session statistics supported
- Filter header bars added to connection dialog and schema browser object list, similar to SQLTools 1.5
- Freshened GUI look, the initial SQLTools++ release used accidentally the "old" Win9x style
- Execute script and halt on errors (new toolbar button)
- Execute script in external tool (new toolbar button)
- Use optionally DBMS_METADATA to generate DDL (can be used from Server version 9i onwards)
- Optionally save all files automatically before executing database operation
- Test connection/Reconnect in case you were disconnected from the database, similar to TOAD functionality (new toolbar button)
- Schema browser object list supports now Snapshots, Snapshot logs and the Recyclebin in 10g onwards
- Index as lookup object supported
- DDL generation support for database and DDL triggers
- Cleanup of Settings dialog: PlusPlus settings are now in a separate page grouped together
- Copy selected entries from schema browser and object viewer separated by newlines using new shortcut Ctrl+Alt+C in addition to the already supported Ctrl+C shortcut
- Handle NULL passwords better by offering a separate dialog to enter the missing password
- DBMS_OUTPUT now allows max. linesize of 32767 beginning with 10g
- Unlimited DBMS_OUTPUT supported in 10g or later
- 10g DBMS_XPLAN.DISPLAY_CURSOR emulation now available for Oracle9i, see "Data\display_cursor_9i.sql"
You may change the contents of the file to meet your needs, or even save the code in a persistent procedure/package and change the file contents to just call this procedure/package.
The file content is re-read each time the DISPLAY_CURSOR functionality is called
- MERGE sql statement now recognized and appropriate feedback provided (no. of rows merged)
- Popup Editor window can now be closed using the ESC key as shortcut
- Handle Oracle error ORA-28002 ("password expires in next days") more gracefully when opening a connection
- Check for update on web site with a single click. Although not yet automated, you will be redirected to a web page using the default browser of your system that shows you if there is a newer version available for download.
- Customizable settings regarding the "whitespace" and "blank" lines act as statement delimiter in the new "PlusPlus" settings page
- Installation cleanup, default settings, files and web links updated

Bugfixes:
- Fixed issue with background session connection (timing issue while establishing the connection)
- Explain plan did not adhere to "whitespace line" setting
- Auto-fit columns is now executed even if the column descriptions stay the same (there was a caching active that compared the current columns of the result set with the previous and in case they were the same no resizing took place. I deactivated that comparison because it annoyed me)
- Object lookup in Object Viewer for similar object names used previous object in case previous object name is superset (OBJECT_NAME1 vs. OBJECT_NAME) of current object name. Now an exact match is performed
- Lookup of partitioned object fails due to unknown object type error message, this has been fixed

Known Issues:
- Believe it or not, but the DBMS_METADATA package sometimes generates invalid and incomplete DDL. For instance generating the indexes of an table having LOB columns by calling DBMS_METADATA.GET_DEPENDENT_DDL attempts to create the LOB indexes explicitly using an incomplete and invalid CREATE INDEX command.
This holds true even for Oracle 11g, nevertheless I doubt that this is something you would dare to call a "feature"... Still I render the option to use DBMS_METADATA as useful.

5 comments:

Gena01 said...

Thank you for updating and keeping SQLTools alive. It's a great tool and I use it daily.

However there are a couple of short comings and bugs. In particular Object Viewer:
a. I don't understand why it's a dropdown because I never managed to see any sort of a list there. I guess it could be changed to either be a history of recently used/shown items or for completion.
b. Double clicking on an index or constraint pretty much hangs SQLTools++ as it's trying to load the information. I guess it's doing something wrong or strange. This is running against 10.2.0.1 Oracle.

Can you please look and possible address these issues?

Thank you,

Gena01

Randolf said...

Gena01,

thanks for the feedback.

Regarding your issues:

a) The list can actually be used as "object search" facility, just enter object names using SQL wildcards. E.g. "%CUST%" would populate the list with all accessible (via ALL_OBJECTS) objects that contain the string "CUST" in their name. So that's the reason why it originally was designed as dropdown list, I assume. Nevertheless, keeping a history sounds also like a good idea.

b) My assumption is - given that most of the queries used to get dictionary data still contain a "RULE" hint - that depending on the size and statistics of your particular database dictionary (number of objects, partitions etc.) the "RULE" hint might be causing suboptimal execution plans for dictionary queries in 10g. On some very large 10g databases I get similar effects when pressing the "F12" shortcut for object details, but it never hangs but just takes some seconds to run the query and populate the tree.

Since I use the tool on many 9i and 10g databases I assume that it's not a general issue, because I never encountered an actual "hang" of the application, but just short delays (but not on all 10g databases, only on some very large in terms of object count).

Nevertheless it is one of the things I have on my list, to get rid of the hardcoded "RULE" hints. I was actually thinking about this for the current release, but decided then to put it on hold and plan it for some future releases.

Regards,
Randolf

Gena01 said...

b) This actually used to be fine in 1.4 release (at least that I remember) and it regressed in a later release. For me things run very very slowly.. after 20-30 seconds I get a message box style dialog saying that it's loading things. I had it on the screen for minutes and I had to press cancel to stop it so I could use the program again. My concern is that all it needs to pull down is index or constraint information which shouldn't be so long. The only workaround that works for me is to open the Objects window and to select the table and see what the DDL SQL looks like including all indexes and contraints. (and this part works just fine and is quite fast)

Thank you,

Gena01

Randolf said...

Gena01,

I tried to reproduce your issue on some of the 10g databases I currently have access to, but it behaves the way I've described it.

So, if you like to and have the required access rights, could you use a session monitor query or tool and capture the SQL(s) that take(s) that long to complete in your case?

I just want to make sure that I'm working in the right direction, resp. removing the RULE hints solves your issue.

This way we could find out if you encounter a different issue.

If you have gathered some information, don't hesitate to send it to "info(at)sqltools-plusplus.org"

Regards,
Randolf

Gena01 said...

Just sent you an e-mail with the steps to reproduce.

Forgot to mention that according to my logs things were ok with 10.1 and not ok with 10.2. Could also be specific to 10.2.0.1.0.

Gena01