with (nolock)

Home of the Dirty Read
Welcome to with (nolock) Sign in | Join | Help
in Search

The Daily Dirty Read

  • PASS 2007 Service Broker Presentation

    The following link contains my slides and code samples from my Service Broker presentation that was presented at PASS 2007 (September 19th, 2007)

    http://withnolock.com/communityserver/files/folders/23/download.aspx

  • Debugging/Profiling for SSMS

    After a long wait, I am almost completed with a new debugger/profiler for SSMS that will be available from ApexSQL very soon.  The initial release will be useable from within SSMS and shortly thereafter within ApexSQL Edit.  The debugger/profiler will feature the ability to debug stored procedures in SQL 2005 interactively, profile procedures, as well as something I'm calling "Lazy Debugging".

    Here is a screenshot from within SSMS showing the summary tab after profiling a stored procedure.  The summary tab shows the slowest statements across the procedure and any children that were executed as well as the min/max variable/parameter values and where they occurred.

    Prolier Summary

    The Profiler script view shows each of the database stored procedures and a visual indication of how long each statement took compared to the entire time for the object as well as how many times a particular statement was executed:

    Profiler Script

    The Profiler Detail view shows every statement that was executed, how long it took for all executions of that statement, and the number of times a statement was executed.

    Profiler Detail

    The Last tab which is not pictured shows a list of every variable/parameter that had a value change and where that change occurred along with the previous value.

    Another feature that the product will provide is the ability to do what we call "Lazy Debugging".  With this, the product will execute the procedure and simply log everything that happens and then show a report that lists each step that was executed, how long each step took, what variables were changed as part of that statements, etc.  Below is a screenshot that shows a procedure in the Lazy Debug report:

    Lazy Debug

    And the final piece of the product is a basic interactive debugger.  However, unlike other boring debuggers, this one has some new features not found anywhere else.  We show what values were changed on each line, allow the user to set variables while debugging as well as allowing the user to control which global variables are shown and the current call stack when debugging into multiple nested procedures.  We also plan to offer conditional breakpoints while debugging so that you can set a condition and only break if that condition is met:

    Debugger

    And the final feature we're excited about is one that I know many people have wanted for some time.  Notice in the screenshot above, I have a temp table "#test" that I've inserted some data into.  Wouldn't it be nice to know what is in that temp table WHILE I'm debugging?  Well now you can, simply right click on the temp table in the editor and you can view the contents of the temp table WHILE debugging:

    Temp Table Viewer

    We hope to have a beta of the debugger/profiler available soon, so check back here and on the ApexSQL web site (www.apexsql.com) for more information.

  • MDX Editor - Changes for August 7th, 2007

    I tried to correct the issue with some cubes not displaying properly but didn't have too much luck.  It fixed the problem on one of my PCs but not the other.  Has something to do with ADOMD not reporting the database or cubes correctly.  Will continue to investigate.
     

    I did add several new features and snippets.  I added new snippets for named set  (nset I think), bottomsum and topsum (bsum and tsum respectively).  Also Ctrl+Shift+P should invoke the snippet picker now or you can type the shortcut and press <TAB>.  The top and buttom sum snippets will drop down a measures list for the 3rd argument.  You can get a drop down list of measures in your own snippets by using "Measure" as the title for the replacement.  This builds upon the existing "DateLevel" that will show all levels from Date user hierarchies in date dimensions.

    I also added the ability to have AutoReplacements and to be able to right click on some objects in the treeview to add those autoreplacements manually.  Although the menus work for all treeview nodes, some don't perform any actions yet (hey, it's 1:30AM here and I have to get up at 6:00AM).  You can right click on level/hier/member/measure for both individual adds and child adds.  The autoreplacements should make it easy to replace common items with a shorter name or be able to pick them from the list by pressing "!" (by default, all system assigned replacements have "!" as the first character of the find text).

    I want to possibly improve the autoreplacement list to have it narrow itself down and possible not even show itself until the list of items can be narrowed since you could have thousands of replacements defined.

    Hopefully this week I can resolve the cube issue, clean up some of the replacements and menus, and add the ability to save/load scripts, manage scripts in a query manager type repository, and export results to PDF/Excel/etc.

    Here is a link to a short video that shows some of the new features: http://withnolock.com/communityserver/files/folders/8/download.aspx

  • New MDX Editor

    I've posted an MDX Editor I've been working on in my spare time.  It integrates with SSMS and provides features like Intellisense for MDX as well as snippets (very few defined currently but they can be user created).  The editor requires SQL SP2 client tools and can be invoked by right clicking on a cube and choosing the context menu to open the editor (Currently "Ashton's MDX Editor")

    For those who find it useful, please let me know what other items you would like to see and I will add them as time permits.

    The file is available for download from here: http://withnolock.com/communityserver/files/default.aspx

     

  • .NET 3.0??? WCF, WF, WPF, CardSpace

    Just attended the local .NET Users Group here in Winston Salem/Greensboro where Brian Hitney, a Developer Evangelist from Microsoft presented on .NET 3.0 which seems to be essentially add ons for .NET 2.0.  The WPF and XAML topics were pretty interesting.  There are some WPF controls already out there, including a Wizard control from ActiPro (http://www.actiprosoftware.com/Products/DotNet/WPF/Wizard/Default.aspx).  There are also some WPF and XAML controls out there on http://www.codeplex.com.  The WCF seems like it is going to be a good replacement for doing SOA, combining web services with more integrated security, better transaction handling, and providing more reliable communications.  I'm still trying to determine how I might use WF (Workflow) but I think it can change how some processes are modeled.  The CardSpace features seem to be something that I'm still a little lost as to when I would use it or if I even want to use it.  Microsoft should make it so I can log into MSDN using CardSpace and then it really would be useful :)

     If I come across new WPF/XAML controls, I'll post them in this space.

    Brian did show the New York Times WPF Reader application (http://windowsvistablog.com/tags/New+York+Times+Reader/WPF/default.aspx) and it seems like applications like this could really be killer type apps to show off what WPF and WPF/E can do.

Powered by Community Server (Personal Edition), by Telligent Systems