views:

81

answers:

4

I heard that for java (jboss + any DB) it's really important cuz there is going to be lot of problems, but for .net not so much, is it ?

+1  A: 

This entirely depends on your environment, the hardware you have and the load you anticipate on your database. SQL server is quite resource hungry and depending on your circumstances, it may well help to have them separate.

Paddy
+2  A: 

It's all a matter of scalability. If you have an application with a very small userbase, small database with only a little bit of data, and basic application logic (like simple CRUD functionality), you probably aren't going to gain very much by separating them. In an enterprise environment, with a large userbase, a gigantic database, and complex application logic, there will definitely be a benefit to physically separating them.

Nate Dudek
+2  A: 

I always put application and database on different servers for production. This prevents a high load on one part of the structure from cascading into problems for the other part, which just starts to feedback on itself and bring the whole system to a screeching halt.

Erick Robertson
That puts a network between the two. Even Gb-networking is much slower than a modern disk. Also networks are an additional source of error.
Thorbjørn Ravn Andersen
The database storage is still on the database machine. So the hard disk access isn't over the network. Typically, you shouldn't be retrieving that volume of data, anyways. The network shouldn't be a problem. Besides, if your site is that busy that you have to worry about the network capacity, you'll need two servers to handle the volume. I disagree about networks being a significant source of error. TCP/IP is an old standard and typically has solid implementation. If your web server is having networking issues, you have big problems.
Erick Robertson
+1  A: 

In environments like LAMP or WAMP (Linux/Windows + Apache + MySQL + PHP) servers they are usually all on the same machine. As the previous commenter said, it's more to do with your expected load.

One other reason the DB is often split is for security concerns. Many security architectures have the DB servers hidden behind a separate firewall (PCI requires this).

And another reason (it's early and I'm making this up as I'm going) is if your DB server will be used by multiple applications, or maybe your one application running on multiple servers. Typically a well-built DB server can handle multiple app servers and client machines easily.

Zippit