Linchi Shea

Checking out SQL Server via empirical data points
Updated: 6 weeks 3 days ago

Clustering every SQL Server instance

Fri, 02/10/2012 - 20:32
You may disagree, but I believe it is a good practice to cluster all the SQL Server instances. That is, even when you plan to run a SQL Server instance on a single machine, you should install it in a single node cluster. The primary advantage is that...(read more)

Performance impact: the cost of NUMA remote memory access

Mon, 01/30/2012 - 16:17
These days if you get a new server-class machine to run SQL Server, you can almost be 100% sure that it’ll be running on NUMA hardware. The recent AMD Opteron and Intel Nehalem-based processors are all built on some form of NUMA architecture. The current...(read more)

No respect: NUMA affinity meets query parallelism

Fri, 01/27/2012 - 22:32
What happens when NUMA affinity meets query parallelism? It gets no respect! SQL Server allows you to affinitize a TCP port to a specific NUMA node or a group of NUMA nodes. Books Online has an article on How to: Map TCP/IP ports to NUMA Nodes . And this...(read more)

T-SQL stored procedure for finding/replacing strings in a text file. Really?

Thu, 01/26/2012 - 22:33
I know people have been doing all sorts of things with T-SQL, and I have absolutely no issue with people trying to push the limit of what T-SQL can do, or what you can use it to accomplish, especially when it’s for demonstration or pedagogical purposes,...(read more)

Performance impact: SQL2008 R2 audit and trace

Tue, 01/24/2012 - 20:29
We are told that SQL Server 2008 R2 Audit (and SQL Server 2008 Audit) has much less performance overhead than SQL Trace when we try to capture the same information. Knowing how SQL Server R2 Audit is implemented (i.e. on top of the extended events infrastructure),...(read more)

Performance impact: hyperthreading on Intel Westmere-EP processors (X5690)

Sat, 01/21/2012 - 23:41
Recently, I have been looking into the performance impact of enabling hyperthreading on various platforms with various SQL Server workloads. All the results I have shared so far are from a DL580 G7 with four Westmere-EX  (E7-4870) processors. Overall,...(read more)

Performance impact: not all is better with hyperthreading

Tue, 01/17/2012 - 15:57
In the comments to my previous post on the performance impact of enabling hyperthreading on reporting queries, Serguei Tarassov indicated that it might be interesting to try different reporting queries, and suggested a specific parameterized test query....(read more)

Performance impact: driving up context switches/sec

Wed, 01/11/2012 - 22:23
Too many context switches per second are considered bad for your database performance. But how many is too many has never been clear. With the core count of new servers going up rapidly, it becomes even less clear how we should evaluate this counter to...(read more)

Performance impact: hyperthreading for OLTP queries -- II

Wed, 01/11/2012 - 11:51
This is in part a response to a comment by Paul White ( @SQL_Kiwi ) to my previous post on the performance impact of enabling hyperthreading (HT) on OLTP queries , and in part due to my desire to capture a more complete set of test data for future investigation...(read more)

Elephant in the room: TPC-E

Fri, 01/06/2012 - 22:21
Over the past few months in several semi-formal occasions, I ran into folks from your well-known vendors (minus Microsoft). Some of the folks were from the vendors’ performance labs and were involved in conducting benchmark tests and publishing benchmark...(read more)

Performance impact: hyperthreading for OLTP queries

Thu, 01/05/2012 - 21:44
My previous post focuses on the performance impact of enabling hyperthreading (HT) on a machine with four Intel Westmere-EX processors on reporting queries. Let’s turn our attention to OLTP queries. To oversimplify it, reporting queries are generally...(read more)

Performance impact: hyperthreading for reporting queries

Wed, 01/04/2012 - 22:36
There are a lot of questions on hyperthreading, but not a lot of answers. There is no shortage of opinions, but very few are based on significant first hand experience or solid test data. We know that the hyperthreading technology in the older generations...(read more)

Evaluating server hardware: a sign of the times

Mon, 01/02/2012 - 22:02
For nearly ten years, I have had success in using a specifically modified version of the TPC-C benchmark for evaluating server hardware running SQL Server. Depending on your purpose, you can evaluate computer hardware in numerous ways with numerous benchmarks....(read more)

Where is SQL Server running in a cluster?

Tue, 12/27/2011 - 20:55
There are numerous ways to find where a SQL Server instance is running in a cluster. The most convenient tool was cluster.exe . Unfortunately, I have to say it was the most convenient tool, and no longer is because no single cluster.exe works with all...(read more)

Performance impact: a little business logic goes a long way

Thu, 12/22/2011 - 22:13
I’m running into this little performance tuning pattern enough number of times that it is worth a special mention. As it often happens, the app folks complain about a proc call being very slow, and I track it down to a specific line in the proc. The line...(read more)