Linchi Shea

Checking out SQL Server via empirical data points
Updated: 3 days 1 hour ago

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)

Performance impact: diminishing marginal return on the degree of parallelism

Fri, 12/16/2011 - 10:24
In commenting on my previous post , Greg Linwood and GrumpyOldDBA raised questions about various implications of parallelism. In this post, I’ll look at the impact of different degrees of parallelism on the query performance. I’ll limit my examination...(read more)

Creating features for 1% of the users

Mon, 10/17/2011 - 14:50
While at PASS Summit 2011 in Seattle, I had a conversation with an attendee from one of the largest US companies. As expected and like any of the largest US companies, this company has multiple DBMS platforms. The conversation then turned to how SQL Server...(read more)

Is the SELECT permission checked in an UPDATE statement?

Mon, 10/17/2011 - 12:44
I was at PASS Summit 2011 in Seattle and had a chat with Jack Richins of Microsoft on the SQL Server audit feature after his presentation. A question came up with regards to whether the SELECT permission should be checked when an UPDATE statement is being...(read more)

Fully transparent table partitioning for OLTP

Mon, 10/17/2011 - 11:27
No, this is not something announced at PASS Summit 2011. But it’s something that has been on my wish list for a long time. Table partitioning is a great feature, and overwhelmingly, table partitioning is touted as a data warehousing feature for both sliding...(read more)