JSON vs CLR UDT – performance comparison

Ability to create custom user defined types in CLR and use them in SQL Server is introduced in SQL Server 2005. In SQL Server 2016 is added JSON support that might be alternative for storing complex objects. Since JSON is stored as NVARCHAR and CLR is a type, it is questionable what would be better… Read more

In-Memory OLTP Indexes – Part 2: Performance Troubleshooting Guide.

Introduction In the previous blog post In-Memory OLTP Indexes – Part 1: Recommendations, we gave you an update on the latest features of In-Memory OLTP technology. We also summarized the key characteristics of memory-optimized indexes and shared some guidelines and recommendations on how to best choose and configure an index for your memory-optimized table. At… Read more

JSON parsing is faster than Spatial equivalent

One of the most common assumption when people talk about JSON in SQL Server is that it is slow because it is placed in “plain text” and there is no native type. Instead of the assumption it is better to experiment and compare performance of JSON with some real native type. In this post, I… Read more

JSON parsing 10x faster than XML parsing

Usually, when people talk about the performance of JSON in SQL Server, they are starting with “JSON is not actually a native type, it is just a plain text” and imply that it is probably too slow. It is true that JSON is stored as NVARCHAR and that there is no special type like for… Read more

Azure SQL Database: Ingesting 1.4 million sustained rows per second with In-Memory OLTP & Columnstore Index

As Internet of Things (IoT) devices and sensors are becoming more ubiquitous in consumer, business and industrial landscapes, they introduce a unique challenge in terms of the volume of data they produce, and the velocity with which they produce it. The challenge is to ingest and analyze this data at the speed at which it… Read more

In-Memory OLTP Indexes – Part 1: Recommendations.

In-Memory OLTP Indexes In-Memory OLTP technology, available in Azure SQL Database and SQL Server, can significantly help you in improving the performance of applications that require high throughput and low latency online transaction processing, high volume concurrent data ingestion (Internet of Things – IoT), high volume data load and transformation (Extract Transform Load – ETL)… Read more

In-Memory OLTP Updated Overview and Case Studies

We just published updated slide decks about In-Memory OLTP. In-Memory OLTP overview: this is an overview of the technology and details what’s new in SQL Server 2016/2017 and Azure SQL Database In-Memory OLTP case studies: this discusses when you and do not want to use In-Memory OLTP, as well as a number of application patterns… Read more

Demo: Identify and fix plan change regression in SQL Server 2017 RC1

Plan change regression happens when SQL Database changes a plan for some T-SQL query, and the new plan has the worse performance than the previous one. SQL Server 2017 has Automatic Tuning feature that enables you to easily find plan change regressions and fix them. In this post you will see the demo script that you… Read more

Monitoring automatic tuning actions using XEvents

SQL Server 2017 can automatically tune your queries by identifying and fixing SQL plan change regressions. SQL Server tracks last known good plans for each query, and if the plan for the query changes, last know good plan will be used if performance of the new plan is worse than the performance of the last… Read more

“What are you waiting for?” – Introducing wait stats support in Query Store

Troubleshooting waits previously. Nobody likes to wait. SQL database is multithreaded system that can handle thousands of queries executed simultaneously. Since queries that are executed in parallel compete for the same resources (tables, memory, etc) they might need to wait for the resources to be available to proceed with execution. These cumulative waits can be… Read more