Friday, June 30, 2006

Unix command line utilities for Windows

I'm not a very experienced UNIX developer by any stretch of imagination but I enormously appreciate its command line utilities and just how much they make my life easier. I grew up using DOS command line (and before that ZX Spectrum's line editor!) and to this day the task I most commonly run (Win+R) is "cmd". On top of that, the very first thing I install on a new box is "Open Command Window Here" Explorer context menu option! So even though I got exposed to UNIX relatively late in my career (so far) I quickly learned to love its tools (except vi!) Since I've been exposed to them I had to start using UNIX command line tools on Windows as well. The port I use is called UnxUtils and can be found here. It's not a full port but it works for me. Actually seems to be a set of ports of GNU utilities and as we all know "GNU's Not Unix" but whatever - it works great for me.

Btw, I'm looking forward very much to Windows PowerShell (The Shell Formerly Known As Monad) A very very cool piece of technology (with now a very lame name but that's a lack of geekiness in MS marketing divisions for you) Microsoft is finally getting its game up for command line. I just wish this was released already!

"The Power of the Marginal" by Paul Graham

A new essay by Paul Graham titled "The Power of the Marginal" is up (you can find it here) As always Paul is a joy to read. Even when I don't agree with him (usually I do and very much so) his esseys never fail to make me think through the issues he's writing about.

New info on upcoming version of ApexSQL Log

I have just left a small post on over on our corporate blog about three major features that will be available in the upcoming version of ApexSQL Log (a.k.a. the-only-SQL-Server-2005-transaction-log-reading-tool amongst those in the known)

Monday, June 26, 2006

ApexSQL Log 2005.02 has been released

We have posted the new version of axLog - 2005.02. Here are the release notes for it:
----------------------------------------------------
RELEASE 2005.02
DATE: 26 June 2006
DESCRIPTION: Major Enhancement/Fix release
----------------------------------------------------

Enhancements:

- Added "User Id" and "Login Time" columns to grid.
"User Id" column shows either UID or SID depending on
SQL Server version.
"Login Time" column shows the time of the login of the
connection on which the transaction was made.
- Added selection of available transaction log backups.
- Added selection of heterogenous log sources to GUI.
- Added in Row Details icons indicating columns that are
part of table's clustered index or primary key.
- Added difference viewer for UPDATE operations.
- Added internal viewer of column values for INSERT and
DELETE operations.
- Added column level regular expressions filter for tables
in log operations grid.
- Added support for user defined types (non-CLR).
- Added milliseconds to to/from filters in CLI.

Changes:

- Limited the number of rows recovered by Recovery Wizard
during product evaluation.

Fixes:

- A problem with user filtering (MAJOR FIX)
- A major performance issue (MAJOR FIX)
- A problem with CLR user defined types (MAJOR FIX)
- A problem with IS NULL row filter when used from GUI.
- A problem with reading of aborted transactions.
- A problem with showing application tab in task bar.
- A problem with opening new filtered log.
- A rare problem with remote installation failing on
local server.
- A rare problem with UPDATE reconstruction.
- A problem with remote online transaction log auditing
with files over 2Gb in size.
- A rare problem with server side logs not being found
in system32 folder.
- An unhandled exception thrown by Field Values Filter
with no continuation operator.
- A problem with BLOB fields appearing in UNDO/REDO
statements.
- A problem with REDO/UNDO not taking into account the
primary key on tables with no clustered index.
- A rare problem with row reconstruction.
- A rare problem with dropped table recovery when
recovering from online database data.
- A problem with adding servers with expired trial version
to the server tree.
- A problem with copying from REDO/UNDO tabs to clipboard.
- A problem with closing log window.
- Several minor GUI issues.
This release was all about fixing any problems that were reported in the last 3 and so months since the relase of 2005.01 but we also added some enhancements. Two biggest enhancements are User ID and Login Time columns in the audit grid and support of heterogenous transaction log sources in GUI (it was already suppored in CLI) The next major release will be all about new features and improvements. I can tell you that this next version has been in development for some time now and should be out in Q3. I will blog more on upcoming features soon - there is a lot of stuff already done and much more in the works.

Saturday, June 24, 2006

Recoverying data from large dbs

As you can see from this forum thread some of ApexSQL Log (aka axLog) users are having performance problems with recovery of large dbs from detached (and in this case seemingly corrupted) MDF files. In this case it's a db with 220gb of data split in 4 files. In the current version of axLog (2005.02, which is comming out tomorrow) recovery process makes one pass through MDF files per recovered table. On the other hand we don't offer selection of tables to be recovered. Put these two things together and you get performance problems on very large dbs. We have been aware of this for a while so in next major version we will offer:
  1. Selection of tables to recover.
  2. Output of recovered data for each table into separate files.
This will allow users to select only what they need to recover and have it recovered in only one pass. We will offer this for recovery from detached MDF files and for the upcoming recovery from database backups.

SQL Server Storage Engine blog

Folks from SQL Server Engine Team have been blogging since recently. So far mosts posts are by Paul Randal, Lead Program Manager. The content is really top notch and in these 3 weeks since they started blogging I can honestly say that it has become a required reading for those of us that are interested in internal workings of SQL Server.

Friday, June 23, 2006

Output to console from .NET GUI apps

I have posted on ApexSQL's blog an article on output to console from .NET GUI apps.