SQL Database Engine Blog
learn.microsoft.com/en-us/archive/blogs/sqlserverstorageengine
This is the blog of the engineering team managing and developing the Database Engine for SQL Server and Azure SQL Database
DatabasesPerformance / optimizationMicrosoft blogsMSDN archive
- Posts
- 388 from 17 May 2006 to 28 Mar 2019
- Posting
- archived, read-only
- Kind
- company blog
- Feed
- https://learn.microsoft.com/en-us/archive/blogs/sqlserverstorageengine/feed.xml
2019 12
- Our new Azure SQL Database blog site is live
- Identify log write limits on Azure SQL Managed Instance using QPI library
- Running Azure CosmosDB queries from SQL Server using ODBC driver
- Monitor local storage usage on General Purpose Azure SQL Managed Instance
- Sending resource alerts on Managed Instance using db_mail
- Analyzing wait statistics on Managed Instance
- Reduced recompilations for workloads using temporary tables across multiple scopes
- Measuring file io performance on Managed Instance using QPI
- We are moving!
- Azure Stream Analytics now supports Azure SQL Database as reference data input
- Getting started with Azure SQL Managed Instance
- Recreate dropped database on Azure SQL Managed Instance
2018 64
- Azure SQL Managed Instance Business Critical tier is Generally Available
- Modify Azure SQL Database Managed Instance using Azure CLI
- Create Azure SQL Managed Instance using Azure CLI
- Diagnostic Data for Synchronous Statistics Update Blocking
- What Azure permissions are required to create SQL Managed Instance?
- Introducing Scalar UDF Inlining
- Meet the Azure SQL Database team at PASS Summit 2018
- SQL Server IaaS Extension Query Service for SQL Server on Azure VM
- Announcing Public Preview of Accelerated Database Recovery
- September 2018 Leaderboard of Database Systems contributors on MSDN
- Analysing inventory of Managed Instances using T-SQL
- August 2018 Leaderboard of Database Systems contributors on MSDN
- Storage Configuration Guidelines for SQL Server on Azure VM
- Introducing Batch Mode on Rowstore
- The easiest way to create Azure VM that can access your Azure SQL Managed Instance
- Persisting job history in Azure SQL Managed Instance
- Meet the Azure SQL Database team at Microsoft Ignite Conference
- What is built-in intelligence in Azure SQL Database?
- Working with Azure SQL Managed Instance using Azure CLI
- Sending emails in Azure SQL Managed Instance
- Create linked server to readable secondary replica in Managed Instance Business Critical service tier
- Reaching Azure disk storage limit on General Purpose Azure SQL Database Managed Instance
- Database ownership chaining in Azure SQL Managed Instance
- July 2018 Leaderboard of Database Systems contributors on MSDN
- Pearl Abyss: Massive Scale using Azure SQL Database
- Approximate Count Distinct enters Public Preview in Azure SQL Database
- Public Preview of Row Mode Memory Grant Feedback in Azure SQL Database
- Public Preview of Table Variable Deferred Compilation in Azure SQL Database
- Validate your Azure network environment for SQL Managed Instance
- Using custom types as arrays in T-SQL
- June 2018 Leaderboard of Database Systems contributors on MSDN
- Deploy Azure SQL Managed Instance network environment using ARM
- Point-in-time restore of a database on Azure SQL Managed Instance using AzureRm.Sql PowerShell library
- Quick-start script: Create Azure SQL Managed Instance using PowerShell library
- May 2018 Leaderboard of Database Systems contributors on MSDN
- Quick-start script: Setup Azure network environment for Azure SQL Managed Instance
- Cross-instance point-in-time restore in Azure SQL Database Managed Instance
- Clustered Columnstore Index: Massively Parallel Trickle Insert
- Create database on Azure SQL Managed Instance using Azure.Rm PowerShell library
- Change size of Azure SQL Managed Instance using PowerShell
- Updating Azure SQL Managed Instance properties using ARM templates
- April 2018 Leaderboard of Database Systems contributors on MSDN
- Creating Azure SQL Managed Instance using ARM templates
- Meet the Azure SQL Database team at Microsoft Build Conference
- How Azure SQL Database makes database management easier?
- Azure SQL Database – scalability
- Azure SQL Database – the database engine that cannot die
- Calling Http endpoints in T-SQL using CURL extension
- March 2018 Leaderboard of Database Systems contributors on MSDN
- Monitoring performance of natively compiled stored procedures - database-scoped configuration options
- How to configure network for Azure SQL Managed Instance
- Demo - Azure SQL Database Managed Instance in action
- How to configure tempdb in Azure SQL Managed Instance(preview)
- What is Azure SQL Database Managed Instance?
- February 2018 Leaderboard of Database Systems contributors on MSDN
- Migrating to Azure SQL Database with Zero Downtime for Read-Only Workloads
- New Windows container images of SQL Server 2017 on Windows Server 1709!
- January 2018 Leaderboard of Database Systems contributors on MSDN
- JSON in SQL Server - Use cases
- Simplify REST API development for modern Single-page apps with SQL Server
- Simplify data access using de-normalized models
- Working with Azure IoT data in Azure SQL Database
- Compatibility Level 140 is now the default for Azure SQL Database
- Database scoped optimizing for ad hoc workloads
2017 44
- Injecting JSON objects into existing JSON text with JSON_MODIFY function
- Transitive closure clustering with CLR and JSON
- Storing JSON documents in SQL Database
- Building SQL REST API back-end for Angular apps
- ASP.NET Session State with SQL Server In-Memory OLTP
- JSON vs CLR UDT - performance comparison
- In-Memory OLTP Indexes - Part 2: Performance Troubleshooting Guide.
- JSON parsing is faster than Spatial equivalent
- JSON parsing 10x faster than XML parsing
- Azure SQL Database: Ingesting 1.4 million sustained rows per second with In-Memory OLTP & Columnstore Index
- In-Memory OLTP Indexes - Part 1: Recommendations.
- In-Memory OLTP Updated Overview and Case Studies
- Sentiment analysis with Python in SQL Server Machine Learning Services
- Configure Azure Storage for SQL Database backups
- Native database backup in Azure SQL Managed Instance
- SQL Server 2017 available for download
- Announcing general availability of Native Scoring using PREDICT function in Azure SQL Database
- Default compatibility level 140 for Azure SQL databases
- Demo: Identify and fix plan change regression in SQL Server 2017 RC1
- Monitoring automatic tuning actions using XEvents
- Public Preview of Compatibility Level 140 for Azure SQL Database
- “What are you waiting for?” – Introducing wait stats support in Query Store
- Azure SQL databases in logical servers, elastic pools, and managed instances
- What is plan regression in SQL Server?
- Use WITH clause in OPENJSON to improve parsing performance
- Automatic plan correction in SQL Server 2017
- Automatic index management in Azure SQL database
- "You Shall Not Regress!!!" - How SQL Server 2017 prevents plan regressions?
- How to find query plan choice regressions with SQL Server 2017 CTP2
- Introducing Interleaved Execution for Multi-Statement Table Valued Functions
- Introducing Batch Mode Adaptive Joins
- Comparing performance of data access libraries using StackExchange/Dapper benchmark
- Loading files from Azure Blob Storage into Azure SQL Database
- SQL Server 2016 Developer Edition in Windows Containers
- Parsing 4GB JSON with SQL Server
- Import and analyze IIS Log files using SQL Server
- Extreme 25x compression of JSON data using CLUSTERED COLUMNSTORE INDEXES
- Exporting tables from SQL Server in json line-delimited format using BCP.exe
- JSON data in clustered column store indexes
- Columnstore Index Performance: SQL Server 2016 – Multiple Aggregates
- SQL Server R Services - Why we built it
- Columnstore Index Performance: Batch Mode Execution
- Columnstore Index Performance: Rowgroup Elimination
- Columnstore Index Perfomance: Column Elimination
2016 65
- Transaction Commit latency acceleration using Storage Class Memory in Windows Server 2016/SQL Server 2016 SP1
- Introducing Batch Mode Adaptive Memory Grant Feedback
- Columnstore Index: Standard and Express editions with SQL Server 2016 SP1
- In-Memory OLTP in Standard and Express editions, with SQL Server 2016 SP1
- CREATE OR ALTER - another great language enhancement in SQL Server 2016 SP1
- Columnstore Index: Why do I need to create clustered columnstore Index on In-Memory OLTP- tables for Analytics?
- In-Memory OLTP: Is your database just in memory or actually optimized for memory?
- Columnstore Index: Which Columnstore Index is right for my workload?
- Columnstore index: Why do we refer to it as In-Memory Analytics?
- SQL Server 2016 Express Edition in Windows containers
- Columnstore Index- Should I partition my columnstore Index?
- Columnstore Index: In-Memory Analytics (i.e. columnstore index) Videos from Ignite 2016
- In-Memory OLTP Videos: What it is and When/How to use it
- SQL Server 2016 - It Just Runs Faster: Always On Availability Groups Turbocharged
- Implementing Product Catalogs in SQL Server and Azure SQL database
- JSON is Generally available in Azure Sql Database!
- Columnstore Index: Parallel load into clustered columnstore index from staging table
- Columnstore Index: Differences between Clustered/Nonclustered Columnstore Index
- Columnstore Index: Differences between Columnstore Index vs BTree index
- Increased Memory Size for In-Memory OLTP in SQL Server 2016
- IoT Smart Grid code sample
- Announcing availability of SQL Server 2014 Express Docker image
- IoT code sample - loading messages from Event Hub into Azure SQL Database
- Appending JSON arrays using JSON_MODIFY function
- Handling inheritance with JSON
- Encapsulate JSON parsing with inline table value functions
- In-Memory OLTP Performance Demo Available for Download
- Query Optimizer Additions in SQL Server 2016
- Improved Query Performance with Compatibility Level 130 in Azure SQL Database
- Database Scoped Configuration
- Using DB Compatibility Level 130 with Old CE in SQL Server 2016
- Increased nonclustered index key size with SQL Server 2016
- JSON is available in Azure SQL Database
- A Technical Case Study: High Speed IoT Data Ingestion Using In-Memory OLTP in Azure
- What's new for In-Memory OLTP in SQL Server 2016 since CTP3
- Generate stored procedure that imports array of JSON object in table
- Loading JSON files from Azure File Storage
- Moving data from relational to JSON columns and vice versa
- Loading line-delimited JSON files in SQL Server 2016
- SQL Server in Windows Containers
- Improving temp table and table variable performance using memory optimization
- JSON support in SQL Server - Details, tips and tricks
- Columnstore Index: A short video showcasing enhancements in SQL Server 2016
- Real-Time Operational Analytics: A short video on the value proposition in SQL Server 2016
- Columnstore Index: How does SQL Server delivers Industry leading performance for Analytic Queries?
- Columnstore Index: What is new in SQL Server 2016?
- Columnstore Index: Overview and Value Proposition
- Columnstore Index Merge Policy for REORGANIZE
- Columnstore Index Defragmentation using REORGANIZE Command
- Real-Time Operational Analytics: Memory-Optimized Tables and Columnstore Index
- Real-Time Operational Analytics: Compression Delay option with NCCI and the performance
- Real-Time Operational Analytics: Compression Delay Option for Nonclustered Columnstore Index (NCCI)
- Real-Time Operational Analytics: Filtered nonclustered columnstore index (NCCI)
- Real-Time Operational Analytics: DML operations and nonclustered columnstore index (NCCI) in SQL Server 2016
- Upsert JSON documents in SQL Server 2016
- SQL Server 2016 - Making DBCC CHECKDB Faster
- Real-Time Operational Analytics: Simple example using nonclustered clustered columnstore index (NCCI) in SQL Server 2016
- Real-Time Operational Analytics - Overview nonclustered columnstore index (NCCI)
- Clustered columnstore Index: Data Load Optimization - Parallel Bulk Import
- Columnstore Index: Scan and parallelism
- JSON parsing - performance comparison
- Returning spatial data in GeoJSON format - Part 2
- Clustered Columnstore Index: Data Load Optimizations - Minimal Logging
- Loading GeoJSON data into SQL Server
- Returning spatial data in GeoJSON format - Part 1
2015 31
- Indexing data in JSON product catalogs
- Designing Product Catalogs in SQL Server using JSON
- WITHOUT_ARRAY_WRAPPER - New important change in FOR JSON
- Columnstore Index: Real-Time Operational Analytics using In-Memory Technology
- CHECKSUM and BINARY_CHECKSUM might not return unique values for different inputs
- Create relational view over JSON text
- Columnstore Index: Speeding up analytics in SQL Server 2016
- Built-in functions for compression/decompression in SQL Server 2016
- AdventureWorksCTP3 JSON Sample
- Using non-relational models in SQL Server
- De-normalize database schema using JSON
- Query JSON data
- Log analysis with SQL Server
- Storing JSON in SQL Server
- In-Memory OLTP - what's new in SQL2016 CTP3
- FOR JSON performance - simple experiment
- Generate serie of numbers in SQL Server 2016 using OPENJSON
- DROP IF EXISTS - new thing in SQL Server 2016
- OPENJSON - one of best ways to select rows by list of ids
- Samples for SQL Server 2016 CTP3
- Returning child rows formatted as JSON in SQL Server queries
- Importing JSON files into SQL Server using OPENROWSET (BULK)
- Querying JSON documents in Sql Server 2016 and DocumentDB
- Parsing GeoJSON format in Sql Server 2016
- Indexing JSON documents in Sql Server 2016
- OPENJSON - The easiest way to import JSON text into table
- Loading non-relational data formatted as JSON text
- Clustered Columnstore Index: Enforcing uniqueness constraint in table
- Passing arrays to T-SQL procedures as JSON
- Combining relational and NoSQL concepts in SQL Server
- FOR JSON clause in SQL Server 2016 CTP2
2014 4
2012 1
2011 17
- AlwaysOn: I just enabled Readable Secondary but my query is blocked?
- AlwaysOn: Making latest statistics available on Readable Secondary, Read-Only database and Database Snapshot
- AlwaysOn: Challenges with statistics on ReadOnly database, Database Snapshot and Secondary Replica
- AlwaysOn: Impact of mapping reporting workload on Readable Secondary to Snapshot Isolation
- AlwaysOn: Minimizing blocking of REDO thread when running reporting workload on Secondary Replica
- AlwaysOn: Impact on the primary workload when you run reporting workload on the secondary replica
- AlwaysOn: Readable Secondary and data latency
- AlwaysOn: Why there are two options to enable a secondary replica for read workload?
- AlwaysOn: Setting up Readable Seconary Replica
- AlwaysOn: Value Proposition of Readable Secondary
- SQL Server Team is hiring
- Data Compression and Fill Factor
- Concurrency Series: My application was running fine yesterday but why is it blocking today?
- Concurrency Series: Minimizing blocking between updaters
- Concurrency Series: Why do I get blocked when no one has locked the row(s) being queried?
- Concurrency Series: Why do I get blocking when I use Read Uncommitted isolation level or use NOLOCK hint?
- Concurrency Series: Basics of Transaction Isolation Levels
2010 5
- Concurrency Series: Common Concurrency Issues with Applications
- Minimal logging and MERGE statement
- Backup compression and Virtual Device Interface (VDI)
- Performance improvement by orders of magnitude when merging partitions in SQL Server 2008R2
- Improvement in minimizing lockhash key collisions in SQL Server 2008R2 and its impact on concurrency
2009 11
- Changes to sp_estimate_data_compression_savings stored procedure in SQL2008R2
- A Unicode Compression example
- Unicode Compression in SQL Server 2008R2
- Customer feedback on Data Compression
- Update on data compression performance/space-savings and links to published white papers
- TempDB Monitoring and Troubleshooting: Out of Space
- TempDB Monitoring and Troubleshooting: DDL Bottleneck
- TempDB Monitoring and Troubleshooting: Allocation Bottleneck
- TempDB Monitoring and Troubleshooting: IO Bottleneck
- Managing TempDB in SQL Server: TempDB Configuration
- What is allocation bottleneck?
2008 25
- Managing TempDB in SQL Server: TempDB Basics (Version Store: Growth and removing stale row versions)
- Managing TempDB in SQL Server: TempDB Basics (Version Store: logical structure)
- Managing TempDB in SQL Server: TempDB Basics (Version Store: Simple Example)
- Managing TempDB in SQL Server: TempDB Basics (Version Store: Why do we need it?)
- Managing TempDB in SQL Server:TempDB Basics (cont..)
- Managing TempDB in SQL Server
- DML operations on a HEAP and compression
- Enabling compression on a HEAP
- New update on minimal logging for SQL Server 2008
- Does data compression lead to more fragmentation?
- Enabling FILESTREAM post SQL2008 Setup - a Known Issue in SQL Config Manager
- TempDB:: Table variable vs local temporary table
- Overhead of Row Versioning
- CHECKSUM and Tempdb
- Minimal Logging changes in SQL Server 2008 (part-3)
- Minimal Logging changes in SQL Server 2008 (part-2)
- Minimal Logging changes in SQL Server 2008
- FILESTREAM Configuration and Setup Changes in SQL Server 2008 February CTP
- Example: Index fragmentation with insert/updates, measuring it and fixing it
- Bulk Import Optimizations (Minimal Logging)
- What are the Bulk Import Optimizations?
- Why Bulk Import?
- Compression Strategies
- Details on page compression (page-dictionary)
- Details on PAGE compression (column-prefix)
2007 54
- Data Compression will be available in CTP-6
- Estimating the space savings with data compression
- Types of data compression in SQL Server 2008
- Why not use compressed disk files or disk volumes?
- When is too much success a bad thing?
- Fuzzy backups and RESTORE DATABASE WITH STOPAT
- Data compression techniques and trade offs
- Data Compression: Why Do we need it?
- ok - really the last blog post - Mondays, Mystic, and a Museum
- Splits and unions...
- TechEd session video available...
- What happens to non-clustered indexes when the table structure is changed?
- Database mirroring questions from TechEd: failovers and partner timeouts
- Katmai == SQL Server 2008 == available to start playing with!
- SQL Server's 'black-box' flight recorder
- White Paper: Reducing Database Size by Using Vardecimal Storage Format
- First TechEd of the year coming up!
- Would you like to join the Storage Engine PM team?
- Naked Tour of Australia
- Quick list of VLDB maintenance best practices
- What's the difference between database version and database compatibility level?
- How having too many filegroups can affect recovery time
- Can you mix-n-match backup devices?
- And an example corrupt 2000 database to play with
- How can you tell if an index is being used?
- Example corrupt database to play with and some backup/restore things to try
- How to avoid using shrink in SQL Server 2005?
- SP2 Maintenance Plan bugs fixed
- VLDB Maintenance - quick addendum
- VLDB Maintenance Practices and Problems?
- SSWUGtv interview with Paul and Kimberly
- How does your schema affect your shrink run-time?
- Where are all the whitepapers?
- Turn AUTO_SHRINK off!!
- Easy way to create a corrupt database for testing
- New whitepaper on Online Indexing Operations
- Can you INCLUDE columns of type TEXT, NTEXT, or IMAGE?
- How to create fake statistics for testing query plans
- More on Service Level Agreements...
- Oh no – my backup is corrupt too! Help!
- Using Visual Studio’s Code Model objects for code base understanding
- CHECKDB, User Groups and .NET Rocks!
- SQL Server 2005 Best Practices Analyzer CTP released
- TechEd interview video
- Wow - over 40 blogs from the SQL Product Team
- How to move databases using detach/attach functions?
- How long does *your* CHECKDB take?
- Three upcoming events in March to learn about HA/DR and DB Maintenance
- CHECKDB (Part 8): Can repair fix everything?
- CHECKDB (Part 7): How long will CHECKDB take to run?
- Fixing damaged pages using page restore or manual inserts
- Read-Only filegroups and Locking
- Data row before and after vardecimal storage format
- Boundary conditions for enabling vardecimal storage format
2006 55
- Vardecimal Storage Format and its implications on Backup/Recovery
- More undocumented fun: DBCC IND, DBCC PAGE, and off-row columns
- Enabling vardecimal storage format
- How to give feedback on SQL Server 2005?
- Estimating the space savings with vardecimal storage format
- Reducing the Size of your Database in SQL Server 2005/SP2
- SQL Server 2005 SP2 CTP2 released
- When can allocation order scans be used?
- CHECKDB (Part 6): Consistency checking options for a VLDB
- SQLIOSim available for download
- Skipping rows in the datafile that contains NULL for a column that does not allow NULLs
- What Master???
- CHECKDB (Part 5): What does CHECKDB really do? (part 4 of 4)
- Fragmentation (part 4): what are heaps?
- CHECKDB (Part 4): What does CHECKDB really do? (part 3 of 4)
- Don't try this at home kids... (data recovery using DBCC PAGE)
- Can't I ever get a guarantee?
- Scale-up technology
- CHECKDB (Part 3): What does CHECKDB really do? (2 of 4)
- Under the covers: GAM, SGAM, and PFS pages
- Checksum in SQL2005
- Why is the NULL bitmap in a record an optimization?
- Fragmentation (part 3): What are extents?
- Fixed the problem with images in blog posts..
- Under the covers: IAM chains and allocation units in SQL Server 2005
- Under the covers: IAM chains in SQL Server 2000
- Why are those IOs taking so long?
- How can you prove that hardware is the problem? Use stress to reduce stress...
- What makes Paul tick?
- Fun with execution context switching
- Two new white papers by SQL Server Storage Engine Team
- Why you should NOT optimize your backup strategy for backup speed
- CHECKDB (Part 2): What does CHECKDB really do? (1 of 4)
- Another disaster recovery 'advice' gem...
- Do you need to run CHECKDB because of SQL Server?
- The best part of TechEd was meeting people...
- Which part of 'REPAIR_ALLOW_DATA_LOSS' isn't clear?
- When should you rebuild the transaction log?
- Just why are you backing up your database?
- Data files: To Autogrow Or Not To Autogrow?
- Here's a good reason not to run SHRINKDATABASE...
- We're at TechEd - stop by and see us!
- How to use DBCC PAGE
- New SQL Express Starter Kit and Sample Apps available on MSDN
- CHECKDB (Part 1): How does CHECKDB get a consistent view of the database?
- Importing UNIX data file
- Common bad advice around disaster recovery
- Repair vs Restore Dilemma
- How to recreate the msdb database in SQL Server 2005?
- Are you coming to TechEd? We'd like to see you there!
- New MSDN forum on Disaster Recovery and Availability
- Troubleshooting deadlocks in SQL2005
- Bulk Importing data with OPENROWSET in SQL2005
- Range locks
- Lock Escalation in SQL2005