SQL Sever 2000的系统数据库和索引

** SQL Sever 2000 ** ** 的系统数据库和索引 ** ** **


学习人: HSLY

学习书籍: SQL Server 2000 入门与提高
撰写日期: 2004-7-12

章节: 4.1 P44 9.6.1P126

SQL Server 2000 在安装过程中,创建了 4 个系统数据库,这 4 个系统数据库是运行 SQL Server 2000 的基础,建立在这 4 个系统数据库中的表格奠仪了运行和使用 SQL Server 的规则。这 4 个数据库分别是: master, model, tempdb, masdb .

** Master ** ** 数据库 ** ** **

Master 数据记录了 SQL Server 2000 所有的服务器系统信息,所有的注册帐号和密码以及所有的系统设置信息。 Master 数据库还记录了所有用户定义数据库的存储位置和初始化信息。由于 master 数据库的关键性,所以一旦它受到损坏,都有可能导致用户的 SQL Server 应用系统的瘫痪,所以要经常备份 master 数据库。

** Tempdb ** ** 数据库 ** ** **

Tempdb 数据库记录了所有临时表格、临时数据和临时创建的存储过程。 Tempdb 数据库是一个全局资源,没有专门的权限限制,允许所有可以连接上的 SQL Server 服务器的用户使用。在 tempdb 数据库中存放的所有数据信息都是临时的。每当连接断开是,所有的临时表格和临时存储过程都将自动丢弃。所以每次 SQL Server 启动时, tempdb 数据里面总是空的。当临时存储的数据量急剧增加时, tempdb 数据库的大小可以自动增长。

** Model ** ** 数据库 ** ** **

Model 数据库是建立新数据库的模板,它包含了将复制的每个数据库中的系统表。执行创建数据库的语句 CREATE DATABASES 时,服务器总是通过复制 model 的数据库建立新数据库的前面部分,新数据库的后面部分被初始化成为空白的数据页,以存放数据。

** Msdb ** ** 数据库 ** ** **

Msdb 数据库主要是被 SQL Server Agent 用于进行复制、作业调度以及管理报警等活动。数据库常用于通过调度任务排除故障。

** 索引的特点和用途 ** ** **

索引是 SQL Server 在列上建立的一种数据库对象。它对表中的数据库提供逻辑排序,可以提高数据的访问速度。

例如,要查找有 10000 行记录的 Employee 表中所有来自北京的雇员的名字。如果没有在这张表上针对雇员的地址建立索引,则 DBMS 在执行操作是必须遍历表中的每一行,并只显示那些来自北京的行中的姓名字段。这种遍历每一行记录并完成查询的过程叫做表扫描。

SQL Server 执行一次表扫描,将依次读取所有的数据页。对只有 10000 行数据的小表来说,执行一次表扫描并不算麻烦。但是如果 Employee 表的数据是现在的 1000 倍,记录总量达到 10000000 又该如何呢?而且,就算只是有一条记录,并且记录在第一页上, SQL Server 也不得不在所有的数据页中查找所有地址为北京的雇员的名字。

如果在地址栏上增加一个索引,由于该索引包括一个指向数据的指针,所以使用该索引完成相同查询的方式与表扫描不同。 DBMS 只沿着索引排序的顺序对仅有一列数据的索引表进行读取(如果只建立了一个索引的话),直至找到北京。然后, DBMS 沿着索引指针的指向转移到数据表上,查找到相应的数据。由于索引总是按照一定的顺序进行排序,所以对索引进行扫描的速度大大快与表进行扫描的速度。

Published At
Categories with 数据库类
Tagged with
comments powered by Disqus