Author: way0utwest

  • Multiple AGs

    Today was my pre-con with Allan Hirt on AlwaysOn. It was great, and I learned a few things. I knew a bit about AGs, but Allan has a ton of experience, and he talked about some architectural things that I didn’t understand.

    We had virtual labs, which worked flawlessly. I managed to configure AGs with GUIs, PowerShell, and a bit of T-SQL. I configured multiple AGs in the lab, and finished early, though I had one PoSh error that stumped me a bit. I’m looking forward to resetting the lab and trying again on Friday, taking a few hours to try and rebuild AGs in my own way without help.

    Though I suspect I may be sending an email to Allan before this is over.

  • Summit 2014

    The 2014 PASS Summit kicked off this week in Seattle. It’s a familiar location for those that have attended past events, as the conference has been held here more often than not. Plans are that it will be here for the next few years, so if you would like to attend, plan on a trip to the Pacific Northwest.

    My plan is to try and write a bit each day about the event and get that out to those of you that aren’t attending and share a bit about the experience. Don’t expect reports on late night activities as that’s not usually part of my day. My bedtime is likely in the 10:30 range, and I plan to be in the hotel most nights by that time. I also need to get things written by late afternoon, so some of the reporting may slide to the next day.

    Yesterday was SQL in the City – Seattle 2014 for me. This was our second event this year, and I’m assuming it was fun. I’ve written this in advance as I’ll be busy speaking at the event, meeting people, and then racing to the annual Networking Dinner that Andy Warren and I put on. I’m sure that’s fun as well.

    Today is my pre-con day. There were pre-cons yesterday (Monday) and more today. I’ll be in Allan Hirt’s The A to Z of Availability Groups. I’ve fumbled through AG setups myself, but it’s been confusing at times, and I know Allan is one of the experts, so I’m looking to shore up my knowledge. I’ll be taking lots of notes that I’ll be using in blog posts to document my knowledge later.

    I’ll link to pictures as I find them and add notes when I can. Hopefully I’ll get new posts out every day with some highlights and coverage of the event. I’ll be live blogging and live tweeting on Wednesday and Thursday, so look for some posts on the announcements and happenings, possibly with some sarcasm and humor, so take things with a grain of salt.  Hopefully you enjoy hearing about the event this week.

    Steve Jones

    The Voice of the DBA Podcast

    Listen to the MP3 Audio ( 3.0MB) podcast or subscribe to the feed at iTunes and LibSyn.

  • Setting Expectations–T-SQL Testing

    I don’t know who started this pattern, as I’ve seen it in a few places. It could have been Sebastian Meine or Dennis Lloyd. Maybe it was Dave Green, who did the Pluralsight course on tSQLt. Not sure, but I like it.

    If I’m looking to set up a test against a table called Customers in my database, in the Assemble section of the test, I’ll create this table:

    create table Customers.Expected
    ( CustomerID int
    , CustomerName varchar(200)
    ...
    , Status int
    )

    This would match the exact structure of the Customers table, or at least have the structure I’m testing. If I’m only testing a part of the table, I might not use all the fields.

    However this lets me easily determine what this table is. It’s my expected result set.

  • Normalizing Performance

    This week I ran across a post from Glenn Berry on hardware performance that I thought framed the concept of performance value well. In the post, Glenn talks about the latest TPC-E benchmark and the SQL Server performance values that vendors release. Glenn mentions that he always tries to divide out the numbers to provide better comparisons for the various hardware choices.

    That makes a lot of sense to me, as I think very few of us would be able to afford the top of the line systems on which vendors run the benchmarks. Most of us try to somehow compare the results in some way and then make our own decisions for our smaller systems. I don’t know many people that run 36 core machines, but I do know lots that need to decide which 4 or 8 core systems they should choose.

    The idea of normalizing performance to smaller loads is something we do often. We need to do this, because we often can’t get the same size, scale, or specifications in our test systems as we have in production. As much as we’d like to have them, resources are limited, and we do need to have some way of extrapolating the results in our development and test systems forward to production.

    Glenn has a way of doing this for CPUs, and while you might not agree with his method, at least he has an organized way of doing things, and then letting empirical results provide feedback on whether this works well. You should do the same thing, whether you’re trying to gauge disk or T-SQL speed. Develop a hypothesis (or read about how other do so)  for measuring your performance on a lesser, and then your primary system. Take time to run some test the same way, even if it’s single query performance on a production system while it’s live.

    You won’t get perfect results and scalability, but you’ll develop a few metrics that allow you to determine if your decisions in development will have severe negative impacts. There still might be problems, but you should eliminate more and more of these over time.