Wednesday, February 2, 2011

I have been involved with SQL Server since before the first beta versions went out – I was working as a consultant to Microsoft’s Internal Technology Group and we were the bleeding edge folks in those days. I was heavily involved with stressing and performance analysis (given the nick name on my door of “Dr.Science” because of my statistical analysis) and we had the joys of getting up to two different builds a day from the Dev Divisions when we encountered issues.

Today, I have several projects that are likely needed to be cloud-supportable in the near future so it’s time that I get up to speed and hope they don’t re-invent the technology before I need to build commercial systems on it. Two books have come across my desk recently that on first read appear ideal. The first one is on SQL Azure and is not focused on the “Hello World” style of book often seen. A second aspect is that it’s a new-kid-on-the-block publisher, and often they do a better job then the old folks who find a particular successful formula and proceed to create a factory of cloned topics. Many authors that I know personally complain about the dropping rates for tech books in the US and I see some of them dropping writing in favor of consulting (or even blogging!!). The publisher is based in the UK and India and may represent the next generation of top-notch technical books – because the rates for top author is more competitive than with US authors. This is the modern reality – offshoring of technical books is becoming a reality.

Concerning SQL Azure: If the book was not first published in 2010 (or later), forget it – SQL Azure has evolved too much in the last year.

The book title page is below (click to go to site):

In this series of blogs, I will both review the chapters and share observations. I am not a complete novice with SQL Azure – but everytime that I tried it, I stopped because it was just not far enough along to risk commercial development on – in my last post, I will give my current feeling on this.

Chapter 1 Cloud Computing and Microsoft Azure Services Platform

A good crisp introduction that describes well the chaos in Cloud Computing. There’s a bunch of competing products and a lot of jargon – J.K. does a nice job is summarizing the key aspects.

The table on page 16 is a nice checklist for deciding on what cloud platform. In my pending projects, a key question is this choice :

Using SQL Server 2008 on Amazon, or

SQL Azure

What is lacking is the % of SQL Server 2008 features that are available on SQL Azure. 90% of features of Visual Studio is a good bit of information (which I will return to in later posts). The top table on page 19 is a nice statement of a performance impacting fact – at least SIX different versions in 2010

… a rate of change that would be unacceptable in many development environment.

Some minor points of disagreement/nit-picking:

First, I dislike embedded URLs in the text--- they belong in footnotes. I hope the editors of future tombs will change this practice.

Second, tables are not captioned (see table on page 16) --

There’s a few hanging references: example p.24 “SQL Azure was updated with SU1.” What is SU1? This was the first reference to it and it’s not defined as “Service Update” until page 352

P.30 Too much irrelevant details describing the hardware and software

Exercise 1.1 should be moved to an appendix, it disrupts the flow too much (and give a taste of a “Hello World” book)

“Windows Azure Platform that provides support for a relational database in the Cloud” – being involved with Relational Databases since 1980 and a follower of C.J.Date [if you don’t know C.J. and claim to be a RDBS person it would be equivalent to claim being a nuclear physicist and not knowing who Niels Bohr is], I would take exception on the term “relational” being appropriate…

Chapter 2 SQL Azure Services

Good, but rather pro-forma, presentation. The absence of Dynamic DNS support, and the absence of the ability to use a client certificate instead of an IP to get through the fire wall is not brought out (i.e. best case writing….). Some key points are not adequately called out, for example, p.89 reads:

Instead of something like:

Note: Unlike SQL Server, unless a table has a clustered index you will not be able to insert values. A clustered index must be created before an insert operation is allowed on the table.

The Note part should be boxed and emphasized, the need to have a clustered index on a table is a significant change from SQL Server 2008.

Some minor points of disagreement/nit-picking:

Figures are not captioned (see page 52)

No discussion of how to deal with dynamic DNS (many small firms do not pay the extra to get a fixed IP – if one happens to be available. None of my available ISPs provides the option of a fixed IP. I do have a DNS entry on HomeLinux.org which points me always to the right IP).

TSQL code examples (for example p.91) should be using NCHAR and NVARCHAR (the web is multiple languages)– Worst yet, it uses the NTEXT and IMAGE type (like TEXT ) which is obsolete!

Tomorrow I will go through 2 more chapters… My current rating (based on the first two chapters) is that this book runs around the 75%ile. Out of 4 random books on this topic, it’s better than three of them.