Microsoft® SQL Server™ 2000 系统有四种系统数据库:
-
master 数据库
master 数据库记录 SQL Server 系统的所有系统级别信息。它记录所有的登录帐户和系统配置设置。master 数据库是这样一个数据库,它记录所有其它的数据库,其中包括数据库文件的位置。master 数据库记录 SQL Server 的初始化信息,它始终有一个可用的最新 master 数据库备份。
-
tempdb 数据库
tempdb 数据库保存所有的临时表和临时存储过程。它还满足任何其它的临时存储要求,例如存储 SQL Server 生成的工作表。tempdb 数据库是全局资源,所有连接到系统的用户的临时表和存储过程都存储在该数据库中。tempdb 数据库在 SQL Server 每次启动时都重新创建,因此该数据库在系统启动时总是干净的。临时表和存储过程在连接断开时自动除去,而且当系统关闭后将没有任何连接处于活动状态,因此 tempdb 数据库中没有任何内容会从 SQL Server 的一个会话保存到另一个会话。
默认情况下,在 SQL Server 在运行时 tempdb 数据库会根据需要自动增长。不过,与其它数据库不同,每次启动数据库引擎时,它会重置为其初始大小。如果为 tempdb 数据库定义的大小较小,则每次重新启动 SQL Server时,将tempdb 数据库的大小自动增加到支持工作负荷所需的大小这一工作可能会成为系统处理负荷的一部分。为避免这种开销,可以使用 ALTER DATABASE 增加 tempdb 数据库的大小。
-
model 数据库
model 数据库用作在系统上创建的所有数据库的模板。当发出 CREATE DATABASE 语句时,新数据库的第一部分通过复制 model 数据库中的内容创建,剩余部分由空页填充。由于 SQL Server 每次启动时都要创建 tempdb 数据库,model 数据库必须一直存在于 SQL Server 系统中。
-
msdb 数据库
msdb 数据库供 SQL Server 代理程序调度警报和作业以及记录操作员时使用。
在 SQL Server 2000 和 SQL Server 7.0 版中,包括系统数据库在内的每个数据库都有自己的文件集,而且不与其它数据库共享这些文件。
数据库文件 | 物理文件名 | 默认大小,典型安装 |
---|---|---|
master 主数据 | Master.mdf | 11,0 MB |
master 日志 | Mastlog.ldf | 1,25 MB |
tempdb 主数据 | Tempdb.mdf | 8,0 MB |
tempdb 日志 | Templog.ldf | ,5 MB |
model 主数据 | Model.mdf | ,75 MB |
model 日志 | Modellog.ldf | ,75 MB |
msdb 主数据 | Msdbdata.mdf | 12,0 MB |
msdb 日志 | Msdblog.ldf | 2,25 MB |
对于不同版本的 SQL Server 2000,这些文件的大小可能略有不同。有关这些文件的默认位置的更多信息,请参见定位目录和文件。
SQL Server 2000 中的每个数据库都包含系统表,用来记录 SQL Server 组件所需的数据。SQL Server 的操作能否成功,取决于系统表信息的完整性,因此 Microsoft 不支持用户直接更新系统表中的信息。
Microsoft 提供了一套完整的管理工具,使用户得以充分管理他们的系统和数据库中的所有用户和对象。用户可以使用管理实用工具(如 SQL Server 企业管理器)直接管理系统。程序员可以使用 SQL-DMO API,在他们的应用程序中加入完整的 SQL Server 管理功能。程序员在生成 Transact-SQL 脚本和存储过程时,可以使用系统存储过程和 Transact-SQL DDL 语句来支持系统中的所有管理功能。
SQL-DMO、系统存储过程和数据定义语言 (DDL) 语句的一个重要功能是,防止应用程序在系统表中发生更改。Microsoft 有时需要更改 SQL Server 新版本中的系统表,以支持在那个版本中新增的功能。但应用程序在发出直接引用系统表的 SELECT 语句时,常常依赖于原来的系统表格式。站点在重写从系统表中选择的应用程序之前,不能升级到 SQL Server 的新版本。Microsoft 考虑了系统存储过程、DDL 和 SQL-DMO 发布的接口,力求保持这些接口的向后兼容性。
Microsoft 不支持对系统表定义触发器,触发器会更改系统的操作。
另外一个查询 SQL Server 目录的重要工具是信息架构视图集。这些视图遵从 SQL-92 标准中定义的信息架构。这些视图为应用程序提供了一个用于查询 SQL Server 目录的基于标准的组件。
不应编写直接查询系统表的 Transact-SQL 语句,除非这是获得应用程序所需信息的唯一方法。大多数情况下,应用程序应通过下列方式获取目录和系统信息:
- SQL-92 信息架构视图。
- SQL-DMO。
- 应用程序中使用的数据 API(如 ADO、OLE DB 或 ODBC)的目录函数、方法、特性或属性。
- Transact-SQL 系统存储过程、目录语句和内置函数。