TechEd US – Full Text Indexing – SQL Server 2008

Got the email today to say I had a session accepted for TechEd US. I'll be doing the "Answering the queries your users really want to ask" session on full text indexing in SQL Server 2008. It's an update of the session that I did at TechEd EMEA in Barcelona recently.

I'm really pleased to get to present again this year, given the vastly reduced number of data track sessions.

LINQ to SQL: Does it have much of a future?

Kevin Kline recently posted, wondering about the directions for LINQ.

When people refer to LINQ, they're often referring to "LINQ to SQL" instead.

LINQ as a language enhancement is pretty cool. It provides a way to easy navigate enumerable objects. The only thing that puzzles me is why they picked SQL-like syntax for this instead of something more appropriate for objects.

On the other hand, LINQ to SQL I can't get excited about. The main issues are that it's tied to SQL Server and only gives you a one-to-one mapping of tables to objects. That leaves you with either a lousy database design or a lousy object model.

The easiest example is anything that involves many to many relationships. If I have a flights table and a passengers table, I'd typically have a linking table (like flightmanifests) that records which passengers are on which flights. That's good database design but I wouldn't want an object model based directly on those three tables. What I'd want at the object level is a passenger object with a flights collection and a flight object with a passengers collection.

The Entity Framework lets you cope with both the issues mentioned and seems to be more likely to be the direction that Microsoft will keep heading. It also adds some interesting constructs in the ESQL language. However, its generic nature means you need to work with a very constrained set of data types. You lose the rich data types available with SQL Server in the trade off with the ability to write more generic code.

From the database end, LINQ to SQL can generate quite poor TSQL and the way people often use it ends up causing plan cache pollution issues, much the same as anyone using AddWithValue() to add parameters to a SqlParameters collection in ADO.NET would.

Every time I show people the TSQL code generated from some simple LINQ to SQL queries, I see two reactions. People with a developer background usually say "I'm glad I didn't have to write that". People with a database background say "No-one should write that – it's horrible code". And LINQ to Entities generates even more generic code (as you would imagine it needs to when it doesn't even know what database engine it's targeting).

This is usually all justified by increased developer productivity. "As long as it works well enough and it's done quickly, who cares if what's going on under the covers isn't great?" And that's 100% true for small or simple applications. However, the places I see Microsoft pushing this technology is to ISVs and large enterprise clients. These are likely to be the people it's least appropriate for.

The ADO.NET group seems to have adopted LINQ to SQL now but I know they really don't love it and the Entity Framework is what they're interested in. So I can't see LINQ to SQL having much of a future at all. LINQ to Entities is much more likely to stay around.

The other big issue I see in this area is maintenance. Microsoft have made big strides with the Database Edition of Visual Studio Team System but every time I ask questions about what the plans are for allowing it to "see" all the mapping files from these coding technologies, I get very blank stares back. Many DBAs can't make any changes to their databases today because they have a sea of Access applications all over the organisation and they don't know what will break when they change something. Are LINQ to SQL and Entity Framework mapping files going to be the next generation of Access-database-style management issues?

Rendering HTML in Reporting Services Text Boxes in SQL Server 2008

Some time back, I posted about how to do this. Well by the time we got to RTM, this had changed.

There isn't a "create placeholder" option when you right-click a cell any more.

When you drag a field into a cell, it creates a placeholder that contains the field. If you right-click the placeholder that was added, you'll see an option to edit the Placeholder Properties. What threw me for a while was that if you right-click the cell, you won't see this option. Turns out you have to right-click the field-name within the cell, not the blank area beside the name within the cell. Thanks to my colleague Jessica Moss for helping me find it.

This really isn't very good UI work in the report designer. It's quite counter-intuitive and different to how cell selection, etc. works in other products like Excel.

December Books Online for SQL Server

I'm always encouraging people to keep up to date with books online. There's another update out now.

I know when you get to this link: 

it says "September" but it really is the one issued in December. (Of course when it's installed, it says November :-))

SQL Down Under show 42 – Ryan Dunn – SQL Data Services (SQL in the cloud)

I've recently posted up another podcast with Ryan Dunn. Ryan is a senior evangelist with Microsoft dealing with SQL in the cloud.

I keep running across people that suspect that this "cloud stuff" is some sort of fad. I doubt you'll think that after you listen to this show (and alsoshow 40).

It's now available for download from


Iron DBA – New Zealand – 2008

Mai and I got back from New Zealand last night after attending the PASS Community Connection event in Porirua (near Wellington) in New Zealand.

It was a fun weekend as always and congratulations need to go to Nathan Pitcher (PASS Chapter leader from Dunedin) for organising it in conjunction with Adrian, Dave, Amanda, Sue and all the gang from the other local chapters as well as the staff of the local polytechnic where the event was held.

Adam Cogan and I got to present the keynote and decided to have a bit of fun by creating an "Iron DBA" competition, inspired obviously by Iron Chef television program from Japan. Chairman Cogan and Chairman Low then asked the audience a series of SQL Server questions (dispelling many common myths) until we had six Iron DBA finalists. Each was then allowed to nominate someone to help them prepare a submission on how SQL Server 2008 might help in a consulting scenario we had created. Nathan had organised a great trophy to go with the prizes. It'll now be an annual award.

All in all, it was a bunch of fun. Congratulations to the winner for 2008: David Philpott. (David is 3rd from the left, shown with the other finalists).

Ola Hallengren: SQL Server Backup, Integrity Check and Index Optimization

At the PASS Summit in Seattle this year, I had the pleasure of meeting Ola Hallengren. I've exchanged emails with him previously and I do want to highlight the tool he provides for SQL Server backup, integrity check and index optimization. You'll find details on it at:


Microsoft Certified Master: SQL Server 2008

I've been really busy lately. A big component of that time has been my involvement with the new Microsoft Certified Master: SQL Server 2008 program. I was privileged to be chosen to teach six days of the fifteen day program in the recent alpha rotation. In addition, I decided to attend (and pay !) to attend the rotation, do the exams and qualifying lab.

Well it was quite an experience!

Anyone considering this program needs to understand the demands that it will place on your time. The three weeks of classes run from 8am to 6pm daily but most attendees would then spend up to another three or four hours per night studying while there. On the weekends, you have lab work that needs to be completed before the next week and each Monday morning, you have a two hour Prometric exam. On the final Saturday, you have another two hour Prometric exam followed by a six hour hands-on qualifying lab. I was with a wonderful group of people on this first rotation and have to say that all looked exhausted at the end.

Paul Randal and Kim Tripp covered the first week, Adam Machanic, Paul Nielsen, Allan Hirt, Ron Talmage, Andy Kelly, myself and Gert Drapers covered the second week and I covered the third week.

While I obviously can't tell you anything about the exam content, I'd be giving nothing away by saying it's in a different league to the questions you see on the MCITP exams. And the final qualifying lab has some carefully chosen scenarios that you need to navigate your way through, with lots of little (intentional) road-blocks on the way.

If you look into doing this program, you need to block a bit over three weeks of your life completely out. It's also expensive and what might surprise you more is that most candidates don't pass at the first attempt. I was one of the fortunate ones to do so this time but you should not consider it to be any sort of failure if you don't achieve it on the first attempt. You can retake the exams (with similar rules to the other Prometric exams) but you can't retake the qualifying lab until you've passed the exams. You only get two attempts at retaking the qualifying lab or you then need to retake the whole course. (I believe that would happen at a 50% discount but you should check the rules for clarification). Also, don't plan to fly out on the Saturday night at the end. Leave the time to have dinner with the rest of the people in your rotation and avoid any time pressure related to flights. That's the last thing you'll want on your mind at that stage.

Regardless, it's highly recommended if it makes sense for you. I'll be back teaching in the next rotation and I'll look forward to seeing any of you that decide to tackle it.