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

TechEd 2009 – Wednesday

The only session that I attended today was Peter Willmot’s level 400 on Extended Events.

Extended events have potentially very low impact, less overhead than Profiler. In fact, in SQL 2008 there’s an extended events session running by default, a health check  that has a small number of critical events that it traces Using Extended events needs good xml knowledge in the current version as there’s no built-in GUI. There are a couple 3rd-part apps available for download on Codeplex.

The key portions of Extended events are events (things that occur), actions (what to do when they occur), predicates (to filter to only the ones we’re interested in) and targets (what to do with the info)

Some of the targets (most) are async, some are sync. It is possible to allow events to be missed, in cases where there is too much happening and performance would suffer if all events were captured.

Best practices: Be careful with even retention. More events retained = more overhead. Rather go for the async targets as much as possible. Reduced the waits imposed on the SQL events. Target is async or sync. Predicates are always synchronous.

The closing keynote was way more interesting than the opening was. There were a couple upcoming technologies that they spoke about, then there was a talk on future directions in communication for Africa

AutoCollage. Take a picture library and automatically detect the most representative photos and generate a collage based on those.  Face recognition, object detection, complex algorithms.

Natural user interfaces. Video on natural user interfaces. Starts off with stuff that’s not too implausible or too far ahead, gets a little strange towards the end. I have seen that video before, might have been at TechEd last year. After the video they showed that some of this is already in use at Redmond, specifically something called the ‘Executive Wall’, a multi-touch wall that shows information and allows interaction, drill-in and items to be moved around. Apparently Bill Gates demoed it at an executive conference recently.

Communication revolution. Talked about the potential and actual connectivity to the rest of the world. Apparently by 2011 there should be a potential 10 Tb/sec available to South Africa. Potential, because not all the cables will be active immediately. There also looks like there will be some amusing political problems. There are four major players in the whole game. Will be interesting to see how they work together, if they work together.

The future:

  • User interfaces evolve. Interoperable
  • The cloud will be a reality
  • Phone vs Computer won’t go away
  • Computers just about everywhere.
  • Fiber to the home
  • Video-on-demand a reality
  • True video conferencing
  • Same content regardless of the device

I just wish the future was here in terms of airlines. I was supposed to leave Durban at 17h40. Flight was full due to two cancellations and the new flight’s just been delayed. At this rate I’ll only be getting home tomorrow….

TechEd 2009 – Tuesday

I started Tuesday my second presentation, on how to evauate Indexing Strategies. I think the presentation went quite well, it was almost standing room only which, for a whiteboard session is impressive.

The two sessions that I attended that I enjoyed the most today were on the upcoming SQL 2008 R2, Donald Farmer’s session on Project Gemini and Matt Hollingsworth‘s presentation of the new multi-server management features in Kilimanjaro.

Donald Farmer talked about the prevalence of Excel as an analytics tool and the enhancements coming in the Gemini add-in to allow more data and to make it faster. He demonstrated sorting and filtering on 101 million rows in seconds. Also lots of stuff on slicers, filters that are aware of each other, as well as the integration with sharepoint. Looks exciting.

Matt showed the new management features of Kilimanjaro, a utility server that monitors and reports on other servers so that it’s easy to see what servers are under or over utilised. I took a couple photos of the dashboard.

The community lounge was rocking today. Literally. Some of us really shouldn’t give up day jobs.

The closing party was good, and good food too. Always a bonus. Kinda reminded me of the opening party last year, same kind of atmosphere.

TechEd 2009 – Monday

The first day of TechEd is over and, as usual, I feel like I’ve stood under an information waterfall. The first session of the day that I attended was a Sharepoint session giving an overview of Sharepoint 2007 and the roadmap to 2010. Actually, in all honesty it was more an overview of Sharepoint 20047 and very, very little on 2010. Probably because 2010 is still in development and most of the details may not be publically released.

There were a few useful take-aways from that session.

* There’s a Sharepoint best practice guide available at
* There’s a community kit add-on for document libraries that adds ratings and download counts.
* Only Sharepoint 2007 SP2 will be able to upgrade to 2010. There’s an upgrade advisor check in SP2
* Sharepoint 2010 is 64 bit only and is expected first half of 2010
* Some 2010 features: context sensitive Ribbon bar, direct edit in the web parts, easy way to change and upload images, out of box Silverlight webpart

I spent most of the rest of the morning sitting in the community lounge and taking part in the TechEd Online interviews.

After lunch I went to a session on Tips and tricks of Entity Framework.

Some of the things covered there were on the usage of foreign keys within entity Framework and how to get and set foreign key values without retrieving the whole related object. The presenter also showed how to get the exact SQL statement that that the Entity Framework will execute and how to generate alternate queries and how to do granular exception handling fpor when the call to SaveChanges throws an error

Monday ended with a session that I presented on Query Hints and Plan guides. I understand from a couple people that attended that perhaps the reason for chosing to use hints wasn’t clear so, for anyone reading the blog, I’ll make sure I do a couple blog posts covering that, maybe next week.