what are the implications of different ms sql 2005 license formats?

By online ·
We're trying to figure out the best way to host and license an application currently being developed in sql 2005:

Description as follows:

2-3 key users at the client office loading info onto the application (ftp file uploads etc).

Hundreds of users querying the standard app functionality - reading MIS reports etc. (I believe up to 200 different IP's will access the web site via browser per month, although concurrent sessions will rarely go above 20).

There are 2 databases, one currently weighing in at approx. 60Mb and one at 3Mb

The site is approx 5Mb in size, but may swell as files are generated and ftp import reports are created.

We'll also need to be able to set up regular jobs on the database that run overnight and setup alerts on the jobs that email us if they fail.

The developer will also need to be able to setup regular re-indexing of tables as needed.

Apparently and according to the developer, the app needs to run on a dual processor machine.

The problem is, I'm totally confused regarding the MS sql license type we need to buy and am worried we're going to make a big mistake - either in terms of how many people can use the system, or how fast it will run. (or of course we could just throw money down the drain - to be avoided!)

Unfortunately I've had more answers to the CAL ?v- server argument than I can shake a stick at.

Some say that one CAL is needed for every user of the system.

My sense is that one CAL is needed for every user that is logged on. So if, for example, 20 users are on at any one time then we'd need 20 CALs.

The way I believe it works is that a CAL means a working thread. So if we only had one CAL, then all website jobs that needed an sql connection, which is all of them, would be in that one queue and processed in turn ? hence slowly! (But would this 'slowly' be material?)

So does it mean that the more CALs you have, the more jobs can be executed in parallel?

If so, the quickest option would be for each person logged in to effectively have their own CAL. (Back to 20 CALs)

Then we come to the setup of the server with regards to processors. The developer says we could limit the SQL software to just use one processor only (ok with 20 CALs) however this would effectively halve the speed of the website, as the majority of the work is done within the SQL and so it would be best to let it take all the processors. (Now we need 40 CALs?)

If somebody could simplify my life here I would be most grateful.



This conversation is currently closed to new comments.

Thread display: Collapse - | Expand +

All Answers

Collapse -


by BOUND4DOOM In reply to what are the implications ...

I have never heard of licensing by CAL for SQL server, doesn't mean it doesn't exist, but I never bothered with it. You can license SQL server by CPU which is what I do. Simplifies things a whole lot, this allows for as many users as you want and as many databases in the SQL server you want. Especially if you plan on growing, this would be the best way to go when you can then capitalize it and depreciate it over time.

While also I agree dual procs will get great performance. What you should do is buy a server with 2 processors, however only license 1 processor in sql server. You can set SQL server to only use one processors when it installs. This is also perfectly legal. Then see how things perform. However get a ton of RAM and Hard Drive space. Typically the Operating system will then use one processor and then SQL server will use the other.

From what you are describing you really do not sound like you are really even going to be tasking the machine that much. However if you find performance lagging you can always buy another proc license later and go into SQL server and tell it to use both processors. I find SQL server extremely well behaved and well performing compared to a lot of databases, some of my dual processors servers easily run 80-90 large databases, large I consider 5 gig +, with 6000-7000 users easily processing thousands of queries a second. However it is all going to depend what you are running on these databases, like if your using SQL reporting and application services etc. If the developer is really good then he should be able to tweak for maximum performance or at least get creative to save you some money. That's the problem with most programmers these days it that they do not make things performs like they did in the old days when hardware was limited. They just throw more hardware at the problem. I could be wrong about your situation but I see this a lot. I do a lot for the new bankrupt auto industry so I am used to building high scale performing applications that need to run on low budget hardware. Anyway by getting creative and tweaking I would question why reindexing couldn't be done in the middle of the night or at a time when there are less users on. Example if this is factory based systems, then break time or lunch times, again good programmers should take advantage of everything to squeeze the most out of performance and not interrupt the users. Jobs or other things could me moved out of SQL server to run as windows services on low priority threads again then taking advantage of both CPU's because the programmer built the windows service it is not licensed. See what I mean really get creative.

I would suggest calling a Microsoft Licensing rep and asking them what is best in your situation explain to them what you want to do and if you want to grow and change in the future. You might be surprised they are very helpful they might even be able to be more creative and make other arrangements, like if you decide to go by cal you can buy like 100 and if you find your not using it then return 50 or so for your money back later or go under a software assurance model where you pay over time or something like that.

Related Discussions

Related Forums