Internals of Database Snapshot – Part 3: Snapshot and Mirroring

In my earlier posts, we have seen how database snapshots work, and how the Buffer Pool is used when we query Snapshot Databases. In this post, we will see how Database Snapshots work, when they are created against Mirrored Databases. Let us assume we have a mirroring setup, as described in the below image. SQLServer1…

3

Internals of Database Snapshot – Part 2: Snapshot and the Buffer Pool

In my earlier post, we have seen what Database Snapshots are, and how the Database Snapshots are maintained by the SQL Server Database Engine. In this post we will see how the data and index pages, belonging to the Snapshot, are managed in the Buffer Pool. Before we start drilling down further, let me take…

0

Internals of Database Snapshot

In this post, we will explore the internals of Database Snapshot. Most of this information is already available in the Internet, in the posts authored by the SQL Server Development Team and the CSS Escalation Team; however, through this post we will attempt to consolidate all of these information for the benefit of everybody. All…

3

Advanced Performance Tuning – 4 :: Designing for better performance contd…

Few months back, I was working with one of my customers, who was engaged by his client to design a Survey Module. Nothing very fancy about the module, but the kind of reports that were to be delivered made it really tricky. Let me explain the requirements first: When customers click on a Survey Link,…

1

Advanced Performance Tuning – 3 :: Designing for better performance

If you have read my earlier post, you might be saying “Heck! This guy loves to post questions without providing proper answers!” Believe me, that is not my intention. My intention here is to help you understand common mistakes that people make, so that you can avoid them in your projects. The biggest challenge for…

0

Advanced Performance Tuning – 2 :: Which side of the operator

If you have read my earlier blog post on the Importance of data-types, you might be wondering, “What the heck is going on here?” I had already written in that post the reason behind the slow performance – the EmpCountry column in the Employee table is CHAR(2) which cannot be directly compared with NCHAR(2); hence,…

2

Transaction Log Backup Size in Bulk Logged Recovery Model

Assume that I have a database in Bulk Logged Recovery Model, and I perform a bulk operation that is minimally logged. Now, if I take a Log Backup, should not my Log Backup File Size be smaller than if I had performed the same operation in Full Recovery Model? I have seen many people confused…

4

Advanced Performance Tuning – 1 :: Importance of data-types

Why did we develop DBMS systems? Not just for storing data – but also to be able to search for and retrieve stored data, and we define what our search criteria should be. This was probably true a couple of decades back, but we have come a long way now. With the huge advancement of…

5

INF: How to re-setup Database Mirroring In SQL Server

One of my friends was asking this to me offline the other day: "I have Database in SQL Server, which is both Mirrored as well as Log Shipped. Log backups happen every 15 minutes; Mirroring happens in Synchronous mode and does not involve a witness. I want to break Mirroring (Remove Mirroring) and then want…

4