I walk through several potential causes for different plans and/or performance for the same database on two "identical" servers.
Tip: Finding views with (or without) a certain property
I discuss a handful of reasons "identical" queries might yield multiple plans, contributing to plan cache bloat.
Tip: Over 40 queries to find tables with or without a certain property
I show some tricks for getting row counts efficiently, and explain why an accurate row count for a large table is a pipe dream.
I repeat "Bad habits" advice from the past about using statement terminators and schema references to avoid debugging troubles.
I demonstrate an affordable approach to readable secondaries, without the need for Availability Groups and all the licensing costs involved with Enterprise Edition and Software Assurance.
I point out that an often-used connection setting, AttachDBFileName, may be the source of many wasted hours of debugging and troubleshooting.
In this tip, I show how to use dynamic SQL to drop and re-create all foreign keys.
I treat a common scenario: behavior differs between two SQL Server databases that may be the same version, but different compatibility levels.
Tip : What Effect Does Persisting a Computed Column Have in SQL Server?
I discuss the NOLOCK hint in SQL Server, and why you want to avoid slapping it onto every table mentioned in every query.
Tip : What Happens When a Computed Column is Persisted in SQL Server?
I discuss examples where people expect SQL Server to perform tasks that really should be performed outside the scope of the database.
Tip : Change All Computed Columns to Persisted in SQL Server
I discuss ten common cases of misplaced optimization.
Tip : SQL Server Video – Tricks to play on your DBA – 2
I explain why you should avoid helper functions, and join against the catalog views instead.
I provide four real-world examples where grouped concatenation allows you to avoid the monotony of cursors and while loops.
I take a closer look at some additional requirements for typical grouped concatenation queries in SQL Server.
Tip : SQL Server Video – Tricks to play on your DBA – 1
I use a T-SQL Tuesday theme to demonstrate a use case for the SQL_VARIANT data type that you may not have considered: Conditional ORDER BY.
I show the safest and most efficient ways to perform grouped concatenation in SQL Server.
Following a recent update, I take a first look at a new performance enhancement and trace flag (2453) aimed at improving cardinality estimates for table variables and table-valued parameters.
I look at some unexpected behavior with the CASE expression and some of its derivatives.
Tip : Connect to SQL Servers in another domain using Windows Authentication
Tip : Choosing Between SQL Server 2012 and SQL Server 2014
I take a closer look at the overhead of using Extended Events to track the creation of #temp tables.
I show how you can use Extended Events to track temp table creation and identify which session created which #temp table.
I describe the new SQL Server 2014 feature, Delayed Durability, and put it through its paces.
Tip : Get more info about failed logins using Extended Events
Tip : Enforce Database Naming Conventions Using DDL Triggers
Tip : Handle conversion between time zones in SQL Server – part 3
I perform some deeper testing on triggers, showing that INSTEAD OF triggers are worth a look.
Tip : Validate the contents of large dynamic SQL strings in SQL Server
I talk about SQL Server 2014 Standard Edition and a couple of little carrots that might make this upgrade more compelling than SQL Server 2012.
Tip : Handle conversion between time zones in SQL Server – part 2
Tip : Handle conversion between time zones in SQL Server – part 1
Tip : Avoid using NOLOCK on SQL Server UPDATE and DELETE statements
I revisit an old post and explores approaches to calculating the median across partitioned sets.
I follow up on a running totals post with an article describing different ways to achieve the same types of results for more complex grouping and aggregation.
I demonstrate how IDENT_CURRENT cannot be relied upon for reporting your new IDENTITY value, even under SERIALIZABLE.
I talk a little more about in-memory table-valued parameters, and explains why some scenarios you test may not demonstrate the power of this technology.
I explained how I justified purchasing a new Mac Pro, and show that it is very tough to order a comparable PC at similar price points.