Chapter 14 - Implementation Details

The tables in the following topics discuss the maximum capacities and memory usage of Microsoft SQL Server objects.

Maximum Capacity Specifications

This table specifies the maximum sizes and numbers of various objects defined in Microsoft SQL Server databases, or referenced in Transact-SQL statements.

Object

SQL Server 6.5

SQL Server 7.0

Batch size

128 KB

65,536* Network Packet Size

Bytes per short string column

255

8000

Bytes per text, ntext, or image column

2 GB-2

2 GB-2

Bytes per GROUP BY, ORDER BY

900

8060

Bytes per index

900

900

Bytes per foreign key

900

900

Bytes per primary key

900

900

Bytes per row

1962

8060

Bytes in source text of a stored procedure

65025

Lesser of batch size or 250 MB

Clustered indexes per table

1

1

Columns in GROUP BY, ORDER BY

16

Limited only by number of bytes

Columns or expressions in a GROUP BY WITH CUBE or WITH ROLLUP statement

10

10

Columns per index

16

16

Columns per foreign key

16

16

Columns per primary key

16

16

Columns per base table

250

1024

Columns per SELECT statement

4096

4096

Columns per INSERT statement

250

1024

Connections per client

Max. value of configured connections

Max. value of configured connections

Database size

1 TB

1,048,516 TB

Databases per server

32,767

32,767

Filegroups per database

N/A

256

Files per database

32

32,767

File size (data)

32 GB

32 TB

File size (log)

32 GB

4 TB

Foreign key table references per table

16

253

Identifier length (in characters)

30

128

Locks per connection

Max. locks per server

Max. locks per server

Locks per server

2,147,483,647

2,147,483,647 (static)40% of SQL Server memory (dynamic)

Nested stored procedure levels

16

32

Nested subqueries

16

32

Nested trigger levels

16

32

Nonclustered indexes per table

249

249

Objects concurrently open in a server*

2 billion

2,147,483,647

Objects in a database*

2 billion

2,147,483,647

Parameters per stored procedure

255

1024

REFERENCES per table

31

63

Rows per table

Limited by available storage

Limited by available storage

SQL string length (batch size)

128 KB

128* TDS packet size

Tables per database

2 billion

Limited by number of objects in a database

Tables per SELECT statement

16

256

Triggers per table

3

Limited by number of objects in a database

UNIQUE indexes or constraints per table

249

249 nonclustered and 1 clustered

* Database objects include all tables, views, stored procedures, extended stored procedures, triggers, rules, defaults, and constraints. The sum of the number of all these objects in a database cannot exceed 2,147,483,647.

Configuration Option Specifications

Microsoft SQL Server version 7.0 contains improved algorithms for controlling computer resources. Many of the options that had to be configured manually in earlier versions of SQL Server are managed dynamically in SQL Server 7.0. These configuration options are not applicable in SQL Server 7.0 and are marked N/A in this table.

Several configuration options are still specified in SQL Server 7.0; however, instead of specifying the size of a static allocation, the options now specify the upper limit for the number of objects that are allocated dynamically as needed. These options are marked with an asterisk (*) in this table.

Configuration values

Minimum

Maximum

Minimum

Maximum

affinity mask

0

2,147483,647

0

2,147,483,647

allow updates

0

1

0

1

backup buffer size

1

32

N/A

N/A

backup threads

0

32

N/A

N/A

cost threshold for parallelism

N/A

N/A

0

32,767

cursor threshold

-1

2,147483,647

-1

2,147,483,647

database size

2

10,000

N/A

N/A

default language

0

9,999

0

9,999

default sort order id

0

255

0

255

extended memory size (MB)

N/A

N/A

0

2,147,483,647

fill factor (%)

0

100

0

100

free buffers

20

524,288

N/A

N/A

hash buckets

4,999

265,003

N/A

N/A

index create memory (K)

N/A

N/A

704

1,600,000

language in cache

3

100

3

100

language neutral full-text indexing

N/A

N/A

0

1

LE threshold maximum

2

500000

N/A

N/A

LE threshold minimum

2

500000

N/A

N/A

LE threshold percent

1

100

N/A

N/A

lightweight pooling

N/A

N/A

0

1

locks

5000

2,147,483,647

5000*

2,147,483,647*

LogLRU buffers

0

2,147,483,647

N/A

N/A

logwrite sleep (ms)

-1

500

N/A

N/A

max async IO

1

1,024

1

255

max degree of parallelism

N/A

N/A

0

32

max lazywrite IO

1

1,024

N/A

N/A

max server memory (MB)

N/A

N/A

4 *

2,147,483,647*

max text repl size

0

2,147,483,647

0

2,147,483,647

max worker threads

10

1,024

10

1,024

media retention

0

365

0

365

memory

2800

1,048,576

N/A

N/A

min memory per query (K)

N/A

N/A

512

2,147,483,647

min server memory (MB)

N/A

N/A

0*

2,147,483,647*

nested triggers (bytes)

0

1

0

1

network packet size

512

32,767

4,096

65,535

open databases

5

32,767

N/A

N/A

open objects

100

2,147,483,647

0*

2,147,483,647*

priority boost

0

1

0

1

procedure cache

1

99

N/A

N/A

Protection cache size

1

8,192

N/A

N/A

query governor cost limit

N/A

N/A

0

2,147,483,647

query wait (s)

N/A

N/A

-1

2,147,483,647

RA cache hit limit

1

255

N/A

N/A

RA cache miss limit

1

255

N/A

N/A

RA delay

0

500

N/A

N/A

RA pre-fetches

1

1,000

N/A

N/A

RA slots-per-thread

1

255

N/A

N/A

RA worker threads

0

255

N/A

N/A

recovery flags

0

1

N/A

N/A

recovery interval (min)

1

32,767

0

32,767

remote access

0

1

0

1

remote conn timeout

-1

32,767

N/A

N/A

remote login timeout

0

2,147,483,647

0

2,147,483,647

remote proc trans

0

1

0

1

remote query timeout

0

2,147,483,647

0

2,147,483,647

remote sites

0

256

N/A

N/A

resource timeout

5

2,147,483,647

5

2,147,483,647

scan for startup procs

N/A

N/A

0

1

set working set size

0

1

0

1

show advanced options

0

1

0

1

SMP concurrency

-1

64

N/A

N/A

sort pages

64

511

N/A

N/A

spin counter

1

2,147,483,647

1

2,147,483,647

tempdb in RAM (MB)

0

2,044

N/A

N/A

time slice

50

1,000

50

1,000

Unicode comparison style

N/A

N/A

0

2,147,483,647

Unicode locale id

N/A

N/A

0

2,147,483,647

user connections

5

32,767

0*

32,767 (server)*

user options

0

4,095

0

4,095

* Lower or upper limit for objects allocated dynamically.

Memory Used by SQL Server Objects Specifications

This table lists the amount of memory used by different objects in Microsoft SQL Server.

Object

SQL Server 6.5

SQL Server 7.0

Lock

60 bytes

96 bytes

Open database

1,144 bytes per server plus 160 bytes per database

2880 bytes

Open object*

240 bytes

276 bytes

User connection

44K

24K

* Open objects include all tables, views, stored procedures, extended stored procedures, triggers, rules, defaults, and constraints.

SQL Server Editions

Microsoft SQL Server comes in three editions: Standard, Enterprise, and Small Business Server (SBS). In addition, users covered by a per-seat license from any of these three editions can install a Desktop SQL Server installation on their client computer.

This table compares the capabilities of the Standard, Enterprise, and SBS editions.

Feature

SBS

Standard

Enterprise

Runs on Microsoft Windows Small Business Server

Yes

Yes

No

Runs on Microsoft Windows NT Server

No

Yes

No

Runs on Windows NT Enterprise

No

Yes

Yes

Maximum database size

10GB

Unlimited

Unlimited

Number of SMP CPUs

4

4

32

Extended memory support

No

No

Yes

Failover clustering

No

No

Yes

Supports Microsoft Search Service, full-text catalogs, andfull-text indexes

Yes

Yes

Yes

Supports Microsoft SQL Server OLAP Services

No

Yes(No user-defined cube partitions)

Yes(Includes user-defined cube partitions)

The performance of the Small Business Server Edition is limited to the throughput typical of 50 concurrent users, although individual SBS installations may be licensed for fewer than 50 users. The performance of the Standard and Enterprise editions are limited only by the hardware and operating systems on which they run.

While the Desktop edition can accept remote connections, it is intended for SQL Server clients that:

  • Operate in a mobile environment where they are sometimes not connected to their SBS, Standard, or Enterprise edition of SQL Server and need a local database to store data while disconnected.

  • Store most of their SQL-based data in an SBS, Standard, or Enterprise edition of SQL Server, but occasionally run applications that need local database storage.

The Desktop Edition server component has these capabilities:

  • Runs on Windows 95/98, Windows NT Workstation, Windows NT Server, and Windows NT Enterprise.

  • Has no limit to the size of the databases it supports.

  • Scales effectively over 2 SMP CPUs.

  • Has optimizations to minimize memory usage. The working set is minimized during startup and while the system is running.

  • Supports full merge and snapshot replication. Supports only subscriptions to transaction replications, cannot publish transaction replications.

    The Desktop server does not support these features at any time:

    • Parallel queries

    • Fiber mode scheduling

    • Read-ahead scans

    • Hash and merge joins

    • Failover clusters

    • Extended memory addressing

    For more information about additional features that are not supported when the Desktop server is running on Windows 95/98, see "SQL Server 7.0 on Windows 95/98" in this volume.

  • The Microsoft Search service cannot be installed during a Desktop server installation. Desktop servers do not support full-text catalogs and indexes. Computers running a Desktop server can use SQL Server Enterprise Manager to manage full-text indexes on computers running SQL Server Standard or Enterprise editions. Applications running on Desktop servers can also execute full-text queries against SQL Server Standard or Enterprise edition databases that have full-text catalogs and indexes.

  • OLAP Services cannot be installed during a Desktop server installation. Applications running on Desktop servers can use the client PivotTable Service.

SQL Server and Year 2000

SQL Server 7.0 has been tested against and complies with the Microsoft Year 2000 Compliance Statement. This statement can be found on the Web at https://www.microsoft.com/Windows95/downloads/contents/WURecommended/S_WUFeatured/win95y2k/Default.asp. The Microsoft Year 2000 Product Guide can also be reached from this page.

The Microsoft Year 2000 Product Guide contains up-to-date information regarding the Year 2000 (Y2K, or Year2K) compliance of different versions of SQL Server.