Is it possible to use a licensed version of SQL Server along with the free version(Express Edition) of SQL?
How to install SQL server with two instances one of them licensed and the other free on the same machine? is it possible?
Of course you can have up to 50 different SQL Server instances on the same machine. One only will be the default one and its name will be the machine name. All other needs to have a specific name added to the machine name. You do not have to set a default instance (on my PC I have almost 8 different instance with SQL engine from 2008 to 2022).
Having multiple instances on the same machine is not recommended for production purpose but can be suitable for dev, test...
The minimal parameter to configure to avoid trouble, is to share the machine memory (physical RAM available) between all the instance, with the "max server memory (MB)" spreaded over the total RAM minus 2 to 4 Gb.
I have developed a VBNET application that would require database connection (SQL Server 2005 Express) to a Windows Server 2000 PC. These applications will run in Windows XP and it is expected to be installed across at least 20 clients, all linked through LAN.
I would like to know if there are connection limits using Windows XPs or is the limit dependent on the server machine.
Also on a related note, are there limits for TCP/IP connections in the same case?
These are all so that I can decide whether to upgrade the client PCs to Windows 7.
Thanks in advance.
Yes, there are connection limits but there are a few things you need to consider:
The database-access paradigm in .NET is to pool and use database connections on an as needed basis. This way database connections are not held unnecessarily
From #1 above follows that a single database server should be able to service lots of clients simultaneously if you write your code correctly
20 clients is definitely within the realm of possibility - even for SQL Server Express which is not limited in terms of number client connections but is is limited by how much memory it can use and how many cores which indirectly limit the number of connections that it can handle. To the same point, there is a limit to how many TCP connections a Windows machine can handle but on a server OS the limitation will most likely come from resources (processing power and available memory) before you hit the arbitrary software limit of active TCP connections (which I believe is in the range of millions)
You are using seriously obsolete operating systems - these are no longer supported and you should move off of them as soon as possible!
The connection limits you're referring to only apply to incoming connections. For outgoing connections, you're fine. Additionally, the limits only apply to desktop operating systems like XP. Server 2000 does not have the same limitation.
In other words, this will work just fine... at least for a while.
However, the systems you're using are beyond obsolete... they are end of life. This means that no new patches are created or released for these systems, even when new critical vulnerabilities are discovered... and believe me, new vulnerabilities are discovered all the time. That makes these systems fundamentally insecure. It's irresponsible to continue using them, and only a matter of time until your network is hacked.
I am working on one large scale application (Web MVC Application), which can be used by enterprise level organizations later on where more than 50 or may be 100s of user are accessing the web at the same time and requesting data eventually to MS SQL Server.
My question is,
"Is it fine to use one user (in terms of connections and to fulfill all user requests) for all database connection by server side data access layer?"
What I mean is that whether there is any limit by MS SQL Server for one user to make number of connections simultaneously or not?
Your feedback will be very useful for me.
Thanks!!!
There is no limitation on the number of connections per user. Our website does this. All of our code accesses the database with one SQL Server credential.
There is, however, a hard limit on the total number of connections (around 30k) to the instance. We found this out the hard way with hundred of databases and connection pooling from tens of application servers.
I've asked for more ram for our SQL Server (currently we have a server with 4 GB of RAM) but our administrator told me that he would accept that only if I can show him the better performance with having more memory available because he has checked the server logs and SQL Server is using only 2.5 GB.
Can someone tell me how can I prove to him the effect of more available memory (like in a performance issue for a query)?
Leaving aside the fact that you don't appear to have memory issues...
Some basic checks to run:
Check the Page Life Expectancy counter: this is how long a page will stay in memory
Target Server Memory is how much RAM SQL Server want to use
Note on PLE:
"300 seconds" is quoted but our busy server has a PLE of 80k+. Which is a week. When our databases are 15 x RAM. With peaks of 3k new rows per second and lot of read aggregations.
Edit, Oct 2011
I found this article on PLE by Jonathan Kehayias: http://www.sqlskills.com/blogs/jonathan/post/Finding-what-queries-in-the-plan-cache-use-a-specific-index.aspx
The comments have many of the usual SQL Server suspect commenting
I was wondering if anyone knew of any limitations to using Windows XP as a File and SQL server. I am asking because one of the applications we sell, requires the customer to setup a server for filesharing and as a SQL Server. We already allow them to use SQL Express, but we wanted to see if we can suggest Windows XP as a low cost alternative to Windows Server. The only potential problem that I could see if there were limits on the number of concurrent connections to either the files or the database. We are only thinking of recommending this for smaller sized companies who would have 10-15 users.
There is a limit of 10 inbound connections on XP professional, and 5 on XP Home. So it would only be practicable for a very small company.
From this MS KB Article:
Note For Windows XP Professional, the
maximum number of other computers that
are permitted to simultaneously
connect over the network is ten. This
limit includes all transports and
resource sharing protocols combined.
For Windows XP Home Edition, the
maximum number of other computers that
are permitted to simultaneously
connect over the network is five. This
limit is the number of simultaneous
sessions from other computers the
system is permitted to host. This
limit does not apply to the use of
administrative tools that attach from
a remote computer.
Per development: The connection limit
refers to the number of
redirector-based connections and is
enforced for any file, print, named
pipe, or mail slot session. The TCP
connection limit is not enforced, but
it may be bound by legal agreement to
not permit more than 10 clients.
I suggest reading the kb article for more information.
Actually, you can run SQL Server Standard or Workgroup Edition on Windows XP Pro. It is not limited to the express version ...
One cost effective alternative is Windows Small Business Server.
SBS 2003 R2: Features at a Glance
This will break the EULA.
Here is the relevant knowledge base article. Note that while TCP connection limits are not enforced for XP, legally they are limited to 10 connections.
Small business server seems like a better fit, and is cost effective if you shop around.
The problem with Small Business Server is all the frill it comes with that is unnecessary for a simple file and sql server; like exchange server, sharepoint, etc. I've used Windows XP as a small business SQL/File server, but as others have pointed out, you are limited to 10 connections legally speaking.
Another issue with Small Business Server is it can't be installed on an existing domain. Your best bet would be to package the SQL Server portion around a normal Windows server installation. If you're looking at 10-15 users, there's no guarantee that they have a domain. But if they don't, likely they are already dealing with the file server problem using accounts with same usernames/passwords on the file server(s) as on their individual workstations.
The number of connections is not related to SQL Server edition, but to the operating system. For example, Windows XP allows only 10 concurrent connections, Windows 7 20. For Windows Server OS [no need to purchase any new server machine ], the number of connections is unlimited (but you can limit is using Terminal Services).
The error message shown in case of connection limit reached is something like "the security limit reached...the number of concurrent connect attempts"
Presumably you are meaning SQL Express, as you can't run SQL Server on XP, it's a server product.
If the customer can afford your product, they can afford a copy of Server 2003, or whatever, the file sharing's built-in. Admittedly SQL Server's fairly expensive, but if your product needs it, that's the way it goes. If cost were an issue, you shouldn't be using SQL Server as the database platform. There's no point in trying to force a server-based solution into a client OS. You'll end up with all sorts of problems before long.
Doesn't the client have a domain-based infrastructure already?
The upshot being being if the client has 5-10 users of the software, they should be on SBS anyway for a variety of other reasons. You don't get SQL Server with it though.
(Samba would be an option for file-sharing, but doubtless more expensive than simply buying Server 2003 in this instance).