May 2011 - Posts

I am at the beginning of touring user groups around the UK so on train journeys back from a user group meetings I have had time to write out my thoughts on some of the new features that are available in SQL Server C TP 1.

The vision from Microsoft regarding this release looks the same as it was in SQL Server 2008 R2

Empowering IT – Making it easier for IT departments to manage the scalability and availability of SQL Server

Dynamic Development - Making it easier for database developers to develop SQL Server databases in a consistent application

Pervasive Insight - extending the reach of BI to include business users as well as IT professionals and developers

What is notable is the fact that Microsoft will scale SQL Server to different platforms including

Appliances - SQL Server editions including Parallel Data Warehouse and Fast track that have a dedicated purpose using SQL Server

Box - the traditional implementation that most will be familiar with running a specific edition of SQL Server on a server.

Cloud - SQL Azure, a cloud-based service offering data storage capabilities

The capabilities that are available on each platform will vary, in this blog I will concentrate on the new features that will be available on the box with the release of SQL Server Denali CTP ( Community Technical Preview) 1 available from

In no particular order, the following are a summary on some features of SQL Server Denali CTP 1


One features that addresses the scalability and availability vision is HADRON or High Availability Disaster Recovery Always ON. This is a technology that tightly integrates the database mirroring architecture with Windows Clustering. The key benefit that this has over database mirroring is that up to 5 secondary servers can be defined, which are readable and can be queried. Like database mirroring, endpoints are used to connect between primary /secondary instances like in Database mirroring. Furthermore as the architecture is very similar to database mirroring, Database Mirroring configuration from SQL Server 2005 onwards can be upgraded to HADR.


You now have the ability to create user defined server level role on an instance of SQL Server. This provides a greater degree of granularity when setting security at an instance level. As a result the  sp_addsrvrolemember and sp_dropsrvrolemember are being deprecated and being replaced with the ALTER SERVER ROLE instead. Server roles can be created using Transact-SQL or within SQL Server Management Studio.

Startup Options

You can now graphically configure SQL Server startup options within the instance properties in SQL Server Configuration Manager

Contained databases

Contained databases are databases that contain all the objects and metadata for a database without having dependencies on the SQL Server instance. This makes it easier to move databases between different instances of SQL Server. Contained databases can be defined in one of three configurations:

NONE – This means that the database does have dependencies on the SQL Server instance. This is how all databases created on a SQL Server instance are defined by default
FULL – As yet not available in Denali CTP 1, my understanding is that objects defined in these databases do not have dependencies on the SQL Server Instance
PARTIAL – Some objects have dependencies on the SQL Server instance, other objects are contained within the database

Transact-SQL additions and enhancements

There are a number of T-SQL additions and enhancements in this release of SQL Server including Paging, SEQUENCE and THROW


The ORDER BY clause has been enhanced to include the ability to page results. Example from Books Online include:

USE AdventureWorks2008R2;
--Using Order by to return all rows sorted by the column DepartmentID.
SELECT DepartmentID, Name, GroupName
FROM HumanResources.Department
ORDER BY DepartmentID;

-- Use OFFSET to skip the first 5 rows from the sorted result set and return all remaining rows.
SELECT DepartmentID, Name, GroupName
FROM HumanResources.Department

-- Use OFFSET to skip 0 rows and return only the first 10 rows from the sorted result set using FETCH --NEXT.

SELECT DepartmentID, Name, GroupName
FROM HumanResources.Department

-- OFFSET and FETCH values  can be defined within variables

DECLARE @StartingRowNumber tinyint = 1      ,
@FetchRows tinyint = 8;
SELECT DepartmentID, Name, GroupName
FROM HumanResources.Department
ORDER BY DepartmentID ASC     OFFSET @StartingRowNumber ROWS FETCH NEXT @FetchRows ROWS ONLY;


A feature available to ORACLE database professionals is now available to SQL Server database professionals. SEQUENCE enables you to define a sequence of numbers which is stored and retained in memory. My good friend Aaron Bertrand has two excellent blog pieces on how to implement SEQUENCE and the performance impact that I would recommend:


You now have greater flexibility with the TRY…CATCH Transact SQL statements with THROW being introduced in SQL Server Denali. This raises an exception and then transfers execution to a CATCH block.   

SSIS enhancements

I will be blogging more on these changes in the future however to areas stand out regarding SSIS which will make life a lot easier


The usability of SSIS has been improved within Business Intelligence Development Studio. The ability to undo and redo changes in the designer is a small change, but of massive benefit while developing SSIS packages. Copy objects between packages is a lot easier and you can customise the toolbox more easily.


There is a new project deployment methodology that will deploy SSIS at a project level rather than the package level that we have been previously used to. The package method of deployment still exists and is referred to as the legacy deployment model.  The following tables is taken form Technet Wiki  
that shows the differences and similarity between the project deployment methodology and the legacy deployment methodology

When Using the Project Deployment Model... When Using the Legacy Deployment Model...
A project is the unit of deployment. A package is the unit of deployment.
Parameters are used to assign values to package properties. Configurations are used to assign values to package properties.
A project, containing packages and parameters, is built to a project deployment file (.ispac extension). Packages (.dtsx extension) and configurations (.dtsConfig extension) are saved individually to the file system.
A project, containing packages and parameters, is deployed to the Integration Services catalog on an instance of SQL Server. Packages and configurations are copied to the file system on another computer. Packages can also be saved to the MSDB database on an instance of SQL Server.
CLR integration is required on the database engine. CLR integration is not required on the database engine.
Environment-specific parameter values are stored in environment variables. Environment-specific configuration values are stored in configuration files.
Projects and packages in the catalog can be validated on the server before execution. You can use SQL Server Management Studio, stored procedures, or managed code to perform the validation. Packages are validated just before execution. You can also validate a package with dtExec or managed code.
Packages are executed by starting an execution on the database engine. A project identifier, explicit parameter values (optional), and environment references (optional) are assigned to an execution before it is started. Packages are executed with the dtExec and DTExecUI execution utilities. Applicable configurations are identified by command-prompt arguments (optional).
During exeuction, events that are produced by the package are captured automatically and saved to the catalog. You can query these events with Transact-SQL views. During execution, events that are produced by a package are not captured automatically. A log provider must be added to the package to capture events.
Packages are run in a separate Windows process. Packages are run in a separate Windows process.
SQL Server Agent is used to schedule package execution. SQL Server Agent is used to schedule package execution.

BISM or Business Intelligence Semantic Model is one of the major additions of SQL Server Denali that will change the way we potentially work with Business Intelligence. The most common misconception of BISM is that people think that it is specific to Analysis Services. It is not, it is hosted by SQL Server Analysis Service, however Crescent (the new adhoc reporting tool complementing SSRS) must have a BISM model in order to work. A second misconception is that the introduction of BISM marks the end of traditional Analysis Services solutions that uses UDM. Again this is not the case. UDM will still play an important role that can be summarised by the following graphic which I do not know who created but I believe came from a TechED session 

UDM versus BISM

The BISM is designed to combine the UDM model used by SSAS with the SMDL model used by previous Report Builder applications, representing the model in a relational manner while getting the BI sophistication from UDM. However BISM will evolve over time and as UDM is a more mature model you will still see the relevance of UDM within organisations for years to come. Specifically if you require advance calculation that cannot be currently handled by DAX, (the new querying language for PowerPivot that extends to BISM). Then you will be likely to use UDM.
BISM is designed to store the data in the VertiPaq in-memory column store. VertiPaq uses compression algorithms along with multi-threaded query processing that delivers fast performance in retrieving huge data volumes. So much so that this technology is also being introduced in the Database Engine in SQL Server Denali with the new feature of columnar indexes - this is Vetipaq again. So if you have data that cannot fit into the memory, then UDM becomes a consideration. I say that as Vertipaq can be configured to query against data sources therefore preserving the memory that vertipaq uses, but that is for another blog.

To quote the SSAS team from the following blog

“You might ask – Why do we have two types of models in Analysis Services? Which one should I use? Is the UDM going to be deprecated now that we have the BISM? The answer is NO! Analysis Services just got a lot better in SQL Server “Denali” with the BISM and VertiPaq and DAX! However the UDM is a mature and industry leading technology and is here to stay. Let me repeat – UDM (OLAP) models are not being deprecated!”

So there are exciting times in this area and I watch and partake with interest as it develops through time


In February 2010, I was sat in a room with two other MVPs (Microsoft Valuable Professionals) in Redmond as 5 members of the SSRS team wanted to show us the future of SSRS adhoc reporting . While the demonstration was being given, the MVPs where like kids in a sweetie shop. I don’t mind admitting I was drooling, and it has been very difficult to keep quiet about it since then. Like BISM, Project Crescent is designed to complement the existing report designer in Business Intelligence Development Studio and Report Builder applications that is provided by SQL Server Reporting Services. It relies on a BISM model to work, but its compelling selling point is that if present reports in a Silverlight front end browser that is extremely dynamic. For example, rather than looking at a static chart, the chart can be replayed like a DVD over time to see the result grow within the chart. This is certainly a very useful tool that can be stored in a SharePoint gallery, and while it may be touted as an adhoc reporting tool, I envisage BI professionals using it to create some standard reports that are currently created in Business Intelligence Development Studio.  Check out for your first taster…its awesome! 

So there are some of my thoughts on what is available in SQL Server Denali CTP1, I know that I have missed out some feature but I hope that future blogs will give you more information about specific topics 




Before installing SQL Server Denali CTP1, there are a number of pre-installation checks that should be considered before installing Denali. At the moment the Denali CTP (Community Technical Preview) version that is available to the public is SQL Server Denali CTP 1 and can be downloaded from here:

There are a number of different editions (versions) of SQL Server Denali that is available; each edition provides different features and maximum hardware support. SQL Server Datacenter and SQL Server Evaluation are the only SQL Server editions enabled on this CTP. The information provided here is for DataCenter edition, which is the highest edition available to SQL Server.
The considerations are broadly broken down into two areas; the hardware required running SQL Server Denali and the software. From a hardware perspective the following is the minimum hardware requirements to install SQL Server Denali CTP 1.


  • Minimum:512 MB
  • Recommended: 2.048 MB or more        
  • Maximum: Operating system maximum
  • Minimum: 1.4 GHz
  • Recommended: 2.0 GHz or faster
Hard Disk Space
Feature Disk space requirement
Database Engine and data files, Replication, and Full-Text Search 711 MB
Analysis Services and data files 345 MB
Reporting Services and Report Manager 304 MB
Integration Services 591 MB
Client Components (Other than SQL Server Books Online components and Integration Services tools. 1823 MB
SQL Server Books Online Components to view and manage help content1 375 KB
  Note that these minimum requirements do not account for the system resources that you will require to run the operating system.

I have to add at this point that I have a number of installations of SQL Server Denali CTP 1 on my laptop.  I use a 64 bit Toshiba Satellite L550-D that is triple booted to Windows 7, Windows 2008 and Windows 2008 R2. This laptop has an AMD Athlon II Dual Core M300 processor with 4GB of memory. In all instances I have installed Denali into a virtualised environment running Windows Server 2008 R2.  In my Windows 2008 partition Denali is installed within Hyper-V. In Windows 7, I have used Virtual PC 2007 with Denali installed within it. (purely for convenience so I do not have to reboot into the windows 2008 partition to play J). As with any CTP version of software, I always advise that you should install it within a virtualised instance so if any problems arise, it should not affect your host operating system or installed applications.

The software requirement can include the following operating systems: 
  • Windows 7; Windows Server 2008 R2; Windows Server 2008 Service Pack 2; Windows Vista Service Pack 2
  • Microsoft Internet Explorer 7 is also required

In my excitement to perform the installation a message appears that informs you that you have to download the following to files:

Windows6.0-KB948465-X86 which can be downloaded here 


Windows6.0-KB956250-x86 which can be downloaded here

What I did find is that upon installing these updates it took a couple of reboots before the installation could be performed.
There is a better way that can help you to avoid strife. When you start the setup the  SQL Server Installation Centre is presented.

SQL Server Installation Center













Use the System Configuration Checker (underlined) to confirm whether you have the hardware and software available to perform a successful installation of SQL Server, By clicking on the System Configuration Checker link. This will return the following report.

Setup Support Rules
















You can click on the view detailed report link to provide more information.

Installation Report





So with that in mind you can quickly check if your machine has the capabilities to run SQL Server Denali CTP 1 before you install it.