# Monday, January 10, 2005

I’ve been a bit lazy with blogging recently so I wanted to talk about a question that came up in the office today. The question was about the utility and performance of unique identifier columns as primary keys.

A unique identifier or GUID is a 16 byte data type; four times the size of an integer normally used for primary keys. This means that any index built using a GUID will be larger and contain less records per page. I managed to find this thread on p2p.wrox.com which seems to indicate there are some special index optimisations (cascading GUID blocks) in use for GUIDs. This is unconfirmed though so maybe someone from the SQL Server team can provide a definitive answer.

The size of the datatype can add up when used in data warehouse fact tables because each fact may have a large number of dimensions. For this reason I would probably stick to integer dimension keys.

GUIDs, by their very nature, are non-sequential which completely screws clustered indexes. There is a new sequential generation algorithm in Yukon which solves the issue although I can’t think of a reason why you would use a clustered index on a GUID because they are better suited for range queries. At Exony we hardly ever create a clustered index on the primary key as it’s normally reserved for datetime or date key columns.

The above seems quite negative but I think there are some good points to remember. There are some definite ease of use considerations with GUIDs when compared to IDENTITY columns:

  • Identities need to be reseeded in replicated systems to ensure inserts don’t clash
  • For GUID columns, you can either supply a value or rely on a default safe in the knowledge you won’t clash values
  • GUIDs can be generated at build time and embedded in SQL or load files simplifying installation code
  • GUIDs can be generated on remote systems or in higher system layers without issue

To end I think the general ease of GUID use outweighs any performance degradation in normal operations, although probably not in data warehouses. I see that the SQL Server team use GUIDs for primary keys (see the Reporting Services database for details) so there can’t be too much wrong with them.

This posting is provided "AS IS" with no warranties, and confers no rights.
posted on Monday, January 10, 2005 9:57:21 PM (GMT Standard Time, UTC+00:00)  #    Comments [3] Trackback
# Friday, December 24, 2004

That’s all for this year. I’m off to London to spend Christmas with my folks. Merry Christmas (or whatever occasion you are celebrating) and a happy New Year. See you then.

This posting is provided "AS IS" with no warranties, and confers no rights.
posted on Friday, December 24, 2004 12:13:08 PM (GMT Standard Time, UTC+00:00)  #    Comments [0] Trackback
# Monday, December 20, 2004

If you always wondered why playing Halo 2 over satellite broadband is a pain in the neck then check out http://stuffo.howstuffworks.com/halo-network.htm for the implementation details with Chris Butcher.

This posting is provided "AS IS" with no warranties, and confers no rights.
posted on Monday, December 20, 2004 10:58:29 PM (GMT Standard Time, UTC+00:00)  #    Comments [0] Trackback
# Saturday, December 18, 2004

By way of Euan Garden:

Hey guys, how about a nice article on automated SSIS deployment for us ISVs that need to write installers for our products?

Also, don't forget to check out Darren and Allan's SQLDTS.com site reincarnated as SQLIS.com - SQL Server Integration Services on the Web.

Now playing: - Ryan's Radio

This posting is provided "AS IS" with no warranties, and confers no rights.
posted on Saturday, December 18, 2004 2:35:34 PM (GMT Standard Time, UTC+00:00)  #    Comments [1] Trackback

My feed list is starting to get out of hand. It's so large that I've started adding feeds already subscribed to because I can't remember if they are new or not. Robert, I don't know how you keep up with all your feeds.

To help, I've knocked together a little tool to clean duplicates out of my OPML file. It's a .NET console application so just supply the relevant filename on the command line. It will backup the file before processing. Source is included but it's nothing special. Enjoy.

Now playing: - Ryan's Radio

This posting is provided "AS IS" with no warranties, and confers no rights.
posted on Saturday, December 18, 2004 2:15:46 PM (GMT Standard Time, UTC+00:00)  #    Comments [0] Trackback
# Monday, December 13, 2004

In a previous post I talked about how difficult it is to blog in a small company and promised a follow up on the kind of things you could blog about. Well I think corporate blogging has to be about customers. If a blog doesn't have any customer focused content then it's a personal site; possibly very interesting, but not corporate. Microsoft bloggers are fortunate because, for most of them, they are doing the same job as their customers i.e. software development. This means they get to talk about their daily activities. For those of us whose customers are in a different field, we have to look for content that may not be immediately available.

It's time for some examples. I work for a company whose main business is selling software to help customers optimise their contact centres. What do our customers want to hear about? They probably want to know about how they can save money, keep their customers happy, integrate new systems and new developments in the field. To get specific, most of Exony's customers use Cisco ICM so they are probably interested in how to do great things with it. As I haven't found any Cisco bloggers (let me know if there are any) then we could fill that gap along with how to get the best out of the marriage between ICM and Exony.

To end, I tend to get more motivated by promising a post on a subject so look out for more on Exony Reporting and Cisco ICM here in the near future.

This posting is provided "AS IS" with no warranties, and confers no rights.
posted on Monday, December 13, 2004 11:06:03 PM (GMT Standard Time, UTC+00:00)  #    Comments [0] Trackback
# Sunday, December 12, 2004
I see Clemens is having issues with referral spam too. So until Omar checks in the 1.7 stuff I’ll make my white-list changes available. Just unzip onto the latest source from the Workspace and rebuild.
This posting is provided "AS IS" with no warranties, and confers no rights.
posted on Sunday, December 12, 2004 2:18:44 PM (GMT Standard Time, UTC+00:00)  #    Comments [1] Trackback
# Saturday, December 04, 2004
I finally got my Christmas list sorted and, as it turns out, most of the items are from Amazon.co.uk so I've added my associate ID to the links I've given out. This way I get a little Christmas bonus from the trade I've sent their way. It feels wrong, but I spend enough with them so what the hell.
This posting is provided "AS IS" with no warranties, and confers no rights.
posted on Saturday, December 04, 2004 10:42:51 PM (GMT Standard Time, UTC+00:00)  #    Comments [0] Trackback
# Thursday, December 02, 2004

There seems to be a lot of blog chatter about corporate blogging at the moment; specifically how beneficial it can be. Well Microsoft has managed to make it work but I think they are in a rather unique position. Of the hundreds of Microsoft bloggers, most are blogging about new products and features. This allows them to generate interest and effectively market the new software. Their blogs are very popular and a request for feedback usually gets a number of useful suggestions.

All very good for the customer but blogs are open to the public. Anyone can read them and make use of their content. The use to customers is enormous but competitors can also read and utilise the information. Somasegar is making noises about exposing more Microsoft internals from specifications to daily builds. This must be good news for the competition or is it?

How come Microsoft can do this without giving away all their corporate secrets? I guess the answer is scale. How many developers/tester/program managers are working on a typical product - thousands by all account. Most companies can't muster a fraction of that resource so, even if they did have all the specifications of up and coming products, there is no way they could develop a better product in the same amount of time.

Think about the flip side of this discussion. My company is tiny - I can count the developers on one hand yet we produce enterprise scale applications. What if I were to blog about new features I was working on? How quickly could a larger competitor steal my ideas?

I never understood how bundling a browser with the operating system could be considered anti-competitive because as a customer I like that Windows has lots of additional features bundled and as a developer I can rely on it's presence for my own work. For the first time though I can see how a large company can on one hand be helping its customers and at the same time using that strategy to gain an advantage over it's competitors.

I don't necessarily agree that big company blogging is anti-competitive and I don't agree that small companies can't blog so in a future post I'll talk about finding the right things to blog about.

This posting is provided "AS IS" with no warranties, and confers no rights.
posted on Thursday, December 02, 2004 9:47:53 PM (GMT Standard Time, UTC+00:00)  #    Comments [0] Trackback
# Saturday, November 27, 2004
Here’s a quick guide to code reviews from the Mozilla project. It’s aimed at C++ but most of the principals are language independent.
This posting is provided "AS IS" with no warranties, and confers no rights.
posted on Saturday, November 27, 2004 6:48:32 PM (GMT Standard Time, UTC+00:00)  #    Comments [0] Trackback
# Friday, November 26, 2004

Christmas is only four weeks away so as usual I've been asked what I want. I hate this question. Mainly because I never have an answer. I'm very lucky in that I don't usually want for anything as I'm able to just go and buy it. I realise that not everyone is fortunate enough to be in this position. Also if I want a Ferrari I can't afford one but you get the idea.

The best kind of gifts are those that you wouldn't think of buying yourself. By that I mean the kind of gift that never occurred to you. For example, my father is as much a Manchester United supporter as I am and a couple of years ago he was given an old (circa 1930's) replica United football. Genius.

Unfortunately, the reverse is not quite the same. I nearly always ask my family what they want. Is this because I don't want to disappoint? Or maybe I don't know them well enough to come up with something as I've described above. I guess I have a bit of a reputation within my family for buying strange gifts when left to my own devices. The meditation kit I bought my mother a few years back was probably the pinnacle of weird presents but I like to give people the opportunity to try something new.

I guess there is always the usual options that are a good bet for me - DVD's, CD's and books. You can never buy "all you want" with those. For some reason I never receive books though. It's strange as my house if full of them so it's pretty obvious I like to read.

Help me out here, leave a comment with suggestions on how to answer the question above.

This posting is provided "AS IS" with no warranties, and confers no rights.
posted on Friday, November 26, 2004 10:14:56 PM (GMT Standard Time, UTC+00:00)  #    Comments [2] Trackback
# Sunday, November 21, 2004

I see Hotmail has upgraded my account to 250MB… Gee-thanks… But I’m afraid it’s too late, I already use G-mail as my main internet account. Hotmail is now a just a passport sign-in and junk mail repository. For me to switch back, Hotmail will have to become a lot better than G-mail. Here’s some hints:

  • Hotmail is too slow
  • It’s got too many graphics
  • The search sucks
  • No POP support
  • No permanent tray notification for e-mails (you have to click on the Messenger guy)
  • G-mail has auto-complete in the to: cc: lists
  • It’s file attachment is faster
  • The spell checking is easier to use (although no custom dictionary yet)
  • Labels are a more natural and powerful mechanism than Hotmail folders
  • G-mail filters are excellent
  • I can drive G-mail from the keyboard

Let me know when it’s fixed and I’ll have a look.

This posting is provided "AS IS" with no warranties, and confers no rights.
posted on Sunday, November 21, 2004 1:28:54 PM (GMT Standard Time, UTC+00:00)  #    Comments [0] Trackback