Today we have a guest editorial from Phil Factor as Steve is on vacation.
I’m a fan of Ayende Rahien’s series of blog posts entitled ‘World’s Smallest No SQL Database’, a ‘fully functional, scale out capable, sharding enabled No SQL Key/Value store in less than 60 lines of code’ (he had to fit both client and server code into a single PPT slide)
He describes the development of this project as ‘literally just me throwing stuff off the top of my head’ to provide ‘very much a poor man’s solution’. It is hard to read it without smiling. Ayende (a pen-name of Oren Eini) knows a great deal about databases, being the power behind NHibernate and the creator of RavenDB. Besides this, he is a master of satire, and a great communicator.
There is no better way of illustrating the fundamental processes of a database by sketching them out in code. Ayende walks the reader through initial amazement and mirth through some interesting illustrations of the challenges involved in building real world databases. How do you make your database atomic, consistent and isolated? Ayende walks you through the processes. What is involved in dealing with concurrency? Click, click click, it is all done. Soon one gets the feeling that anyone can knock together a NoSQL database, and my goodness, you wouldn’t be the first to get that idea.
It is great fun, rather like building a working car out of lego bricks, and it is a powerful tuition aid. It reminds me of the ‘Small C’ compiler written by Ron Cain and James Hendrix (not the guitarist, sadly) and published by Dr Dobbs in 1980. It was a perfect way of learning how compilers worked, and a C in particular. It was an inspiration to a generation of programmers.
With the massive number of servers running SQL Server within virtual machines (VMs), it's critically important for DBAs to understand the high availability options available when SQL Server is running within a VM. More »
Question of the Day
Today's Question (by pramod singla):
DECLARE @x AS XML;
@x.query('Data(*)') AS Complete_Data,
@x.query('Data(root/a/c)') AS Element_c_Data;
What wll be the output of the above query?
Think you know the answer? Click here, and find out if you are right.
We keep track of your score to give you bragging rights against your peers.
This question is worth
1 point in this category: XQUERY.
Did you miss yesterday's question,
TDE Setup: answer it now or check out the answer.
We'd love to give you credit for your own question and answer.
To submit a QOD, simply log in to the
SQL Server 2012 Query Performance Tuning leads you through understanding the causes of poor performance, how to identify them, and how to fix them. You’ll learn to be proactive in establishing performance baselines using tools like Performance Monitor and Extended Events. You’ll learn to recognize bottlenecks and defuse them before the phone rings. You’ll learn some quick solutions too, but emphasis is on designing for performance and getting it right, and upon heading off trouble before it occurs. Delight your users. Silence that ringing phone. Put the principles and lessons from SQL Server 2012 Query Performance Tuning into practice today.
Detecting ALTER or CREATE PROCEDURE??
- Can't get this working - whinges about ALTER/CREATE statement syntax ?? Help?
IF (SELECT count(name) FROM sys.sysobjects WHERE (type = 'P') and name = 'SPNAME')...
need help with pivot
- I need to write a query without using pivot. Here is the scenario
need to display summition of data yearly and...
This newsletter was sent to you because you signed up at SQLServerCentral.com.
Feel free to forward this to any colleagues that you think might be interested.
If you have received this email from a colleague, you can register to receive it here.