Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

Can anybody help me answer what I hope is a really simple question?

Assume I have an application running against a SQL Server database, and I am running performance tests. Should I expect improved performance if I setup a database server cluster? Or does that "just" buy me better up time and availability characteristics with fail over etc.?

I tend to think the latter, so if I feel that database performance is weak, I should work on my application design rather than buying extra hardware...

Regards, Emil

share|improve this question

migrated from superuser.com Jan 21 '10 at 16:12

This question came from our site for computer enthusiasts and power users.

add comment

3 Answers

up vote -1 down vote accepted

It very much depends how your cluster is configured and accessed. It doesn't help that teh word "cluster" can cover several different arrangements.

Some arrangements will have very little impact, some will slow things down noticeably (multiple active servers for instance, where a transaction make need to wait for all the servers to be uptodate before it is considered committed which can add considerable transactional latency for operations that include inserts/updates, also marshalling locking information between the servers can affect read-only operations similarly), and some arrangements may speed things up (multiple read-only replicas to farm the read-only load out over multiple machines, locking requirements permitting, for instance).

So: yes, no or maybe! If you describe your arrangement in some detail [machines, OS, DBMS, cluster config, what code accesses the cluster (a single web server, many web servers, many external clients, ...), load patterns, ...] you might get a much better answer.

(so unfortunately it isn't as simple a question as you'd hoped, sorry!)

share|improve this answer
    
Actually it is as a standard SQL Server on a cluster setup is always active/passive. I.e. one instance runs - it buys failover, not speed. So, while the anseer is ok in general, it is wrong for the question in specific. See the answer of Concole for a correct one. –  TomTom Jul 12 '13 at 8:48
add comment

No, you will not see any increased performance. The clustering solution in MS SQL server is only for high-availability, not for scaling or load balancing.

You can set up both nodes in the cluster to be active at the same time, but they will then serve different databases, and still only "take over" the databases from the other node if it fails.

Getting more performance from a SQL server than one single server can produce is a complex problem, and I will go out on a limb and claim that no matter what your scenario is, you will solve your database performance issues more easily with with more RAM, faster disks, and by tuning your database code.

share|improve this answer
add comment

You will have to have shared storage (SAN/NAS) and that will most likely perform better than direct attached disks, but a cluster does not perform better than a standalone instance. A cluster solely to reduce the risk of a hardware failure.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.