SQL-Server Licensing and Web Apps?
- From: topmind <topmind@xxxxxxxxxxxxxxxx>
- Date: Fri, 08 Jun 2007 15:40:52 -0700
(I apologize if this shows up twice. I got a "server error" when I
posted before.)
After trying to research the subject on the web, I plead "confused"
with regard to MS-SQL-Server licensing and web applications. It seems
"it depends on the nature of your app" is the most common response.
Some editions/extensions are priced per CAL and others per CPU. The
CPU-based licensing seems much more expensive than CAL-based
licensing, even though it is conceptually simpler to know what it
means. (Some also suggest that MS is moving away from CAL-based
licensing.)
It is not clear to me how web applications use CAL's. It is my
understanding that most web apps run under a single "user", which is a
dummy web server user. Would this count as one CAL for web apps? But
what if multiple queries are launched at the same time from different
users of the web app? Does SQL divide each request (query) into a
different CAL? Thus, if 5 users submit a query at the same time, does
SQL server spawn 5 processes for each query?
If so, what if the CAL's (query instances) are used up, such as if 10
queries are submitted at about the same time? Does it put additional
requests in a queue to wait for the existing ones to finish, or does
it throw an error? Waiting might not be bad because running too many
processes at once can cause just as much sluggishness as queing them
because they start to all compete for the same RAM and bus bandwidth,
creating a log-jam.
It is roughly analogous to 5 cooks in a "normal" kitchen compared to
say 10 cooks in the *same* kitchen. The 5 cook limit may be more
efficient, or at least not worse, than 10 because they are not all
tripping over each other. And there is only one sink and a fixed
number of ovens and pots, so some cooks still have to wait for some
resources. No matter how many query processes are running, there is
still only so much RAM and bus bandwidth available. 10 slow
simultaneous queries may be better or equal to 5 medium-speed
simultanious ones as far as net productivity (the additional 5 wait).
One counter point may be lots of small queries. If there are only 5
simultanious query processes available, then long queries may clog all
5 pipelines and may prevent short queries from getting done. In my
case, I expect a mix of query sizes.
But a counter-counter point is that large queries may be more
efficient with fewer processes because there may be more memory
available for index traversal. Fitting an entire index in available
RAM can sometimes make a huge difference in query processing speed. If
fewer query processes are running, then more indexes may fit entirely
in available RAM, making them finish much quicker. If too many
processes are running, then RAM has to be divided up into slices so
small that index traversal must be done largely via disk caching,
which is much slower than RAM placement.
Do people find that CAL-based licensing is more cost effective if
there is a mix of query sizes?
Thanks in advanced for your responses. -tmind-
.
- Follow-Ups:
- RE: SQL-Server Licensing and Web Apps?
- From: mrdenny
- Re: SQL-Server Licensing and Web Apps?
- From: Tibor Karaszi
- RE: SQL-Server Licensing and Web Apps?
- Prev by Date: Re: msdb database
- Next by Date: Re: msdb database
- Previous by thread: msdb database
- Next by thread: Re: SQL-Server Licensing and Web Apps?
- Index(es):
Relevant Pages
|