MS SQL and threads

MS SQL and threads

Post by Asko Seeb » Wed, 02 Dec 1998 04:00:00

Hi! I don't want to say SQL Server is bad, but It is allways funny to see
how MS compares itself to others. I just readed following quotes from

        "Microsoft Inside SQL Server 6.5"
        by Ron Soukup. Published by Microsoft press.

page 39:

Quote:> Traditional Process/Thread Model

> To understand and contrast  the architecture of Microsoft SQL Server, it
> is useful for you to first understand the traditional architectures that
> have been used by UNIX-based DBMS products. UNIX-based DBMS products are
> usually structured in one of two ways. In the first way, multiple
> processes (or shadow processes) are used, with one process per user,
> which makes the system quite resource intensive. The second type of
> architecture employs a single process that tries to simulate an
> operating system threading facility by moving in a round-robin way among
> multiple requests, maintaining a stack for each request and switching
> to that specific stack for whatever unit is being executed.

[explanations why these are bad]

page 40:

Quote:> Microsoft SQL Server Process/Thread Model

> A thread (more formally called a thread of execution and sometimes
> referred to as a lightweight process) is the executable unit on the
> Windows NT operating system. Threads, not processes, are scheduled for
> execution by Windows NT.

> Rather than move a single thread among all user tasks, SQL Server
> employs a pool of threads.

[explanations why it is good]

page 41:

Quote:> ... SQL Server's process/thread model greatly exceeds the reliability
> of typical UNIX-based database servers.

Good... Now I have a some questions:
1. What is a _traditional_ UNIX-based DBMS?
2. What is a _typical_ UNIX-based DBMS?
3. Why Ron Soukup thinks that typical UNIX-based DBMS doesn't have a
   third approach that uses threads provided by UNIX OS-es... or maybe
   he thinks UNIX-es doesn't have threads? Then what makes him think
   this one?

Asko Seeba.


1. ODBC and MS SQL and multi-threaded app.

Hi guys,

How does pair MS SQL server/ODBC handle multiple
connection requests from multithreaded app?

I use ODBC to connect to MS SQL server 7.0.
Application has multiple threads and runs on 4 CPUs box.
SQL server runs on another 4-way box.

Does ODBC keep separate connection for each thread, or one
connection per process, or one connection er box?

Does SQL server create new execution thread for each
connection or each async ODBC call?

I have many queued calls to stored proc and try to find
the best way to arrange them:
One thread with big requests queue vs. Many threads with
short request queues.

For the moment lets disregard other apps that may use the
same SQL server.

Thank you.

-Sergey Karpov

2. Connection error

3. MS Access 97 SQL to MS SQL SQL SQL SQL


5. MS Oracle ODBC Driver - Thread per Connection?

6. [WIN] non-scrolling area

7. Thread Safety of MS JDBC-ODBC Bridge

8. Work whith C-ISAM

9. MS Access ODBC driver, Is it thread safe?

10. Connecting to Sql Server from asp after upgrade from ms sql 7 to ms sql 2000