3

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

0

3 Answers 3

-2

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!)

1
  • 1
    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, 2013 at 8:48
3

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.

-1

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.

You must log in to answer this question.