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

Announcing general availability of Native Scoring using PREDICT function in Azure SQL Database

Today we are announcing the general availability of the native PREDICT Transact-SQL function in Azure SQL Database. The PREDICT function allows you to perform scoring in real-time using certain RevoScaleR or revoscalepy models in a SQL query without invoking the R or Python runtime. The PREDICT function support was added in SQL Server 2017. It is… Read more

Default compatibility level 140 for Azure SQL databases

As of this writing, the default compatibility level for new databases created in Azure SQL Database is 130. Very soon, we’ll be changing the Azure SQL Database default compatibility level for newly created databases to 140. The alignment of SQL versions to default compatibility levels are as follows: 100: in SQL Server 2008 and Azure… Read more

Public Preview of Compatibility Level 140 for Azure SQL Database

Today we are announcing the official public preview of compatibility level 140 in Azure SQL Database. Compatibility level 140 enables the following query optimizer changes: A trivial plan referencing Columnstore indexes will be discarded in favor of a plan that is eligible for batch mode execution. The sp_execute_external_script UDX operator is eligible for batch mode… 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