SQL-Server Licensing and Web Apps?

Tech-Archive recommends: Fix windows errors by optimizing your registry



(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-

.



Relevant Pages

  • RE: SQL-Server Licensing and Web Apps?
    ... When licensing a web based application which is publicly accessable you need ... what if multiple queries are launched at the same time from different ... Thus, if 5 users submit a query at the same time, does ... No matter how many query processes are running, ...
    (microsoft.public.sqlserver.setup)
  • Re: Microsoft Access Queries to an Oracle DB run 4 times slower in XP than Win98
    ... If Windows XP needs more RAM to run efficiently, there will be less RAM for ... If you can't do that you may be able to restructure your query and report. ... When we upgraded from running Win98 to Windows XP Professional (ver ... SP2) the queries times degraded significantly. ...
    (microsoft.public.access.queries)
  • Re: Query Error Message
    ... "Action" query - update, insert, delete, make table. ... "Running Microsoft Access 2000" ... "SQL Queries for Mere Mortals" ... I have 512 MB of RAM. ...
    (microsoft.public.access.queries)
  • RE: Dynamically referencing a recordset?
    ... through that recordset to set the query parameters in VBA. ... to be the one who had to modify 1440 queries if there is a change in the ... different table schema, then you need 3, one for each record type. ... This is a database that tracks the production on records in another ...
    (microsoft.public.access.modulesdaovba)
  • Re: Was: what does "serialization" mean?
    ... > the specific queries up front. ... that the NEXT time the query is run the query is fast, ... data base, don't know squat" when in fact the Donald clone doesn't ... >> WHATEVER would probably be a separate query to summarize total sales. ...
    (comp.programming)