THE SQL Server Blog Spot on the Web
Welcome to SQLblog.com - The SQL Server blog spot on the web Sign in | Join | Help
in Search

Andy Leonard

SSIS and ETL
Thoughts about Database and Software Development, and the tools of the trade.

  • SQL Server 2008 Management Studio - Function Keys

    F7! 

    The F7 key displays details in SSMS 2008. I'm almost positive SSMS 2005 RTM'd with the same funtionality and it was later removed.

    F8? 

    I love the F7 key. And I love that it displays details when I highlight something in Object Explorer - which, by the way, no longer displays when I press the F8 key... (grrr) - and then press the F7 key.

    Functionitis

    As a keyboard guy, I think it would be nice to have the Object Explorer display when I press F8 and Details display when I press F7. I'm sure there's a reason we don't have both in SSMS 2008, even if I don't know what that reason is.

    I'm not starting an online petition to have it changed. I'll just work around it.

    Multiple Mappings

    I sometimes get myself in trouble with function keys.

    A few weeks ago I was delivering SSIS training and attempted to demonstrate how you can remove all breakpoints in the Visual Studio 2005 IDE with Ctrl+Shift+F9. I pressed the key combination and it didn't work. Durnit!

    I have Camtasia loaded on my presentation laptop. It just so happens Ctrl+Shift+F9 starts/stops recording via the Camtasia plug-in in PowerPoint. I recorded the remainder of the day.

    :{> Andy


  • Virtualization, x64, a Red Laptop, and Blue Screens

    Introduction

    The day started like any other sweltering July dog day in the country between Farmville and Keysville, Va...

    Ok, I won't quit my day job.

    I scored a snappy new Dell Red XPS 1530 in early May. About a month ago I started getting blue screens - something I hadn't seen in my year and a half experience with Vista.

    I Can Fix This 

    It's been a while, but I used to build my own servers. Back in the day*. "I can fix this," I thought.

    I started in safe mode and everything was happy. I started in safe mode with networking - still happy. I tried to run a disk check and repair errors, the device was in use (the C: drive, duh) so it has to be scheduled. Scheduled scan and fix. Restart. No scan. And worse, another blue screen. Boogers. Phooey. Safe mode with command prompt. Execute chkdsk. Errors - aha!

    Apparently my master file table's (MFT) BITMAP attribute is incorrect, along with the volume Bitmap - also incorrect. Stupid bitmaps.

    Obviously there's a problem with the hard drive.

    * The days of Windows 2000 Server...

    The Plot Thickens

    Sure, I could've called tech support to have them rubber-stamp my excellent diagnosis, but who has time for all that? Besides, Dell Support has better things to do than listen to me tell them what's wrong with my new computer. And I have this notion of repaving the old drive and installing Windows 2008 on it... so worst-case (impossible to me at this point): if I'm wrong, I'll have two good drives - which I planned to have eventually anyway.

    Rather than bother those rookies at tech support, I just ordered another drive.

    A Twist

    All is well. My new drive arrives, I install Vista Ultimate 64, fire up Carbonite for a day or so and voila! I'm back.

    And then I start getting blue screens again. What the ?!? Dell must be having a bad run on drives. Or something else is wrong and is corrupting my drives. Perhaps worst of all, I misdiagnosed it. Ego bruise (still healing... this post is part of it...).

    The Cavalry

    Time to bug the rookies. I call Dell Support and get a guy named Michael. I explain to him that I have another bad hard drive but would like for him to walk it through his diagnostics to confirm this before shipping me two replacement hard drives. (I know. I wish I weren't making this up. Or that I weren't so honest about this kind of thing...)

    Michael has me walk through diagnostics. I fire up Witty Twitter and begin tweeting about this as it all happens. You know, for posterity's sake. Anyway.

    We do the Dell onboard diagnostic: hold Fn and boot. Pretty impressive utility. It churns away for a good 15 minutes and then tells us the hard drive - and everything else - is all ok.

    Huh.

    Next, Michael requests permission to start a remote session. Sure. We fire up the Dell connect site and he begins poking around. He finds the dump files from the blue screens. He asks permission to download a reader and I tell the machine is his. He puts me on speaker / mute, I do the same and work on the desktop.

    Occasionally I look to see what he's doing.

    He's fixating on this file called NetIO.sys that the dump files say are causing the issue. I pick up the phone and say "Michael? If that file is sitting on a bad sector of the hard drive, won't that cause a problem?" Michael reminds me the diagnostic software told him the hard drive was ok. I say "ok" and let him get back to walking through his script. Like Fezzik, "I just want you to feel you're doing well." 

    Another Twist

    Just for giggles, I start poking around Live Search for stuff about Vista 64-bit and NetIO.sys. Holy smokes! There's a bunch of stuff about blue screens.

    Hmmm.

    Maybe Michael's onto something here after all. Time for some research on NetIO.sys. It's a VMWare file. Interesting. And not.

    An Aside 
       I have this rule of thumb. I use Microsoft stuff. If I hit a wall and cannot figure out how to get something I need from Microsoft stuff, I will look elsewhere. I hit a wall a month back while writing Mastering Database Edition Volume 2. I'm working on stuff that will publish post Visual Studio Team System 2008 Service Pack 1, so I'm running CTPs... and one of them wouldn't load correctly in 32-bit. And I couldn't figure out how to get Virtual PC and Virtual Server to do a 64-bit guest OS, so I used VMWare.

    Back to our story...

    This makes no sense. I have a desktop sitting right here with the same OS (Vista Ultimate 64) and VMWare Workstation installed and it's having absolutely no problems. It simply can't be a conflict with VMWare.

    To prove the installations are identical, I start searching for the location of the VMWare installation on the desktop. And... hey, look at that - it's installed on the second (non-boot) drive.

    Oops.

    My installations are not identical. "Apples, meet oranges. Oranges, apples. Let's compare you guys..." :|

    I've Gathered You All Here...

    ... to announce the obvious (in hindsight): NetIO.sys was interfering with Vista Ultimate 64 booting. I uninstalled VMWare Workstation for now. There are a couple patches from Microsoft, which have been applied. Theoretically this should address the problem.

    I am not blaming VMWare. I am not blaming Microsoft. I'm just raising awareness: these two don't get along well. What's worse: it started small for me (both times). A blue screen here and there. Then built to blue-screening most of the time - remarkably similar to one way a hard drive would fail.

    My current plan is to install VMWare to another drive - maybe an external USB or thumbdrive. I can't add another physical drive to my laptop like I did my desktop.

    Conclusion

    Like I tell anyone who attends the SSIS training classes I deliver, good engineering always works. I suffered several lapses of good engineering during this episode, and it pains me to admit it.

    I do have an extra drive upon which I will install Windows 2008 Server (and likely post about the search for drivers). But still...

    Catharsis achieved, I feel better now. Feel free to learn from my mistakes - I certainly do.

    :{> Andy


  • Vista Replaced By "Mojave"

    Microsoft has finally found a way to counter the negative publicity generated around Vista, it's called Mojave. I have to credit Glen Gordon with turning me on to Mojave - thanks Glen!

    Last week, Microsoft secretly unveiled Mojave to XP users in San Francisco. The results? 90% positive. Finally, Microsoft has come through with an OS that everyone loves!

    Except...

    Mojave is Vista.

    "Durnit! Someone call those marketing guys! I'd do it but I can't activate my phone! People are trying it and finding out Vista works! We're going to need more sardonic commercials!" - MacMarketing

    :{> Andy


  • Presenting to Northern Virginia (NoVa) SQL Server UG Monday

    I'll be in Northern Virginia (NoVa) Monday 28 July 2008 presenting Incremental Loads with SSIS 2008 and Change Data Capture to the NoVa SQL Server Users Group!

    :{> Andy


  • New Database Edition CTP!

    I'm a little late on this one...

    Gert announces the availability of Microsoft® Visual Studio Team System 2008 Database Edition GDR July CTP!

    Lots of cool stuff in this release. I have a post in the works with screenshots of how to install the June CTP... I suppose I can scrap that now and work on this!

    :{> Andy


  • SQL Server 2008 ReleaseWatch!

    With the imminent release of SQL Server 2008, I think we should set up a SQL Server 2008 ReleaseWatch.

    Who's in?

    :{> Andy


  • On Developer Communities: Meeting Idea - Fix the Broken Code!

    Robin Edwards is the leader of the Roanoke Valley .Net User Group. They did something really cool for their last meeting (July 2008). As Robin describes it:

    Some of the members of RV.NUG tossed around a way to get more involvement during the meeting AND deal with the low summer attendance by coming up with something fun and easy.  We were expecting a low turn-out and hoping a few people would be involved.... everyone got involved and it was an easy meeting to prepare, so I thought I would share.  We added bugs to a starter kit and then had teams use the Unit testing in Visual Studio 2008 to find them.

     See Robin's blog for the more details.

    This is a fantastic idea! It's easily copied for .Net User Groups and can be adapted for SQL Server User Groups as well. Imagine taking the AdventureWorks database and creating performance issues or inserting bugs into the T-SQL for stored procedures. Attendees could then form teams and troubleshoot the issues for 30 minutes, then each team could report on their approach. What a great way to share knowledge and expertise!

    :{> Andy

     


  • I Have a New Job

    No one panic - I'm still a Solid Quality Mentor. :)

    I am honored to accept the responsibilities of PASS Regional Mentor for the US Southeast! What does this mean? Well, I get to work with SQL Server User Groups and PASS chapters from Texas to North Carolina.

    If you're interested in starting a SQL Server Users Group - regardless of where you are - let me know! If you're in thte Southeastern US I can help. If not, I can put you in contact with my counterpart in your region of the country / world.

    :{> Andy


  • Installing SQL Server 2008 RC0

    Introduction

    SQL Server 2008 RC0 has been out for a while. You can download it here.

    This post is not a detailed examination of the setup options. There are much better articles and posts out there if you want more information. This post represents one way to get SQL Server 2008 RC0 up and running so you can start learning the new features!

    Getting Started

    I downloaded the software and installed it on a brand new virtual machine running Windows Server 2008 Enterprise (without Hyper-V). I used VMWare Workstation for this virtual machine because I need a 64-bit guest OS. I was also able to configure the machine to use both CPUs on my host system. This may be possible with Virtual Server or Virtual PC, but I don't know how to do it (if it is).

    I loaded the ISO image for SQL Server 2008 RC0 64-bit into the virtual DVD drive and started the setup application. The following screen displays:

    Now this looks a lot different from previous SQL Server installation applications. In general, you navigate between pages using the Page List on the left. To continue installing click the Installation link in the Page List:

    Installing a Stand-Alone Default Instance 

    To install a new instance of SQL Server 2008, click the "New SQL Server stand-alone installation or add features to an existing installation" link. The Setup Support Rules wizard executes and checks your system configuration:

     

    Green checkmarks == good. When you click OK the Product Key screen displays. On this screen you can select any of the available evaluation editions or enter a product key:

    Click Next to continue. The License Terms page is next. Accept the license terms and click Next to proceed:

    The Setup Support Files page displays next. Click Install to begin application setup:

     

    The first step in setting up the application is checking the Setup Support Rules:

     On this execution, the Setup Support Rules detected Windows Firewall and issued the following warning:

     

     I will address this warning after setup is complete. The next page is Feature Selection. Select the SQL Server 2008 features you wish to install and their respective directories, then click the Next button:

     The Instance Configuration page allows you to specify the SQL Server instance name and root directory:

    Next, disk space is checked. Click Next to proceed:

    Before configuring the Server, I created a SQL Server service account. Right-click My Computer and select Manage:

    Navigate to Server Manager \ Configuration \ Local Users and Groups \ Users. Right-click in the Users pane and select New User:

    I named my service account SQLDude:

    Returning to the Server Configuration page of the SQL Server 2008 RC0 installation application, I click the "Use the same account for all SQL Server services" button and supply the credentials for SQLDude:

     

    Click OK to assign the credentials to all services:

     

    Click Next to proceed to the Database Engine Configuration page. On this page, configure administrator accounts, data directories, and the filestream options:

    On the Data Directories tab, set a data root directory and edit any associated default paths:

    I enabled filestream on the FILESTREAM tab. I haven't tested this yet. Configuring Filestream did not work in the CTPs (this was one the bugs I reported):

    The next page is Analysis Services Configuration. Select administrators and data directories for SSAS 2008:

    Reporting Services Configuration is the next page. I installed the native mode default configuration:

    Click Next to set Error and Usage Reporting options on the next page:

    Click Next to execute the Installation Rules. If there are no errors or warnings, click Next to proceed. Otherwise, stop here and address them:

    Click Next to navigate to the Ready to Install page. Review the summary and click Back to make any changes. Click Install to install SQL Server 2008 RC0:

    Once the installation completes the Next button will enable. Review the Status to make sure all items are marked Success and click Next to complete the installation:

    Click Close on the Complete page to unload the SQL Server 2008 RC0 installation application:

    That's it! You've successfully installed SQL Server 2008 RC0 - congratulations!

    :{> Andy


  • Dear Google...

    Dear Google,

       I am not a spammer. I'm a guy trying to inform 500 people in the Richmond .Net and SQL Server Developer Communities about upcoming meetings and events of interest to them. To protect their privacy and my sanity, I keep their email addresses in a Google Email Group and BCC that group each time I send them an email.

       The new email sending limits seem to be working fine when used against me, but my spam folder still receives more email than my inbox - and that's saying something: I receive a bit of email.

       Is there a way to create a "white list" of some sort so I can contact the developer community without losing the privilege of sending email for 24 hours at a time?

    Sincerely,
    Andy


  • Software Development Meme

    Frank La Vigne called me out on the Software Development Meme, so here goes:

    How old were you when you first started programming?

    I was 11 - almost 12. It was 1975, about this time of year. Has it been 33 years? Goodness...

    How did you get started in programming?

    I lived in the sticks (we had to pipe in sunshine but moonshine came in Mason jars...) when our neighbor retired from the Air Force. John was an engineer and built a Southwest Technical Products Motorola 6800-based computer trainer from a kit, followed by a computer.

    What was your first language?

    I learned M6800 machine language on the trainer. Set the toggle switch up for 1, down for 0, IncAddr, LDAA switches, etc. I learned BASIC later that year - we had no persistent storage so we had to key in hexadecimal from Byte magazine for a while before actually coding BASIC, if we got it right. Usually John would read and I would type. It was cool.

    What was the first real program you wrote? 

    I wrote a program to track weather systems across the US. The grid was initialized with periods and storm system centers were represented with asterisks.

    What languages have you used since you started programming? 

    Goodness...

    Many variations of BASIC including GW and Commodore
    C
    Programmable Logic Controller (PLC) ladder logic (Allen-Bradley, Seimens, GE, Modicon, others...)
    Human-Machine Interface (HMI) languages (RSView, Wonderware)
    A handful of proprietary classified languages and protocols while in and working for the military
    Several proprietary languages used in the banking industry to manage ATMs, teller currency dispensers, and alarm systems
    Visual Basic, versions 2.0 - present
    VBScript
    JavaScript
    HTML, ASP
    PL/SQL
    Transact-SQL
    SSIS
    SSRS

    These days I work with T-SQL, SSIS, SSRS, and VB.Net scripting inside SSIS and SSRS.

    What was your first professional programming gig? 

    Programming was a hobby for a good couple decades (it is still my hobby). I found myself programming at a lot of jobs before it was my "job." I programmed "stuff" while in the military during the 1980's, and banking systems for about five years in the late 80's/ early 90's. I programmed machine controllers (PLCs) and HMIs while an industrial electrician. Once I became an engineer, I programmed even more of these systems. But I suppose my first official programming gig was when I started my first business in the mid-90's. I was regularly able to attract and deliver software projects in between designing and building electrical control systems.

    If you knew then what you know now, would you have started programming?

    Without reservation! As I stated, programming remains my hobby!

    If there is one thing you learned along the way that you would tell new developers, what would it be? 

    Continue learning and growing. Don't expect things to stay the same. If uncertainty bugs you and/or you need stability for your long-term peace-of-mind, you're in the wrong field. Keep learning. If you enjoy learning, you're in the right field.

    What’s the most fun you’ve ever had … programming? 

    I have a good friend who works for NASA. Bruce showed me this application that allowed him to connect to some big network NASA could access in the early 90's. The application showed him pages with links which was cool in and of itself, but what really got me thinking was that it ran on his Sun workstation and his Mac. What's more, there was a version that would run on my 486. Whoa! Cross-platform, and it looked and acted the same! It was Netscape and I immediately bought a copy (I think I paid $56 USD). I learned HTML. About that time, Rockwell bought Allen-Bradley and produced a suite of drivers that allowed me to communicate between VB (or VBScript) and an industrial RS-485 network of PLCs running at (a screaming) 19.2 kbps. I was inspired. I wrote an app in VB3 that would read registers in the PLC and generate *.htm files every 10 seconds. Folks in the plant - anywhere in the plant, running almost any platform - could see the latest counts and temperatures and process data from these machines - all the time! They just had to hit the refresh key. I realized later I had written the beginnings of one of the first web-based Manufacturing Execution Systems (MES's) - called Decision Support Systems at the time.

    Who are you calling out?

    Steve Fibich
    Kevin Israel
    Jessica Moss
    Kalen Delaney
    Denis Gobo

    I would call others if they bothered to blog!

    :{> Andy


  • Speaking at CMAP 1 July!

    I am honored to present Cool Stuff With SSIS at the 1 July 2008 meeting of the Central Maryland Association of .Net Professionals (CMAP)!

    If you read this blog and attend, please introduce yourself!

    :{> Andy


  • Five Bugs?

    ...continuing to follow the Entity Framework critics I mentioned earlier...

    If A == B and B == C,...

    A lot of life and nearly all business is based upon relationships. In business, it's possible to lose money and remain afloat - and thrive in some cases - so long as you maintain positive cash flow. A business that is turning a profit can also fail by not properly managing or maintaining a positive cash flow. 

    In the economy of relationships communication is the currency and courtesy is analogous to cash flow. This is why people will say things to you in business like "Pick your battles." If you're going to fight (ie, become discourteous) for something, it better be important.

    So let me ask the participants in the Vote of No Confidence Petition a hypothetical question: As a technology professional who will - hypothetically - enjoy the benefits of a relationship with arguably the largest and most influential ISV on the planet, are five bugs worth it?

    Let's look at what you've done: Rather than communicate with Microsoft through one of the several readily-available methods, express your concerns, contribute to the conversation, and then help with any gaps in the implementation of which you are aware by blogging and posting ideas and suggestions and providing feedback for future releases, you've decided to exercise what Josh Holmes aptly describes as the nuclear option. In Farmville, we call this "throwing a hissy fit."

    In Response 

    In my opinion the Entity Framework Team at Microsoft has responded to an irrational attack with dignity and grace. Kudos to them.

    It seems the uproar is being mostly generated by one person. It also seems this isn't the first overreaction for this particular individual. I am a huge fan of developer communities. Were I a member of the Alt.Net community I would not be afraid, I would be ashamed.

    Free Speech

    This isn't advocating censorship of free speech, this is advocating responsibility for free speech. Sometimes people stand up for their right to free speech; sometimes (this is one of those times) the right to free speech stands up for an individual. Regardless, one is never free from the consequences of exercising their right to anything - free speech included.

    This is about responsibility.

    Stuff Happens

    In Farmville, we call this a "mistake". When you make a mistake the best thing to do is admit it, clean up the mess, move on, learn from it, and definitely do not repeat it.

    Whatever you do, don't continue justifying it. That's another mistake.

    :{> Andy


  • Databash

    Introduction 

    I just wrapped up an ETL With SSIS class in the Rochester, NY area and one of the students in the class pointed out "You haven't blogged in over a week!" He's right - I need to blog more and more often. I've been distracted with preparations to sell our house, releasing an e-book, writing the next volume in the e-book series, and working. No excuses, just information.

    Shooting at Pots

    I've seen some articles and posts lately taking aim at various technologies, some aimed at Microsoft and others aimed at a field of technology in general. The Microsoft uproar is about the ADO.Net Entity Framework. On one side is Microsoft, Tim Mallalieu, Ward Bell and the team that developed EF; on the other side are a group of people who decided to post an online petition to gather signatures and warn potential users of EF of potential dangers using the product. The "field of technology in general" is databases and data applications: Others are commenting about database and business intelligence topics.

    On EF... 

    Now, I won't comment about the technical aspects of the ADO.Net Entity Framework because, well, I know very little about it.

    I will say this: I do not like the way this is happening.

    Here's why: Microsoft has channels of communication for feedback from the community. Microsoft Connect is but one example of this (albeit a good one). For MVPs, there are direct communication channels to the Microsoft development teams or to those who communicate directly with those teams.

    People Helping People 

    Maybe I have this wrong, but I enjoy helping people learn to implement technical solutions. For me, that's the juice. I enjoy watching a new application or database or website go - especially if it goes faster than it did before. I'm thrilled by the look on student's faces when they put the pieces together about SSIS or database development.

    So what happened here? Again, I'm not sure. I have seen similar things in the past. Maybe this applies to this situation, but probably not. 

    You Don't Always Get What You Want 

    For everyone, there are things we like and things we don't like. For everyone, there are things we understand and things we don't. Most people I know respond to the things they do not understand by thinking (and perhaps blogging) "I don't understand this." Similarly, most people I know who do not like something state "I don't like this."

    Others, though, respond to things they do not understand or do not like (or both) by saying "This is wrong."

    There is a world of difference between "I don't like it / I don't understand" and "This is wrong." The former is an opinion; the latter, a judgment. And - this is crucial - you can fix "I don't understand this" with education (if you're willing to learn).

    When I read a judgment about a technology topic, my initial reaction is to question the writer - especially when the writer has the talent and skill to help ordinary users address the issues they've identified and opts instead to bash the technology. It's one thing to say "This is wrong" and another to say "I disagree with this implementation of technology but here's how you can make it work like I think it should". That's a lot of verbiage but I think you get the point. One response is helpful.

    On Database Bashing...

    I understand this technology better than EF technology. Let me first start by saying that if I do not personally know how to do it, it cannot be done.

    Did that last statement sound cocky? arrogant? conceited? accurate? Yes, yes, yes, and no. Suppose I write something like: "If you don't know what I know, you're stupid and should quit database work and go do something else." Again, cocky? arrogant? conceited? accurate? Yes, yes, yes, and no. This doesn't help you. This doesn't help me. In fact, this doesn't help anyone.

    Check Please

    So here's my two cents: It's better to help folks than to complain - even if you sincerely believe your complaining is helping folks, it's not. Really.

    :{> Andy

     


  • Database Edition Now Does DB2!

    Tech Ed 2008 included some major announcements for database development folks. One of the biggees was this - and announcement that Database Edition is going to support DB2 development!

    Gert and the team have been working hard to expand the underlying architecture and functionality of Database Edition (making it extrememly difficult for this one author I know in Farmville to keep up... I'm not complaining!). Rearchitecting Data Dude to utilize a provider-based model was no small task, but the team at Microsoft has been able to pull it off - way to go team!

    These changes affect a lot of how Database Edition currently works. We were given a preview at the MVP Summit in April. The work is impressive, but the ability and agility provided by the new architecture is even more so.

    You will see a ton of changes with the release of Visual Studio Team System 2008 Database Edition GDR. You can currently download the June CTP here.

    :{> Andy


More Posts Next page »