It seems like all I post anymore is ClearTrace releases. I guess that’s not a bad thing.
The next build is available. This is the full release of the multi-user functionality. In earlier versions all I cared about was performance. I did everything I could to make it as fast as possible. I had just discovered SqlBulkCopy and it was my new hammer. And all of ClearTrace looked like a nail. The application would use SqlBulkCopy to load a summary of each trace file as it was read into memory. All the dimensions I created (application, login, SQL statement, etc.) were loaded after all the trace files were loaded. Also using SqlBulkCopy of course. It was fast! It was also pretty horrible if two people were processing traces at the same time into the same database. The same dimensions ended up in the database multiple times with different values or the program just errored out. If you happened to run a query while a trace was processing you got “interesting” results as the joins would partially fail. It also forced me to take some design shortcuts in my database.
This is a companion discussion topic for the original entry at http://billg.sqlteam.com/2009/05/27/cleartrace-2008-34/