Temp table Owner

Recently I came across a post on LinkedIn which required identifying the user who created a temp table. This is an interesting use case and thought I’d write a query of my own. The below script identifies currently logged in users who are executing queries and anytime tables that they might have created. I figured… Read More »

SQL 2019 – Christmasql

Early November I had posted I would be conducting a series of sessions on MS SQL server. The response was really great and while I intended to do a classroom session the interest was primarily for online delivery. So I will be arranging the first half of it this in the coming 10 days. Here… Read More »

SQL 2019 – Database Snapshot for In-Memory OLTP table

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

  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’… Read More »

SQL 2019- Max DOP and Memory Configuration

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

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

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

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 – Worker Migration

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

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 »