<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://www2.sqlblog.com/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><title type="html">Linchi Shea</title><subtitle type="html">Checking out SQL Server via empirical data points</subtitle><id>http://www2.sqlblog.com/blogs/linchi_shea/atom.aspx</id><link rel="alternate" type="text/html" href="http://www2.sqlblog.com/blogs/linchi_shea/default.aspx" /><link rel="self" type="application/atom+xml" href="http://www2.sqlblog.com/blogs/linchi_shea/atom.aspx" /><generator uri="http://communityserver.org" version="2.1.61129.1">Community Server</generator><updated>2011-12-23T01:13:21Z</updated><entry><title>Clustering every SQL Server instance</title><link rel="alternate" type="text/html" href="http://www2.sqlblog.com/blogs/linchi_shea/archive/2012/02/10/clustering-every-sql-server-instance.aspx" /><id>http://www2.sqlblog.com/blogs/linchi_shea/archive/2012/02/10/clustering-every-sql-server-instance.aspx</id><published>2012-02-11T03:32:00Z</published><updated>2012-02-11T03:32:00Z</updated><content type="html">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 you only need a single standard SQL Server build instead of one for the stand alone and one for the clustered. This results in simplified configurations such as when you configure network aliases, Kerberos, and multiple instances. If you need to add...(&lt;a href="http://www2.sqlblog.com/blogs/linchi_shea/archive/2012/02/10/clustering-every-sql-server-instance.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://www2.sqlblog.com/aggbug.aspx?PostID=41692" width="1" height="1"&gt;</content><author><name>Linchi Shea</name><uri>http://www2.sqlblog.com/members/Linchi+Shea.aspx</uri></author><category term="Cluster" scheme="http://www2.sqlblog.com/blogs/linchi_shea/archive/tags/Cluster/default.aspx" /><category term="Network Aliases" scheme="http://www2.sqlblog.com/blogs/linchi_shea/archive/tags/Network+Aliases/default.aspx" /><category term="single-node cluster" scheme="http://www2.sqlblog.com/blogs/linchi_shea/archive/tags/single-node+cluster/default.aspx" /><category term="Kerberos" scheme="http://www2.sqlblog.com/blogs/linchi_shea/archive/tags/Kerberos/default.aspx" /><category term="Server location transparency" scheme="http://www2.sqlblog.com/blogs/linchi_shea/archive/tags/Server+location+transparency/default.aspx" /></entry><entry><title>Performance impact: the cost of NUMA remote memory access</title><link rel="alternate" type="text/html" href="http://www2.sqlblog.com/blogs/linchi_shea/archive/2012/01/30/performance-impact-the-cost-of-numa-remote-memory-access.aspx" /><id>http://www2.sqlblog.com/blogs/linchi_shea/archive/2012/01/30/performance-impact-the-cost-of-numa-remote-memory-access.aspx</id><published>2012-01-30T23:17:20Z</published><updated>2012-01-30T23:17:20Z</updated><content type="html">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 consensus is that as the number of processors grows, their shared memory bus can easily get congested and becomes a major impediment to scalability. NUMA hardware solves this scalability challenge by dividing the processors into groups, with each...(&lt;a href="http://www2.sqlblog.com/blogs/linchi_shea/archive/2012/01/30/performance-impact-the-cost-of-numa-remote-memory-access.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://www2.sqlblog.com/aggbug.aspx?PostID=41450" width="1" height="1"&gt;</content><author><name>Linchi Shea</name><uri>http://www2.sqlblog.com/members/Linchi+Shea.aspx</uri></author><category term="Performance" scheme="http://www2.sqlblog.com/blogs/linchi_shea/archive/tags/Performance/default.aspx" /><category term="Benchmark" scheme="http://www2.sqlblog.com/blogs/linchi_shea/archive/tags/Benchmark/default.aspx" /><category term="Memory speed" scheme="http://www2.sqlblog.com/blogs/linchi_shea/archive/tags/Memory+speed/default.aspx" /><category term="NUMA" scheme="http://www2.sqlblog.com/blogs/linchi_shea/archive/tags/NUMA/default.aspx" /><category term="NUMA affinity" scheme="http://www2.sqlblog.com/blogs/linchi_shea/archive/tags/NUMA+affinity/default.aspx" /><category term="Remote memory access" scheme="http://www2.sqlblog.com/blogs/linchi_shea/archive/tags/Remote+memory+access/default.aspx" /><category term="Local memory access" scheme="http://www2.sqlblog.com/blogs/linchi_shea/archive/tags/Local+memory+access/default.aspx" /></entry><entry><title>No respect: NUMA affinity meets query parallelism</title><link rel="alternate" type="text/html" href="http://www2.sqlblog.com/blogs/linchi_shea/archive/2012/01/28/no-respect-numa-affinity-meets-query-parallelism.aspx" /><id>http://www2.sqlblog.com/blogs/linchi_shea/archive/2012/01/28/no-respect-numa-affinity-meets-query-parallelism.aspx</id><published>2012-01-28T05:32:51Z</published><updated>2012-01-28T05:32:51Z</updated><content type="html">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 BOL article discusses various NUMA affinity scenarios. Recently, I have been playing with NUMA affinity on various servers with hardware NUMA, such as those with Intel X5690 and Intel E7-4870, running SQL Server 2008 R2 RTM (10.50.1600) and SQL Server...(&lt;a href="http://www2.sqlblog.com/blogs/linchi_shea/archive/2012/01/28/no-respect-numa-affinity-meets-query-parallelism.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://www2.sqlblog.com/aggbug.aspx?PostID=41396" width="1" height="1"&gt;</content><author><name>Linchi Shea</name><uri>http://www2.sqlblog.com/members/Linchi+Shea.aspx</uri></author><category term="parallelism" scheme="http://www2.sqlblog.com/blogs/linchi_shea/archive/tags/parallelism/default.aspx" /><category term="NUMA" scheme="http://www2.sqlblog.com/blogs/linchi_shea/archive/tags/NUMA/default.aspx" /><category term="port affinity" scheme="http://www2.sqlblog.com/blogs/linchi_shea/archive/tags/port+affinity/default.aspx" /><category term="NUMA affinity" scheme="http://www2.sqlblog.com/blogs/linchi_shea/archive/tags/NUMA+affinity/default.aspx" /><category term="bug" scheme="http://www2.sqlblog.com/blogs/linchi_shea/archive/tags/bug/default.aspx" /></entry><entry><title>T-SQL stored procedure for finding/replacing strings in a text file. Really?</title><link rel="alternate" type="text/html" href="http://www2.sqlblog.com/blogs/linchi_shea/archive/2012/01/27/t-sql-stored-procedure-for-finding-replacing-strings-in-a-text-file-really.aspx" /><id>http://www2.sqlblog.com/blogs/linchi_shea/archive/2012/01/27/t-sql-stored-procedure-for-finding-replacing-strings-in-a-text-file-really.aspx</id><published>2012-01-27T05:33:11Z</published><updated>2012-01-27T05:33:11Z</updated><content type="html">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, or as an intellectual exercise. But then I bumped into an article on writing a T-SQL stored procedure to find and replace strings in a text file. That really unsettled me! Sure, when you are in a hurry, you need to grab a tool--any tool--to get the...(&lt;a href="http://www2.sqlblog.com/blogs/linchi_shea/archive/2012/01/27/t-sql-stored-procedure-for-finding-replacing-strings-in-a-text-file-really.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://www2.sqlblog.com/aggbug.aspx?PostID=41375" width="1" height="1"&gt;</content><author><name>Linchi Shea</name><uri>http://www2.sqlblog.com/members/Linchi+Shea.aspx</uri></author></entry><entry><title>Performance impact: SQL2008 R2 audit and trace</title><link rel="alternate" type="text/html" href="http://www2.sqlblog.com/blogs/linchi_shea/archive/2012/01/24/performance-impact-sql2008-r2-audit-and-trace.aspx" /><id>http://www2.sqlblog.com/blogs/linchi_shea/archive/2012/01/24/performance-impact-sql2008-r2-audit-and-trace.aspx</id><published>2012-01-25T03:29:27Z</published><updated>2012-01-25T03:29:27Z</updated><content type="html">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), I’ve always taken that as a given and never bothered to check it out. Recently, I had to capture some object access information, and it turned out that SQL Audit was not the most convenient tool for the task. I had to go back to SQL Trace....(&lt;a href="http://www2.sqlblog.com/blogs/linchi_shea/archive/2012/01/24/performance-impact-sql2008-r2-audit-and-trace.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://www2.sqlblog.com/aggbug.aspx?PostID=41287" width="1" height="1"&gt;</content><author><name>Linchi Shea</name><uri>http://www2.sqlblog.com/members/Linchi+Shea.aspx</uri></author></entry><entry><title>Performance impact: hyperthreading on Intel Westmere-EP processors (X5690)</title><link rel="alternate" type="text/html" href="http://www2.sqlblog.com/blogs/linchi_shea/archive/2012/01/22/performance-impact-hyperthreading-on-intel-westmere-ep-processors-x5690.aspx" /><id>http://www2.sqlblog.com/blogs/linchi_shea/archive/2012/01/22/performance-impact-hyperthreading-on-intel-westmere-ep-processors-x5690.aspx</id><published>2012-01-22T06:41:23Z</published><updated>2012-01-22T06:41:23Z</updated><content type="html">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&amp;#160; (E7-4870) processors. Overall, the results of enabling hyperthreading have been positive for both the tested reporting queries and the tested OLTP queries, although I did run into one exception where a reporting query workload performed better without hyperthreading . In all...(&lt;a href="http://www2.sqlblog.com/blogs/linchi_shea/archive/2012/01/22/performance-impact-hyperthreading-on-intel-westmere-ep-processors-x5690.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://www2.sqlblog.com/aggbug.aspx?PostID=41215" width="1" height="1"&gt;</content><author><name>Linchi Shea</name><uri>http://www2.sqlblog.com/members/Linchi+Shea.aspx</uri></author></entry><entry><title>Performance impact: not all is better with hyperthreading</title><link rel="alternate" type="text/html" href="http://www2.sqlblog.com/blogs/linchi_shea/archive/2012/01/17/performance-impact-not-all-is-better-with-hyperthreading.aspx" /><id>http://www2.sqlblog.com/blogs/linchi_shea/archive/2012/01/17/performance-impact-not-all-is-better-with-hyperthreading.aspx</id><published>2012-01-17T22:57:32Z</published><updated>2012-01-17T22:57:32Z</updated><content type="html">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. I happened to have some free time over this past long weekend, and I was curious to see how a different workload might behave, differently, similarly or the same. So I modified the workload driver client I wrote earlier to work with Serguei’s query,...(&lt;a href="http://www2.sqlblog.com/blogs/linchi_shea/archive/2012/01/17/performance-impact-not-all-is-better-with-hyperthreading.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://www2.sqlblog.com/aggbug.aspx?PostID=41147" width="1" height="1"&gt;</content><author><name>Linchi Shea</name><uri>http://www2.sqlblog.com/members/Linchi+Shea.aspx</uri></author></entry><entry><title>Performance impact: driving up context switches/sec</title><link rel="alternate" type="text/html" href="http://www2.sqlblog.com/blogs/linchi_shea/archive/2012/01/12/performance-impact-driving-up-context-switches-sec.aspx" /><id>http://www2.sqlblog.com/blogs/linchi_shea/archive/2012/01/12/performance-impact-driving-up-context-switches-sec.aspx</id><published>2012-01-12T05:23:52Z</published><updated>2012-01-12T05:23:52Z</updated><content type="html">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 help understand the SQL Server behavior in the environments we support. Recognizing that any attempt to rehash what is already said/recommended out there will more likely be a disservice than a service, I’d like to look at it from a different angle,...(&lt;a href="http://www2.sqlblog.com/blogs/linchi_shea/archive/2012/01/12/performance-impact-driving-up-context-switches-sec.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://www2.sqlblog.com/aggbug.aspx?PostID=40981" width="1" height="1"&gt;</content><author><name>Linchi Shea</name><uri>http://www2.sqlblog.com/members/Linchi+Shea.aspx</uri></author><category term="Testing" scheme="http://www2.sqlblog.com/blogs/linchi_shea/archive/tags/Testing/default.aspx" /><category term="Benchmark" scheme="http://www2.sqlblog.com/blogs/linchi_shea/archive/tags/Benchmark/default.aspx" /><category term="Context Switches" scheme="http://www2.sqlblog.com/blogs/linchi_shea/archive/tags/Context+Switches/default.aspx" /></entry><entry><title>Performance impact: hyperthreading for OLTP queries -- II</title><link rel="alternate" type="text/html" href="http://www2.sqlblog.com/blogs/linchi_shea/archive/2012/01/11/performance-impact-hyperthreading-for-oltp-queries-ii.aspx" /><id>http://www2.sqlblog.com/blogs/linchi_shea/archive/2012/01/11/performance-impact-hyperthreading-for-oltp-queries-ii.aspx</id><published>2012-01-11T18:51:17Z</published><updated>2012-01-11T18:51:17Z</updated><content type="html">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 on this very topic. I’m posting below the results of re-running the same exact test as described in the previous post but with the SQL Server instance bumped up to build 10.50.2500 from 10.50.1600. The former is SQL Server 2008 R2 with Service...(&lt;a href="http://www2.sqlblog.com/blogs/linchi_shea/archive/2012/01/11/performance-impact-hyperthreading-for-oltp-queries-ii.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://www2.sqlblog.com/aggbug.aspx?PostID=40959" width="1" height="1"&gt;</content><author><name>Linchi Shea</name><uri>http://www2.sqlblog.com/members/Linchi+Shea.aspx</uri></author><category term="Performance" scheme="http://www2.sqlblog.com/blogs/linchi_shea/archive/tags/Performance/default.aspx" /><category term="Testing" scheme="http://www2.sqlblog.com/blogs/linchi_shea/archive/tags/Testing/default.aspx" /><category term="Query Processing" scheme="http://www2.sqlblog.com/blogs/linchi_shea/archive/tags/Query+Processing/default.aspx" /><category term="Benchmark" scheme="http://www2.sqlblog.com/blogs/linchi_shea/archive/tags/Benchmark/default.aspx" /><category term="hyperthreading" scheme="http://www2.sqlblog.com/blogs/linchi_shea/archive/tags/hyperthreading/default.aspx" /></entry><entry><title>Elephant in the room: TPC-E</title><link rel="alternate" type="text/html" href="http://www2.sqlblog.com/blogs/linchi_shea/archive/2012/01/07/elephant-in-the-room-tpc-e.aspx" /><id>http://www2.sqlblog.com/blogs/linchi_shea/archive/2012/01/07/elephant-in-the-room-tpc-e.aspx</id><published>2012-01-07T05:21:44Z</published><updated>2012-01-07T05:21:44Z</updated><content type="html">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 results. So naturally they were very happy and eager to talk about performance, I mean any database performance, until the topic of TPC-E came up. They might not be squirming. But it’s hard to be mistaken that they really didn’t want to talk about...(&lt;a href="http://www2.sqlblog.com/blogs/linchi_shea/archive/2012/01/07/elephant-in-the-room-tpc-e.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://www2.sqlblog.com/aggbug.aspx?PostID=40876" width="1" height="1"&gt;</content><author><name>Linchi Shea</name><uri>http://www2.sqlblog.com/members/Linchi+Shea.aspx</uri></author><category term="Rant" scheme="http://www2.sqlblog.com/blogs/linchi_shea/archive/tags/Rant/default.aspx" /><category term="Benchmark" scheme="http://www2.sqlblog.com/blogs/linchi_shea/archive/tags/Benchmark/default.aspx" /></entry><entry><title>Performance impact: hyperthreading for OLTP queries</title><link rel="alternate" type="text/html" href="http://www2.sqlblog.com/blogs/linchi_shea/archive/2012/01/06/performance-impact-hyperthreading-for-oltp-queries.aspx" /><link rel="enclosure" type="application/x-zip-compressed" length="1455" href="http://www2.sqlblog.com/blogs/linchi_shea/attachment/40853.ashx" /><id>http://www2.sqlblog.com/blogs/linchi_shea/archive/2012/01/06/performance-impact-hyperthreading-for-oltp-queries.aspx</id><published>2012-01-06T04:44:00Z</published><updated>2012-01-06T04:44:00Z</updated><content type="html">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 processed by scanning a large number of pages, whereas quick index seeks are the hallmark of OLTP queries. The OLTP queries used to check out the hyperthreading impact are the two TPC-C read-only transactions (Order Status and Stock Level), slightly...(&lt;a href="http://www2.sqlblog.com/blogs/linchi_shea/archive/2012/01/06/performance-impact-hyperthreading-for-oltp-queries.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://www2.sqlblog.com/aggbug.aspx?PostID=40853" width="1" height="1"&gt;</content><author><name>Linchi Shea</name><uri>http://www2.sqlblog.com/members/Linchi+Shea.aspx</uri></author><category term="Performance" scheme="http://www2.sqlblog.com/blogs/linchi_shea/archive/tags/Performance/default.aspx" /><category term="Testing" scheme="http://www2.sqlblog.com/blogs/linchi_shea/archive/tags/Testing/default.aspx" /><category term="Query Processing" scheme="http://www2.sqlblog.com/blogs/linchi_shea/archive/tags/Query+Processing/default.aspx" /><category term="Benchmark" scheme="http://www2.sqlblog.com/blogs/linchi_shea/archive/tags/Benchmark/default.aspx" /><category term="TPC-C" scheme="http://www2.sqlblog.com/blogs/linchi_shea/archive/tags/TPC-C/default.aspx" /><category term="hyperthreading" scheme="http://www2.sqlblog.com/blogs/linchi_shea/archive/tags/hyperthreading/default.aspx" /></entry><entry><title>Performance impact: hyperthreading for reporting queries</title><link rel="alternate" type="text/html" href="http://www2.sqlblog.com/blogs/linchi_shea/archive/2012/01/05/performance-impact-hyperthreading-for-reporting-queries.aspx" /><link rel="enclosure" type="application/x-zip-compressed" length="1381" href="http://www2.sqlblog.com/blogs/linchi_shea/attachment/40817.ashx" /><id>http://www2.sqlblog.com/blogs/linchi_shea/archive/2012/01/05/performance-impact-hyperthreading-for-reporting-queries.aspx</id><published>2012-01-05T05:36:00Z</published><updated>2012-01-05T05:36:00Z</updated><content type="html">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 of the Intel processors was not well received by the SQL Server community. Hyperthreading in the newer generations of the Intel’s Nehalem-based Xeon processors, however, is decidedly better implemented, and it appears to be much better received...(&lt;a href="http://www2.sqlblog.com/blogs/linchi_shea/archive/2012/01/05/performance-impact-hyperthreading-for-reporting-queries.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://www2.sqlblog.com/aggbug.aspx?PostID=40817" width="1" height="1"&gt;</content><author><name>Linchi Shea</name><uri>http://www2.sqlblog.com/members/Linchi+Shea.aspx</uri></author><category term="Performance" scheme="http://www2.sqlblog.com/blogs/linchi_shea/archive/tags/Performance/default.aspx" /><category term="Benchmark" scheme="http://www2.sqlblog.com/blogs/linchi_shea/archive/tags/Benchmark/default.aspx" /><category term="parallelism" scheme="http://www2.sqlblog.com/blogs/linchi_shea/archive/tags/parallelism/default.aspx" /><category term="hyperthreading" scheme="http://www2.sqlblog.com/blogs/linchi_shea/archive/tags/hyperthreading/default.aspx" /><category term="Reporting queries" scheme="http://www2.sqlblog.com/blogs/linchi_shea/archive/tags/Reporting+queries/default.aspx" /><category term="HT" scheme="http://www2.sqlblog.com/blogs/linchi_shea/archive/tags/HT/default.aspx" /></entry><entry><title>Evaluating server hardware: a sign of the times</title><link rel="alternate" type="text/html" href="http://www2.sqlblog.com/blogs/linchi_shea/archive/2012/01/03/evaluating-server-hardware-a-sign-of-the-times.aspx" /><id>http://www2.sqlblog.com/blogs/linchi_shea/archive/2012/01/03/evaluating-server-hardware-a-sign-of-the-times.aspx</id><published>2012-01-03T05:02:20Z</published><updated>2012-01-03T05:02:20Z</updated><content type="html">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. Arbitrarily picking a generic benchmark to evaluate a server is of no interest to me. Rather, I’m interested in a piece of hardware only in how SQL Server runs on that hardware or that specific configuration of hardware. Now in this day and...(&lt;a href="http://www2.sqlblog.com/blogs/linchi_shea/archive/2012/01/03/evaluating-server-hardware-a-sign-of-the-times.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://www2.sqlblog.com/aggbug.aspx?PostID=40750" width="1" height="1"&gt;</content><author><name>Linchi Shea</name><uri>http://www2.sqlblog.com/members/Linchi+Shea.aspx</uri></author><category term="Performance" scheme="http://www2.sqlblog.com/blogs/linchi_shea/archive/tags/Performance/default.aspx" /><category term="Benchmark" scheme="http://www2.sqlblog.com/blogs/linchi_shea/archive/tags/Benchmark/default.aspx" /><category term="Many-core" scheme="http://www2.sqlblog.com/blogs/linchi_shea/archive/tags/Many-core/default.aspx" /><category term="TPC-C" scheme="http://www2.sqlblog.com/blogs/linchi_shea/archive/tags/TPC-C/default.aspx" /></entry><entry><title>Where is SQL Server running in a cluster?</title><link rel="alternate" type="text/html" href="http://www2.sqlblog.com/blogs/linchi_shea/archive/2011/12/27/where-is-sql-server-running-in-a-cluster.aspx" /><id>http://www2.sqlblog.com/blogs/linchi_shea/archive/2011/12/27/where-is-sql-server-running-in-a-cluster.aspx</id><published>2011-12-28T03:55:00Z</published><updated>2011-12-28T03:55:00Z</updated><content type="html">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 versions of Windows. You could also use the PowerShell cluster cmdlets such as Get-ClusterGroup. But it’s not ubiquitous. These days, if I have to quickly find out which node a SQL Server instance may be running, I generally run the following command...(&lt;a href="http://www2.sqlblog.com/blogs/linchi_shea/archive/2011/12/27/where-is-sql-server-running-in-a-cluster.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://www2.sqlblog.com/aggbug.aspx?PostID=40663" width="1" height="1"&gt;</content><author><name>Linchi Shea</name><uri>http://www2.sqlblog.com/members/Linchi+Shea.aspx</uri></author><category term="Cluster" scheme="http://www2.sqlblog.com/blogs/linchi_shea/archive/tags/Cluster/default.aspx" /></entry><entry><title>Performance impact: a little business logic goes a long way</title><link rel="alternate" type="text/html" href="http://www2.sqlblog.com/blogs/linchi_shea/archive/2011/12/23/performance-impact-a-little-business-logic-goes-a-long-way.aspx" /><id>http://www2.sqlblog.com/blogs/linchi_shea/archive/2011/12/23/performance-impact-a-little-business-logic-goes-a-long-way.aspx</id><published>2011-12-23T05:13:21Z</published><updated>2011-12-23T05:13:21Z</updated><content type="html">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 appears to be harmlessly simple, as simple as the following: SELECT MAX(BusinessDate) FROM BusinessTransactions; But it takes a long time to complete. Upon further inspection, it turns out that BusinessTransactions is actually a very complex view...(&lt;a href="http://www2.sqlblog.com/blogs/linchi_shea/archive/2011/12/23/performance-impact-a-little-business-logic-goes-a-long-way.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://www2.sqlblog.com/aggbug.aspx?PostID=40606" width="1" height="1"&gt;</content><author><name>Linchi Shea</name><uri>http://www2.sqlblog.com/members/Linchi+Shea.aspx</uri></author><category term="Performance" scheme="http://www2.sqlblog.com/blogs/linchi_shea/archive/tags/Performance/default.aspx" /><category term="Business logic" scheme="http://www2.sqlblog.com/blogs/linchi_shea/archive/tags/Business+logic/default.aspx" /></entry></feed>