Infrastructure at your Service

All posts by David Barbarin

David Barbarin
Senior Consultant & Microsoft Technology Leader

David Barbarin has more than ten years of experience in Microsoft solutions. He is specialized in SQL Server technologies and associated topics such as installation, migration, security audits, troubleshooting of performance issues, or high availability architectures etc. Furthermore, he has many years of experience in .NET development, SSIS packages deployment, and database design in several sectors like retail, health sector, and other industries. David Barbarin is SQL Server MVP (since 2010), Microsoft Certified Master (MCM) for SQL Server, and Microsoft Certified Trainer (MCT). He is also ITIL Foundation V3 certified. He holds an BTS in electronic from France and has a degree in computer sciences from CNAM in Lyon. His branch-related experience covers Public Sector, Financial Services / Banking, Automotive, Health Sector, IT, Watch Industry, etc.
David Barbarin

Tempdb enhancements with SQL Server 2014

By | Application integration & Middleware | No Comments

SQL Server 2014 is definitively designed for performance and I will try to demonstrate it during this blog post. I like to talk about hidden performance features because generally it does not require any changes for applications unlike in-memory tables for instance (aka hekaton tables). Since SQL Server 2005 version some improvements have been made for tempdb. Tempdb caching is one of them and allows to reduce the page allocation contention. Basically to create a…

 
Read More
David Barbarin

SQL Server 2014 : New incremental statistics

By | Application integration & Middleware | One Comment

Do you use partitioning with SQL Server? If yes this post is for you because there are good news about partitioning with SQL Server 2014. I remember an old job with a healthcare customer who we decided to implement a partitioning strategy for a big transaction archive table for medical records. We used SQL Server 2005 and we already faced to some challenges like statistics updates. Database administrators who use partitioning with version older than…

 
Read More
David Barbarin

SQL Server 2014: SELECT INTO operators can run in parallel

By | Application integration & Middleware | No Comments

A couple of weeks ago, I had to provide some best practices in term of architecture for a “heavy writes” environment that consists in importing data from different sources into SQL Server tables. At the customer place, I was asked about interesting new SQL Server features that could be used to increase the performance speed of the data import process. Indeed, SQL Server 2014 provides an interesting enhancement of SELECT INTO statement that is often…

 
Read More
David Barbarin

SQL Server 2014: In-Memory tables, Bw-Tree, and storage

By | Database management | No Comments

SQL Server 2014 introduces hash indexes with in-memory optimized tables. I described some of their aspects in a previous blog post.  These indexes are very efficient with lookup search operations but have some limitations with operations like range scans, inequality predicates or scan order operations. These limitations are linked to hash index design that stores rows in the index in a random order. Fortunately, nonclustered indexes for in-memory optimized tables (aka range indexes or Bw-Tree)…

 
Read More
David Barbarin

Transparent data encryption, key management and backup strategies

By | Database management | 7 Comments

Transparent Data Encryption requires the creation of a database key encryption. The database key is a part of the hierarchy of SQL Server encryption tree with at the top of the tree the DPAPI. Then if we traverse the tree from the top to bottom we can find the service master key, the database master key, the server certificate or the asymmetric key and finally the database encryption key (AKA the DEK). In this hierarchy…

 
Read More
David Barbarin

SQL Server 2014: Buffer pool extension – an interesting new feature

By | Database management | One Comment

Buffer pool extension (aka BPE) is an interesting feature of SQL Server 2014. Database administrators already know that memory is one of the key assets available for SQL Server. This is especially true for buffer pool memory, which plays an important role in storing data page and reducing the I/O demand. Nowadays, even if the memory has become cheaper, we are often facing limitations such as mid-size hardware configurations and increasing memory. All this can…

 
Read More
David Barbarin

SQL Server 2014: Deleting files of a hekaton table

By | Database management | No Comments

A recurrent question I have often heard about Hekaton objects is the following: Is an accidental deletion of the compilation files of a hekaton table on the file system irreversible and could this compromise the execution of SQL Server? To check the SQL Server behaviour in such situation, we can perform the following test with an in-memory optimized table: CREATE TABLE [dbo].[StorageTestTable] (        [c1] [int] NOT NULL,        [c2] [char](100) COLLATE Latin1_General_100_BIN2 NOT NULL,…

 
Read More
David Barbarin

SQL Server 2014 : SELECT ALL USERS SECURABLES & DB admins

By | Database management | No Comments

Microsoft will introduce four new security permissions in SQL Server 2014. One of them called SELECT ALL USERS SECURABLES is the subject of this post.  As explained by Microsoft SQL Server 2014 will allow a database administrator to manage data without seeing sensitive data or personally identifiable information. We can achieve a greater compliance but we must take care what is said because we could be wrong about the terms “manage without seeing sensitive data”….

 
Read More
David Barbarin

SQL Server 2014: Hekaton memory optimized tables, hash indexes, and bucket counts

By | Application integration & Middleware | One Comment

For my first blog post at dbi services, I think it could be a good opportunity to begin by discussing around SQL Server 2014, Hekaton memory optimized tables, and hash indexes. When you create a memory optimized table you have to consider the number of buckets that you have to reserve for its associated hash index. It’s an important aspect of configuration because after creating your table, you cannot change the number of buckets without…

 
Read More