Filtered Indexes Make Me Drool…

(I got CTP 6 running on another machine, so I’m working except for parallel plans now since it’s only a single-proc.  You guys will have to wait on that operator of the day article for now Kudos to my former teammembers for getting filtered indexes into CTP6.  It’s pretty darn neat, and I’ll show you […]

SQL 2008 CTP6 installation DOA.

oh well.  I’ve spent a fair amount of my day attempting to manually hack out a lot of the various registry keys associated with SQL Server 2008 in the hopes of upgrading from the November 2007 CTP to the Feb 2008 CTP on my main machine (Vista x64 box).  Since I received questions about whether […]

grrr… installation woes with SQL 2008 CTP5/6

Well, my dev box is in a bad state now – can’t install the new CTP and I had to start manually hacking on the old one. I may have to install SQL Server 2008 CTP 8 on a VM or on another machine. So, I apologize for delays in posting up examples to answer […]

SQL Server Scalar Operator Costing aka “umm, what costing?”

One of the earlier comments I received asked about costing of T-SQL and CLR functions.  More specifically, they want to know how they are costed and why it is so low. Let’s create a motivating example.  I’ll create a table with some size to it (I add a binary(2000) column to make each page take […]

Statistics Backgrounder

ok so I haven’t written anything about statistics yet on the blog, and Paul fielded a question from someone asking about details of the statistics implementation in SQL Server.  Luckily, I know a little bit about that. So, this post will cover the published background material that I think everyone should read about SQL Server’s […]

Operator of the Day: Streaming Table-Valued Functions (aka the Dynamic Management View/Function)

So I like kung-fu movies.  I don’t care how bad the acting is, as long as there is some master/relative/friend who has been killed who needs avenged.  Often good movies are made this way. In software, a good idea often comes out of getting tired of seeing bugs on a sore subject, often not even […]

RAND() and other runtime constant functions, redux

The blog was down a bit today – sorry for all who got to see CLR stack traces pushed through HTTP (I *will* do a post on that sometime ;)… A reader sent in a question about my previous RAND() post (here) and wanted to know if other functions were pre-evaluated.  The specific example was […]


I’ve been playing with the new grouping sets feature now that it’s in a CTP, partially because I had a small hand in them before I left Microsoft, but partially because I’m trying to re-examine features from a more external perspective.  So, I figure this is a good conversation starter. So, as all programmers are […]

Wrapping my head around RAND() in SQL Server

So there’s all sorts of legacy behaviors in SQL Server that will keep me employable for years and years because it didn’t make sense when Microsoft started shipping SQL Server and there’s too many people to change it now ;). RAND() is one of those things that behaves differently in the various commercial database vendors, […]

Operator of the Day: Segment

I previously blogged about the sequence project operator, which I helped architect/develop while working on the SQL Server QP (here).  In that same post, I promised to tell you about the Segment operator in more detail as well. Segment is largely a “helper” operator in SQL Server.  It does very little and there isn’t a […]

EXISTS Subqueries: SELECT 1 vs. SELECT

I received a comment asking about this, so I’ll write a short note on the subject. The QP will take and expand all *’s early in the pipeline and bind them to objects (in this case, the list of columns).  It will then remove unneeded columns due to the nature of the query.  So for […]

Database Virtualization – The Dirty Little Secret Nobody is Talking About…

Had I known the number of responses I would have gotten about running SQL Server in virtual environments, I would have spent more time writing a questionnaire!  I guess I’m also pleasantly surprised that so many of you read this blog – you must all be smarter and better looking than the average blog reader, […]

VirtualPC/VMWare on your SQL box?

I’d like to do a post or two on running SQL Server 2005 within a virtual machine.  Before I get into all sorts of fun details on this, I’d like to ask you guys to write in and tell me about what whether you are doing this or not. It’s ok, I don’t get paid […]

Partition Elimination 202

In my previous post, I talked about the basics of partition elimination and mentioned some of the challenges.  SQL 2005 does contain logic to do partition elimination, but it is imperfect because some of the interactions with other features in the optimizer didn’t always do partition elimination when customers wanted/expected it to do so.  SQL […]