Monthly Archives: November 2019

SQL 2019 – Database Snapshot for In-Memory OLTP table

By | November 25, 2019

Traditionally Database snapshots have been used mainly to get Database mirroring secondary’s to act like Readable secondary. As you might be aware in mirroring etc. the databases are restored with no recovery. Since the transaction log file isn’t in a consistent state the database engine prevents users from querying them. However in the interest if… Read More »

Backup and restore of encryption keys and restoring

By | November 19, 2019

USE master; /************************************************************* CREATE YOUR MASTER KEY AND YOUR CERTIFICATE FOR TDE AND ALL OTHER TYPES OF ENCRYPTION *************************************************************/ OPEN MASTER KEY DECRYPTION BY PASSWORD = ‘Isthis@securePa$$word?’; BACKUP MASTER KEY TO FILE = ‘c:\work\exportedmasterkey’ ENCRYPTION BY PASSWORD = ‘abcd@1234’; GO BACKUP CERTIFICATE MyServerCert TO FILE = ‘c:\work\MyServerCert’ WITH PRIVATE KEY ( FILE = ‘c:\work\MyServerCertKey’ ,ENCRYPTION… Read More »

SQL 2019- Max DOP and Memory Configuration

By | November 17, 2019

Probably the most useless recommendation and as far as I am concerned not a feature. Why? If you are a DBA you know that DOP and Memory limits are fine-tuned based on the workload and system details. Things like concurrency OLTP vs OLAP, usage of in memory vs traditional tables Buffer pool extensions, number of… Read More »

SQL 2019- Optimize for sequential key

By | November 14, 2019

Last page contention is one of the textbook examples for latch contention. This frequently occurs on tables that are narrow and have high inserts happening against a sequential primary key column such as an identity column. Simply put on tables that have high concurrency you might have multiple users inserting data and generating some kind… Read More »

SQL 2019 – Custom Capture of Query Store stats

By | November 13, 2019

Query store is a feature of SQL server that tracks and captures information about queries. Database administrators will find query store useful in trouble shooting performance issues. Most database scenarios query store is perfectly fine under default configuration. However every once in a while a DBA might want to specifically crack metrics where the default… Read More »

SQL 2019- Scalar UDF inlining

By | November 12, 2019

Scalar UDF are notorious for their performance issues. The most common reason they cause issues is due the fact that the logic is applied on each row. So queries which use Scalar UDF for a large number of rows often face significant execution times due to the context switch with each row. There are other… Read More »

SQL 2019- Licensing

By | November 11, 2019

In this post I will try to explain SQL 2019 licensing in the simplest way possible. Do you need to worry about SQL Express, Web or Developer edition? No not really, we are only exploring production workloads, and none of the editions above are used in true production workloads. Besides they are practically free (even… Read More »

SQL 2019 – Worker Migration

By | November 8, 2019

Worker migration in SQL 2019 is the process by which workers that are bound to a scheduler can be unbound and run on another scheduler in order to complete long running transactions sooner. Once again I find the example of a car wash very handy here. Assume you have a query (car) and a team… Read More »

SQL 2019 – Indirect Checkpoint

By | November 7, 2019

Checkpoint in SQL server is the process by which dirt pages are written to disk. However it had a flaw that cause issues and the solution of which is indirect checkpoint. In the beginning we had automatic checkpoints. Here we assume a recover interval of 60 secs. Then in a very crude explanation we measure… Read More »

Accelerated database recovery – And how it’s like a car wash

By | November 6, 2019

    Accelerated Database Recovery is a feature that DBAs will find very useful. Dba’s are often stuck in a situation where the transaction log file cannot be truncated because of a long running query or the database recovery takes longer than usual after shut down and restart. In such scenarios Accelerated database recovery is… Read More »