Pass 2009

SQL Pass session evaluations

I finally got the last of my PASS Summit session evals and so, like some other people, I thought I’d make them public.

Lies, damned lies and statistics (DBA-388-S)

This session went very well. I was comfortable with the material, it’s a topic I really like and in general it felt, to me at least, like a good session. The ratings seem to agree with that.

Very Poor Poor Average Good Excellent
How would you rate the usefulness of the session information in your day-to-day environment? 1 7 36
How would you rate the Speaker’s presentation skills? 3 5 36
How would you rate the Speaker’s knowledge of the subject? 4 40
How would you rate the accuracy of the session title, description, and experience level to the actual session? 5 39
How would you rate the amount of time allocated to cover the topic/session? 11 33
How would you rate the quality of the presentation materials? 1 7 36

If I make Very Poor = 1 and Excellent = 5 then, averaging all the scores over all the questions, overall that session rated at 4.82/5

Not bad at all.

Edit: The overall PASS Summit session ratings are out and this session came in at 7th overall (all sessions including pre/post cons, all tracks) and 5th in the DBA track, behind only Buck Woody, Kimberly Tripp and Paul Randal I am extremely surprised to have come in that high at a conference like the PASS Summit.

Insight into Indexes (DBA-315)

This session was a whole different story. It did not go well at all, and I didn’t need the ratings to tell me that.

I wasn’t overly comfortable with the material. This is not to say that I didn’t know it, I did, but I wasn’t comfortable with it. In retrospect, I should have scrapped the entire presentation and done it over from scratch in a different way, even if that meant doing it the night before. Lesson learnt there.

To add to that, I broke my own rules for presentations. Usually I’m at the session room at least 5 minutes before the previous session finishes, with my laptop booted, the presentation loaded, management studio (and profiler if necessary) open and any pre-demo scripts already run. That way, as soon as the speaker who’s presenting in the session before mine finishes, I can get on stage, plug the laptop in, get the projector online and then relax.

In this case, I was late. The previous speaker had already left and my laptop was still switched off. Hence I rushed to get everything loaded and ready, and Windows, sensing the urgency, promptly crashed hard.

Cue 2 minutes of frantically trying to reboot laptop (it was ignoring all shut down requests) and load presentation onto the desktop in case my laptop didn’t reboot. All while the AV guy’s trying to get the audio on and the recording started.

Let’s just say it went downhill from there.

So, ratings for that one.

Very poor Poor Average Good Excellent
How would you rate the usefulness of the session information in your day-to-day environment? 2 1 7 23 51
How would you rate the Speaker’s presentation skills? 5 29 50
How would you rate the Speaker’s knowledge of the subject? 1 11 72
How would you rate the accuracy of the session title, description, and experience level to the actual session? 1 4 31 48
How would you rate the amount of time allocated to cover the topic/session? 6 31 47
How would you rate the quality of the presentation materials? 4 33 47

If I do the same averaging as for the first one, that comes out at 4.55. Not the worst I’ve ever had, though not by much. Lessons learnt.

PASS Day 3 and post-con

Once the pre-con was done I dropped into the SQLCAT sessions on consolidation and virtualisation. Late, because I was cleaning up at the blogger’s table (Adam wasn’t there that day). Interesting session, the best-practices were worth noting down and their graphs on performance were encouraging.

After lunch I was intending to go to Allen’s clustering session, but it was over my head, so I switched to Buck’s SQL manageability presentation

Buck Woody’s session is a laugh-riot. Anyone he knows within view gets picked on. and various groups are getting insulted. Insulted in that session

  • Me
  • British people
  • South Africans
  • Developers
  • U2 fans
  • Baptists
  • Microsoft
  • Elderly people

All in good humour, no serious insult intended.

I missed the next session, chatted with Brent Ozar. Last of the day was my session on statistics. Audience was a little tired, but the session went quite well. I asked about table sizes and someone claimed a 100 billion row table. I really do want to know what kind of data they’re storing that generates a table that size.

The post-con day was quiet, in comparison with the days before. I split time between a post-con on semi-structured and unstructured data and some insider sessions. Some cool stuff under discussion in the insider sessions and lots of good debate. The post-con was useful, the part on full-text the most. It’s not something I’ve played much with in the past.

That’s PASS over and done for another year. Same time, same place, next year.

PASS Keynote – Day 3

Keynote opened with announcements regarding the PASS board. There was a very emotional speech from Wayne Snyder as the board said goodbye to Kevin Kline, as he steps down from the PASS board after 10 years.

I first met Kevin when I attended the European conference in 2005 (in Munich). I didn’t know anyone and I didn’t know very much. Kevin was at the opening party and he was talking to everyone there, making sure that they felt welcome and that they were engaged in the conversation. There was no feeling that he was faking interest, he was genuinely interested in what people were doing with SQL.

The changes to the board are, as well as the new board members, Wayne Snyder becomes "Immediate past president" and Rushabh Metah takes the role of President.

After the board announcement we get the keynote ‘tax’, long, boring discussion by a Del person. Configuration management, consolidation. Some waffle about disaster recovery, but without any meat. Or maybe consolidation. Haven’t quite worked it out. If this was a session, he’d be talking to an empty room.

David DeWitt’s presentation is looking at the historical and future trends of database platform changes. The improvement in CPU power way outstrips the improvement in disk speed. Hopefully SSDs will fix that.

The disk trends that he’s discussing are scary. Relatively speaking (considering the size of the disks today), drives are much slower than they were 20 or so years ago. Sequential reads are faster than random by a greater factor than some years back. Random reads hurt.

CPUs are faster, waay faster than they were years ago. Accessing memory takes more cycles than historically, like 30x more.

The way databases are currently designed, they incur lots of L1 and L2 cache misses. L2 cache miss can stall the CPU entirely for 200 cycles. This is why it’s so hard to max out modern processors. They spend so much of their time waiting. What makes it worse is that the cache lines are only 64 bytes wide. If a row is more than 64 bytes wide, moving a row from one cache to another will require more than one cycle and potentially more than one cache-miss. Changing database architecture to a column-store may alleviate this.

Compression is a CPU/disk tradeoff and that’s fine. CPUs are 1000x faster now and disk only 65x faster. Hence use some of those CPU cycles to help the poor disks along.

Some very interesting discussions on compression with column-stores. Store the data multiple times in different orders. David: "After all, we need to do something with those terabyte drives"

Run-length encoding works so well with a column store, especially if the columns are stored ‘in order’. Dictionary compression is good if the columns are not in order.

Hybrid model is also an option. Some of the benefits of the two, some downsides of the two. Lot of academic papers on those options. Search Google Scholar if interested

Some photos from David’s presentation





PASS Main conference – Day 2

Too tired to post much right now.

I skipped the keynote this morning, the BI just doesn’t interest me that much. Also missed the morning session to hit the vendor hall, since I couldn’t last night.

The MVP book signing occurred around midday. Must have been around 200 books to sign. Funniest part was the comments from the other authors, putting a sql-related spin on the long queue and pile of books. Overheard “Looks like the input buffer’s filling up down there”

Also skipped the first of the afternoon sessions to sit in the “Ask the Experts” area and chat with a couple of the devs on topics around statistics. There was something I needed to clarify before my session tomorrow. Unfortunately the dev who worked on that are wasn’t there. Hopefully there’ll be some mail around lunchtime tomorrow with the answer.

My session on indexing went ok. Not fantastic, but ok. Will see if stats goes better tomorrow.

For the last session I sat in on a discussion on xquery. Starting to understand how that works, need to play more though. Don’t really agree on the ‘use xml for tables with changing column definitions’ though.

Photos tomorrow.

PASS Main conference – Day 1

So, today was the first day of the main conference and suddenly there’s 4x the number of people around.

One thing I do have to say straight off, congrats to the conference centre for actually having the wireless network working on the 1st day of the conference. Has to be the first time this has happened in the years I’ve been attending.

The keynote wasn’t as interesting as it could be. No real surprise, there’s no product announcements, no astounding features to demo (other than stuff that’s been seen before), no launch to be done. It was a discussion of where we’ve come from and where we’re going (including into the cloud) and then some demos of R2.

Bob’s level 500 session was a good way to start the conference. Maybe not as deep as the memory internals last year, but good, solid info. Useful stuff there.

The “Birds of a feather” lunch seemed to go down well. I chatted about execution plans for over an hour. Didn’t really get too deep into exec plans, other than discussing the difference between estimated and actual plans (none other than the run-time information) how statistics affect plans (I’m doing a full hour-long session on that on Thursday). Anyone interested in reading exec plans, see my blog series here or Grant’s e-book (available from SQLServerCentral)

After lunch there was a session on PowerPivot (formerly known as Gemini) and on scaling SQL beyond 64 processors. Interesting to see what kind of changes were needed to the SQLOS to handle that.

How’s these for servers?


Big Server

PASS 2009 – Pre-con

PASS 2009 is underway!

It’s getting to the point that these conferences feel like a family reunion (where the family members are people that you like). Last night, coming to registration there was a whole crowd of people that I know from previous conferences, newsgroups, blogs and forums. I’m not going to name everyone I ran into last night, simply because I’ll forget someone.

There were a lot of insider sessions today, but the only one that I attended was the introduction. Most of the topics were ones I wasn’t overly interested in. Rather spent the day at  Adam’s CLR pre-con. CLR is an area that I’ve barely looked at and have little experience with, so it was a good choice.

Some very interesting info on CLR table valued functions. Apparently there’s no temp table/table variable involved. The CLR function streams the values back one row at a time. Might well remove the impact that the multi-statement table valued function has. Needs testing.

Late morning was spent at a Chapter Leaders meeting. Some of the resources available I didn’t know about. Things to look at when I get home. Also need, next month, to write up a report for the regional mentors on the meetings that we’ve had and what the attendance numbers look like. Something else to add to the to-do list.

Jack Corbett was at the meeting. One more person that I’ve chatted with online located. Ran into Steve and Bob right after lunch. Good to see Steve again. Will run into Bob later today and chat.

Some of the comments on CLR and Attention events was interesting. Basically, the CLR doesn’t receive attention events, so a timeout or a SSMS stop can result in orphaned CLR objects that will hang around for a while until the garbage collector comes across the object and collects it.

Very interesting sample code for collecting system performance counters using a CLR proc (unsafe CLR proc because it uses dlls that aren’t on the safe list.)

CLR Triggers. Just say no. Well, if it’s a ddl trigger with xml manipulation of the EventDate() maybe. Possibly. Perhaps.

Or maybe not. SQL DDL trigger with a CLR function to do the xml manipulation.

Some very interesting discussion of Code Access Security, Host Protection Attributes, Trustworthy and signed assemblies. It’s possible to have safe assemblies calling unsafe (external access) assemblies with the minimum amount of code marked unsafe (external access), have the database untrustworthy and still have everything working. Lots and lots of work though.

Day ended with the opening party (and the quiz bowl) followed by the SSC party. Good fun all.

Some photos from the day

Blythe cookies


Quizbowl 1

QuizBowl 2

Quizbowl 3

QuizBowl 4

PASS Summit submissions

I finally stopped dithering over the small details and get my submissions for the PASS conference in, with about 5 hours remaining to the original deadline.

Since it seems to be somwhat of a tradition this year to post the details (As Brent, Jack and Michelle have done), I’ll list mine.

Lies, damned lies and statistics

Ever wondered what the things called statistics are, why they’re important and what needs to be done to maintain them? If so, this session is for you!

In this session we’ll take a look at what statistics are and why SQL keeps them; at how SQL maintains them and under what circumstances that maintenance is insufficient; and we’ll look at the problems that result when they are inaccurate. Finally we’ll cover some suggestions and options around maintenance of statistics when the automatic maintenance is not sufficient.

Delving the depths of the Plan Cache

Do you want to want to know more about how your server is running? Do you want to be able to see how queries are running within the server, both now and earlier? If so, this session is not to be missed.

In this session we’ll take a look at some of the information that is available within SQL relating to query optimisation and query execution. We’ll look at some of the Dynamic Management Views and Dynamic Management Functions that expose data from the plan cache, some relevant Trace events and we’ll take a brief look at what Extended Events offers in this area.

Insight into Indexes

Are your indexes being used? Are there any that are taking disk space but aren’t contributing usefully to the server’s workload? Are there queries that could benefit from indexes that don’t exist?

In this session, we’ll be looking at the index-related dynamic management views to see what information SQL makes available on index usage and missing indexes, how that information can be used and what the shortfalls of those DMVs are

So now we get to sit until end of May and see who’s in and who’s not.