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