Book Image

SQL Server 2017 Developer's Guide

Book Image

SQL Server 2017 Developer's Guide

Overview of this book

Microsoft SQL Server 2017 is a milestone in Microsoft's data platform timeline, as it brings in the power of R and Python for machine learning and containerization-based deployment on Windows and Linux. This book prepares you for advanced topics by starting with a quick introduction to SQL Server 2017's new features. Then, it introduces you to enhancements in the Transact-SQL language and new database engine capabilities before switching to a different technology: JSON support. You will take a look at the security enhancements and temporal tables. Furthermore, the book focuses on implementing advanced topics, including Query Store, columnstore indexes, and In-Memory OLTP. Toward the end of the book, you'll be introduced to R and how to use the R language with Transact-SQL for data exploration and analysis. You'll also learn to integrate Python code into SQL Server and graph database implementations as well as the deployment options on Linux and SQL Server in containers for development and testing. By the end of this book, you will be armed to design efficient, high-performance database applications without any hassle.
Table of Contents (25 chapters)
Title Page
Copyright and Credits
Dedication
Packt Upsell
Contributors
Preface
Free Chapter
1
Introduction to SQL Server 2017
Index

Clustered columnstore indexes


In the last sections of this chapter, you will learn how to manage a CCI. Besides optimizing query performance, you will also learn how to add a regular B-tree nonclustered index (NCI) to a CCI and use it instead of the primary key or unique constraints. When creating the NCCI in the previous sections, we didn't use LZ77 or archive compression. You will use it with a CCI in this section. Altogether, you will learn how to do the following:

  • Create clustered columnstore indexes
  • Use archive compression
  • Add B-tree NCI to a CCI
  • Use B-tree NCI for a constraint
  • Update data in a CCI

Compression and query performance

Let's start by dropping both indexes from the demo fact table, the NCCI and the CI, to make a heap again:

USE WideWorldImportersDW; 
-- Drop the NCCI 
DROP INDEX NCCI_FactTest 
  ON dbo.FactTest; 
-- Drop the CI 
DROP INDEX CL_FactTest_DateKey 
  ON dbo.FactTest; 
GO 

Now let's create the CCI:

CREATE CLUSTERED COLUMNSTORE INDEX CCI_FactTest 
  ON dbo.FactTest; 
GO...