关于SQL Server 2000 索引及其特性的简析
SQLServer2000简介new
第一章 SQL Server 2000简介
1.1 数据库的基本概念 1.2 SQL Server 2000简介 1.3 Microsoft SQL Server 2000的特点 1.4 Microsoft SQL Server 2000的数据库体
系结构 1.5 SQL Server数据库的基本概念 1.6 习题
1.51 数据库对象及其引用
1. 数据库对象
表:存放各种数据的载体。 约束:强制实现数据完整性的方法。 默认值:用户没有给出明确值时,系统自动给出的数据值。 规则:当向表的某一列插入或更新数据时的限定取值范围。 索引:实现数据快速检索、并强制实现数据完整性的一种存储结构。 视图: 存储过程:一组预先编译好的、能实现特定数据操作功能的SQL代码
客户机/服务器体系结构
❖ 服务器:管理数据库和为多个用户请求之间分配服务
器资源。
❖ 客户机:发送请求并分析从服务器接受的数据。提供
用户操作界面。
结果
客户端
T-SQl语句
SQL Server
图1-1SQl Server客户机/服务器结构体系
客户机/服务器体系结构
❖ 特点:
服务器负责数据管理及程序处理 客户机负责界面描述和界面显示 客户机向服务器提出处理要求 服务器响应后将处理结果返回客户机 网络数据传数量小
Windows NT版本 ❖ 1996年,Microsoft公司推出了SQL Server 6.5版本 ❖ 1998年,推出了SQL Server 7.0版本 ❖ 2000年推出了SQL Server 2000。
1.3 SQL Server 2000的特点
❖ 真正的客户机/服务器体系结构。 ❖ 图形化用户界面。 ❖ 丰富的编程接口工具。 ❖ SQL Server与Windows NT完全集成。 ❖ 具有很好的伸缩性。 ❖ 对Web技术的支持。 ❖ SQL Server提供数据仓库功能。
第一部分SQLServer2000概述
性别 女 男
工资 2000 3000
编号 1 2
工程名称 SS PP
客户 RAIN SUN
负责人 2 2
Transact-SQL语言
结构化查询语言SQL (Structured Query Language )
SQL语言现在已成为关系型数据库环境下的 标准查询语言。目前,最新的SQL标准是 1992年制定的SQL-92。
SQL Server 2000的版本功能和特点
SQL Server 2000常见的版本有: 企业版(Enterprise Edition) 标准版(Standard Edition) 个人版(Personal Edition) 开发人员版(Developer Edition)
SQL Server 企业版
过对它进行数据的维护和管理。
数据库系统模型
数据库系统模型是指数据库中数据的存储结构。
根据具体数据存储需求的不同,数据库系统模型 分为:
1.结构模型(层次模型) 2.网络模型 3.面向对象模型 4.关系模型
关系数据库
关系型数据库使用的存储结构是多个二 维表格。
编号 1 2
姓名 孙晓晴 陈有朋
(2)Internet 软件:
如果希望在Windows NT 4.0 Workstation/Server 或 Windows 95/98操作系统上安装 SQL Server 2000,必需 首先有 Microsoft Internet Explorer 5.0。
如果想要编写XML应用程序,还要安装Internet信 息服务(IIS)。
1、服务管理器
功能: 启动、停止和暂停SQL Server服务
在对SQL Server中的数据库进行任何操作 之前,需要首先启动SQL Server服务。
SQL Server 2000索引结构及使用方法
SQL Server 2000索引结构及使用方法一、深入浅出理解索引结构实际上,您可以把索引理解为一种特殊的目录。
微软的SQL SERVER提供了两种索引:聚集索引(clustered index,也称聚类索引、簇集索引)和非聚集索引(nonclustered index,也称非聚类索引、非簇集索引)。
下面,我们举例来说明一下聚集索引和非聚集索引的区别:其实,我们的汉语字典的正文本身就是一个聚集索引。
比如,我们要查“安”字,就会很自然地翻开字典的前几页,因为“安”的拼音是“an”,而按照拼音排序汉字的字典是以英文字母“a”开头并以“z”结尾的,那么“安”字就自然地排在字典的前部。
如果您翻完了所有以“a”开头的部分仍然找不到这个字,那么就说明您的字典中没有这个字;同样的,如果查“张”字,那您也会将您的字典翻到最后部分,因为“张”的拼音是“zhang”。
也就是说,字典的正文部分本身就是一个目录,您不需要再去查其他目录来找到您需要找的内容。
我们把这种正文内容本身就是一种按照一定规则排列的目录称为“聚集索引”。
如果您认识某个字,您可以快速地从自动中查到这个字。
但您也可能会遇到您不认识的字,不知道它的发音,这时候,您就不能按照刚才的方法找到您要查的字,而需要去根据“偏旁部首”查到您要找的字,然后根据这个字后的页码直接翻到某页来找到您要找的字。
但您结合“部首目录”和“检字表”而查到的字的排序并不是真正的正文的排序方法,比如您查“张”字,我们可以看到在查部首之后的检字表中“张”的页码是672页,检字表中“张”的上面是“驰”字,但页码却是63页,“张”的下面是“弩”字,页面是390页。
很显然,这些字并不是真正的分别位于“张”字的上下方,现在您看到的连续的“驰、张、弩”三字实际上就是他们在非聚集索引中的排序,是字典正文中的字在非聚集索引中的映射。
我们可以通过这种方式来找到您所需要的字,但它需要两个过程,先找到目录中的结果,然后再翻到您所需要的页码。
SQLServer2000里自动重建索引
SQLServer2000里自动重建索引在所有的OLTP环境里,实质上所有的索引都将随着时间产生碎片。
几乎所有的UPDA TE、INSERT、DELETE活动都将引起索引比最初创建时变得更无组织。
页拆分更多,大量的页上只有很少的数据,因此满足每个SELECT需要更多的I/O。
数据和索引的碎片越多,应用程序就会更慢,数据花费的空间就更多。
对此你能做什么呢?你可以定期的重建索引。
那么什么可以立即使用呢?基本上你可以使用数据库维护向导来执行索引重建,创建维护计划来完成。
如果你原意接受它固有的缺陷,这也可以使用。
首先,用维护向导来配置和完成索引重建是不慎重的。
它将重建每一个索引,不管它是否需要重建。
如果你有一个有很多大表和大量索引的大数据库,这会出问题,因为不加区别的重建整个数据库的索引会花费很长的时间,会使你的维护窗口不可用。
问题在于,要么全部重建,要么全部不重建,你根本不能以任何方式分批处理数据库的表。
那么有什么别的能做吗?你可以写一个脚本来重建选择的表的索引。
这样你能对数据库分批处理以减少在重建索引时你维护窗口执行的时间。
你需要将这个时间减小到最少,因为重建索引会对表执行排它锁,在重建索引期间禁止用户访问。
所以你可以每周的每个工作日的晚上重建五分之一表的索引,所有的索引至少一周做一次。
然而,这也是不慎重的――你将重建所有表的索引而不论数据和索引是否是有碎片。
这里推荐选择性的重建索引。
你需要检查表的索引和数据的碎片,保留数据,据此操作,重建索引要用确定的且区别对待的方式。
仅仅通过这样系统的方法,你可以仅重建那些实际需要重建的表的数据和索引。
而且也只有这种方式能最小化索引重建的时间。
在整个索引重建期间,如果你不想影响你的用户的话,减少索引重建的时间是至关重要的。
那么我们怎样可以解决呢?可以使用命令DBCC SHOWCONTIG()SQLServer2000比以前版本有一个大的改进就是这个简单而又至关重要的命令。
SQL Server2000简介
管理功能
管理服务器组
根据数据库服务器的不同执行功能,将多个服务器划分到不 同的服务器组,对服务器进行分类管理。SQL Server安装 后,自动创建了一个名为“SQL Server组”的服务器组。 新建一个服务器组 删除一个服务器组
注册SQL Server服务器
在服务器组下注册SQL Server服务器,创建SQL Server实 例 。安装过程中将本地计算机作为一个SQL Server服务器 注册在系统默认提供的“SQL Server组”中。 新建SQL Server注册(过程)
1sqlserver服务管理器的运行启动和停止组件服务服务器组件sqlserver数据库引擎mssqlserver服务sqlserver代理程序sqlserveragent服务microsoft搜索服务分布式事务处理协调器msdtc服务sqlserver数据库引擎mssqlserver服务sqlserver代理程序sqlserveragent服务运行在特定的时间或间隔调度发生的sqlserver任务
ห้องสมุดไป่ตู้
3、服务管理器
负责启动、暂停和停止SQL Server 2000的四种 服务。
1.SQL Server 服务管理器的运行 2. 启动和停止组件服务
服务器组件
1. SQL Server 数据库引擎(MSSQL Server 服务)
2. SQL Server 代理程序(SQL Server Agent 服务)
用于定义客户和服务器之间通信。 服务器网络实用工具用于配置服务器端的网络 连接和相关参数。 客户端网络实用工具用于进行客户端配置,要 根据服务器端网络实用程序进行相应地设置使 客户端连接到服务器上,才能保证数据的通信。
sql2000数据库
sql2000数据库SQL2000数据库是一种关系型数据库管理系统(RDBMS),由Microsoft公司开发。
它是SQL Server系列中的一个版本,于2000年发布。
SQL2000数据库是一种功能强大、稳定性高的数据库系统,被广泛应用于企业级应用程序和网站开发中。
SQL2000数据库具有许多强大的特性和功能,使其成为一种受欢迎的数据库选择。
下面将介绍一些SQL2000数据库的主要特点。
首先,SQL2000数据库提供了可靠性和稳定性。
它支持基于日志的事务处理,可以确保数据的完整性和一致性。
它还支持故障恢复机制,可以从硬件故障或软件错误中恢复。
其次,SQL2000数据库具有高性能。
它使用了一些性能优化技术,如索引和查询优化器,可以有效地处理大量的数据和复杂的查询。
它还支持并发访问控制,可以同时处理多个用户的请求。
此外,SQL2000数据库提供了强大的安全性功能。
它支持基于角色的安全模型,可以控制用户对数据库对象的访问权限。
它还提供了加密和身份验证功能,可以保护数据库中的敏感数据。
另外,SQL2000数据库具有良好的扩展性。
它支持分布式数据库和复制功能,可以在多个服务器上分布数据,并提供数据同步和冗余备份。
它还支持存储过程和触发器,可以在数据库内部实现业务逻辑。
此外,SQL2000数据库还提供了丰富的开发工具和编程接口。
它支持使用SQL语言进行数据库操作,并且支持多种编程语言,如C++、Java等。
它还支持.NET平台,可以与其他Microsoft的开发工具无缝集成。
总之,SQL2000数据库是一种功能强大、稳定性高的数据库系统。
它具有可靠性、高性能、强大的安全性、良好的扩展性和丰富的开发工具等特点。
无论是企业级应用程序还是网站开发,SQL2000数据库都是一个可靠的选择。
sql server 2000(百度百科简介)
sql server 2000SQL Server 是一个关系数据库管理系统,它最初是由Microsoft Sybase 和Ashton-Tate 三家公司共同开发的,于1988 年推出了第一个OS/2 版本。
在Windows NT 推出后,Microsoft与Sybase 在SQL Server 的开发上就分道扬镳了。
Microsoft 将SQL Server 移植到Windows NT系统上,专注于开发推广SQL Server 的Windows NT 版本;Sybase 则较专注于SQL Server在UNIX 操作系统上的应用。
在本书中介绍的是Microsoft SQL Server 以后简称为SQL Server或MS SQL Server。
SQL Server 2000 是Microsoft 公司推出的SQL Server 数据库管理系统的一个版本。
该版本继承了SQL Server 7.0 版本的优点同时又比它增加了许多更先进的功能,具有使用方便,可伸缩性好与相关软件集成程度高等优点,可跨越从运行Microsoft Windows 98 的膝上型电脑到运行Microsoft Windows 2000 的大型多处理器的服务器等多种平台使用。
SQL Server 2000 的特性Microsoft® SQL Server? 2000 的特性包括:1.Internet 集成。
SQL Server 2000 数据库引擎提供完整的XML 支持。
它还具有构成最大的Web 站点的数据存储组件所需的可伸缩性、可用性和安全功能。
SQL Server 2000 程序设计模型与 Windows DNA 构架集成,用以开发 Web 应用程序,并且SQL Server 2000 支持 English Query 和Microsoft 搜索服务等功能,在Web 应用程序中包含了用户友好的查询和强大的搜索功能。
第2章 SQL Server 2000简介
2.2.3 创建SQL Server 2000服务账 号
① Microsoft SQL Server服务:MS SQL Server 作为 Windows 服务启动和运行,可 以直接通过Transact-SQL管理和访问数据 库。 ② SQL Server Agent:SQL Server Agent 服务负责管理日常的维护任务。
个人版
开发版
仅客户端连接工具
河南工程学院 计算机科学与工程系
3.网络软件
如果使用的操作系统是Microsoft Windows NT、Windows 2000、Windows 98或 Windows 95,则无需再额外安装网 络软件。且SQL Server 2000 支持Windows NT Workstation、Windows 2000 Professional、Windows 98、Windows 95 Apple Macintosh OS/2 以及UNIX客户端连 接。
“安装类型”对话框
(11)如果用户选择了“自定义”安装, 则要在选择组件对话框中选择要安装的组 件,如图2-9所示。
河南工程学院 计算机科学与工程系
图2-9
河南工程学院 计算机科学与工程系
“选择组件”对话框
(12)用户也可以按照自己的实际需要, 选择不同组件的子组件,然后单击“下一 步”按钮。
河南工程学院 计算机科学与工程系
2.1.2 联合数据库服务器
SQL Server 2000 支持分布式的分区视 图可以跨越多个服务器水平地分割表。 ① SQL Server 2000 支持在同一计算机上 同时运行多个关系型数据库实例。每个实 例有其独立的系统和用户数据库集合。
sql server 2000(百度百科简介)
sql server 2000SQL Server 是一个关系数据库管理系统,它最初是由Microsoft Sybase 和Ashton-Tate 三家公司共同开发的,于1988 年推出了第一个OS/2 版本。
在Windows NT 推出后,Microsoft与Sybase 在SQL Server 的开发上就分道扬镳了。
Microsoft 将SQL Server 移植到Windows NT系统上,专注于开发推广SQL Server 的Windows NT 版本;Sybase 则较专注于SQL Server在UNIX 操作系统上的应用。
在本书中介绍的是Microsoft SQL Server 以后简称为SQL Server或MS SQL Server。
SQL Server 2000 是Microsoft 公司推出的SQL Server 数据库管理系统的一个版本。
该版本继承了SQL Server 7.0 版本的优点同时又比它增加了许多更先进的功能,具有使用方便,可伸缩性好与相关软件集成程度高等优点,可跨越从运行Microsoft Windows 98 的膝上型电脑到运行Microsoft Windows 2000 的大型多处理器的服务器等多种平台使用。
SQL Server 2000 的特性Microsoft® SQL Server? 2000 的特性包括:1.Internet 集成。
SQL Server 2000 数据库引擎提供完整的XML 支持。
它还具有构成最大的Web 站点的数据存储组件所需的可伸缩性、可用性和安全功能。
SQL Server 2000 程序设计模型与 Windows DNA 构架集成,用以开发 Web 应用程序,并且SQL Server 2000 支持 English Query 和Microsoft 搜索服务等功能,在Web 应用程序中包含了用户友好的查询和强大的搜索功能。
SQLServer性能优化(小总结)SQLServer2000SQLServer2000升华人生
SQLServer性能优化(小总结)SQLServer2000SQLServer2000升华人生1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。
2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:select id from t where num is null可以在num上设置默认值0,确保表中num列没有null值,然后这样查询:select id from t where num=03.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描。
4.应尽量避免在 where 子句中使用 or 来连接条件,否则将导致引擎放弃使用索引而进行全表扫描,如:select id from t where num=10 or num=20可以这样查询:select id from t where num=10union allselect id from t where num=205.in 和 not in 也要慎用,否则会导致全表扫描,如:select id from t where num in(1,2,3)对于连续的数值,能用 between 就不要用 in 了:select id from t where num between 1 and 36.下面的查询也将导致全表扫描:select id from t where name like ‘%abc%‘若要提高效率,可以考虑全文检索。
7.如果在 where 子句中使用参数,也会导致全表扫描。
因为SQL只有在运行时才会解析局部变量,但优化程序不能将访问计划的选择推迟到运行时;它必须在编译时进行选择。
然而,如果在编译时建立访问计划,变量的值还是未知的,因而无法作为索引选择的输入项。
SQL2000简介
SQL Server 2000简介
SQL
Server 2000是一个关系型数据库管 理系统(RDBMS),它使用TransactSQL语言在客户端计算机和SQL Server 2000计算机之间发送请求。RDBMS系 统包括数据库、数据库引擎和用来管理 RDBMS中数据和组件的一些应用程序。 RDBMS把数据组织成数据库中相应的行 和列。
安装、运行SQL Server 2000的软件需求
SQL Server 2000企业版必须运行于安装Windows NT Server Enterprise Edition 4.0或者Windows2000 Advanced Server以及更高版本的操作系统下。 SQL Server 2000标准版必须运行于安装Windows NT Server Enterprise Edition 4.0、Windows NT Server 4.0、 Windows 2000 Server以及更高版本的操作系统下。 SQL Server 2000 个人版可在多种操作系统下运行,如可运 行于Windows 9x, Windows NT 4.0或Windows 2000的 服务器版或工作站版的操作系统下。
SQL Server 2000 开发者版可运行于上述Windows 9x以外的 所有操作系统下。
[实例1.1]在Windows
XP系统上安装SQL Server 2000个人版系统。 操作步骤:
尽管SQL
Server 2000安装程序的设计已经 尽可能做到无问题,但是仍然可能存在某些 情况会影响SQL Server 2000的安装。为了 能够顺利地完成安装任务,首先需要了解安 装SQL Server 2000的硬件和软件方面的需 求。然后根据实际的情况选择一种合适的安 装方式进行安装。在安装中最常见的错误诊 断和解决比较简单,只要释放磁盘空间,关 闭其他应用程序或重新启动计算机以解除共 享文件的锁定就可以解决问题。如果安装失 败,安装程序会删除所有已安装组件。
简述sql server各版本的功能特征。
SQL Server是Microsoft开发的一款关系型数据库管理系统,自1995年发布以来,已经陆续推出了多个版本。
每个版本都有其独特的功能特征,本文将就SQL Server各个版本的功能特征做一个简要的介绍。
1. SQL Server 2000SQL Server 2000是SQL Server的第一个版本,它引入了许多重要的功能,包括以下几个方面:- 支持大型数据库,具有扩展性和性能优化的架构;- 引入了分析服务(Analysis Services),使得用户可以用OLAP(联机分析处理)来分析数据;- 数据挖掘工具的引入。
2. SQL Server 2005SQL Server 2005作为SQL Server 2000的升级版本,它在性能、安全性和编程功能等方面有了重大改进:- 引入了SQL Server Integration Services(SSIS),提供了更强大的数据集成功能;- 通过引入CLR(Common Language Runtime)支持,使开发人员可以使用C#或等编程语言来编写存储过程和函数;- 引入了数据库快照,提供了快速回滚和数据库恢复功能。
3. SQL Server 2008SQL Server 2008在存储、安全和可用性方面有了重大改进:- 引入了多个实例的支持,使得一个数据库服务器可以运行多个独立的数据库实例;- 引入了透明数据加密(TDE),使得数据库可以在不影响应用程序的情况下进行加密;- 引入了数据库压缩功能,使得可以更有效地使用存储空间。
4. SQL Server 2012SQL Server 2012在商业智能和云计算方面有了重大改进:- 引入了Power View,使得用户可以通过交互式可视化来分析数据;- 引入了SQL Server Data Tools(SSDT),使得开发人员可以更方便地进行数据库开发和部署;- 支持云计算功能,使得用户可以将数据库部署到Windows Azure云评台上。
SQL Server2000介绍
2010-6-22
SQL Server2000概述 概述
Server简介 SQL Server简介 Server安装 SQL Server安装 SQL Server数据库 Server数据库
2010-6-22
1
SQL Server 简介
Server的特点 SQL Server的特点 Server的主要服务 SQL Server的主要服务
2010-6-22
8
Server与 BackOffice服务器类集成 SQL Server与Microsoft BackOffice服务器类集成
Microsoft SNA系统网络体系结构协议:把 系统网络体系结构协议: 系统网络体系结构协议 运行SNA协议的 协议的IBM环境与基于 的网 环境与基于PC的网 运行 协议的 环境与基于 络链接起来,实现与大型机或AS/400的 络链接起来,实现与大型机或 的 应用与数据相集成. 应用与数据相集成. Microsoft系统管理服务器:管理计算机软件, 系统管理服务器: 系统管理服务器 管理计算机软件, 硬件和财产清单,并用SQL Server存储它的 硬件和财产清单,并用 存储它的 数据库. 数据库.
2010-6-22
16
2. SQL SERVER 的安装需求
下面列出软件需求: 下面列出软件需求:
SQL 版本 操作系统版本 WINDOWS2000 ADV ANCE SERVER WINDOWS2000 SERVER WINDOWS2000 PROFESSIONAL WINDOWS NT4.0 SERVER WINDOWS NT4.0 WORKSTATION WINDOWS 9X
基于SQLServer2000的数据库性能调整技术
基于 SQL Server 2000 的数据库性能调整技术引言数据库性能是数据库管理系统的核心问题之一。
SQL Server 2000 是一款广泛使用的关系型数据库管理系统,为了确保系统的高效运行,需要对数据库进行性能调整。
本文将介绍基于 SQL Server 2000 的数据库性能调整技术。
索引优化索引是提高数据库性能的关键因素之一。
SQL Server 2000 提供多种索引类型,包括聚集索引、非聚集索引和全文索引。
对于查询频繁的列,可以通过创建适当的索引来加快查询速度。
同时,需要注意索引的维护成本,避免过多的索引对性能造成负面影响。
为了评估索引的效果,可以使用 SQL Server 2000 提供的分析工具。
该工具可以帮助确定索引的使用情况,识别潜在的性能问题,并提供优化建议。
另外,可以通过监控数据库的活动和查询计划来判断索引是否被充分利用。
查询优化SQL Server 2000 提供了查询优化器来选择最优的查询计划。
但有时候,由于查询中包含复杂的逻辑操作或子查询,优化器不能保证总是生成最佳的查询计划。
在这种情况下,可以使用查询提示或查询计划分析器来手动优化查询。
查询提示可以通过在查询语句中使用特定的关键字来指导优化器选择特定的查询计划。
但要注意,过多的查询提示可能导致查询性能下降,并增加维护的复杂性。
查询计划分析器是 SQL Server 2000 的另一个工具,可以帮助分析查询计划的性能问题。
通过分析查询计划的详细信息,可以识别潜在的性能瓶颈,并针对性地进行优化。
系统配置优化除了索引和查询优化,还有一些系统配置参数可以对数据库性能产生影响。
SQL Server 2000 提供了一系列的配置选项,如内存分配、并发控制、连接池大小等。
合理配置这些参数可以提高数据库的性能。
在进行系统配置优化时,需要考虑系统的硬件资源和负载情况。
例如,增加内存分配可以提高缓存效果,减少磁盘 I/O 次数。
调整并发控制参数可以更好地利用系统的多核处理能力。
用SQLServer2000索引视图提高性能(下)
用SQLServer2000索引视图提高性能(下) 使用“索引微调向导” “索引微调向导”除建议使用基表的索引之外,还建议使用索引视图。
使用该向导可提高管理员确定索引和索引视图相结合的能力,从而优化针对数据库执行的典型混合查询的性能。
由于“索引微调向导”强制使用所有必需的SET 选项(以确保结果集的正确性),其索引视图将会成功创建。
不过,如果您的应用程序的选项没有按照要求设置,可能无法利用这些视图。
对那些参与索引视图定义的表执行的插入、更新或删除操作可能会失败。
维护索引视图SQL Server 自动维护索引视图,这与维护任何其它索引的情况类似。
对于普通索引而言,每个索引都直接连接到单个表。
通过对基础表执行每个INSERT、UPDATE 或DELETE 操作,索引相应地进行了更新,以便使存储在该索引中的值始终与表一致。
索引视图的维护与此类似。
不过,如果视图引用了多个表,则对这些表中的任何一个进行更新都需要更新索引视图。
与普通索引不同的是,对任何一个参与的表执行一次行插入操作都可能导致在索引视图中进行多次行插入操作。
更新和删除操作的情况也是如此。
因此,较之于维护表的索引,维护索引视图的代价更为高昂。
在SQL Server 2000 中,某些视图可以更新。
如果某个视图可以更新,则使用INSERT、UPDA TE 和DELETE 语句可通过该视图直接修改根本基表。
为某个视图创建索引并不会妨碍该视图的更新。
有关可更新视图的详细信息,请参阅关于SQL Server 2000 的“SQL Server 联机图书”中的“通过视图修改数据(英文)”。
据库中。
SQL Server 自动维护视图。
因此,对定义视图所据的基表的任何更改都可能引起视图索引的一处或多处更改,从而导致维护开销的增加。
一个视图获得的净性能提高就是视图提供的查询执行节约总计与存储和维护该视图耗费的成本之间的差。
估计视图将占用的所需存储空间要相对简单一些。
使用SQL Server索引视图来提高性能
摘要:本文档介绍SQL Server 2000 企业版的新功能- 索引视图。
讲解索引视图并讨论一些提高性能的具体方案。
什么是索引视图?许多年来,Microsoft® SQL Server™ 一直都提供创建虚拟表(称为视图)的功能。
在过去,这些视图主要有两种用途:提供安全机制,将用户限制在一个或多个基表中的数据的某个子集。
提供一种机制,允许开发人员定制用户如何才能以逻辑方式查看存储在基表中的数据。
SQL Server 2000 已经扩展了SQL Server 视图的功能,以提高系统性能。
它可以在一个视图上创建唯一的群集索引和非群集索引,可以改进最复杂查询的数据访问性能。
在SQL Server 2000 中,拥有唯一群集索引的视图被称为索引视图。
注意:索引视图只是SQL Server 2000 企业版和SQL Server 2000 开发人员版的一个功能。
从数据库管理系统(DBMS) 的观点来看,视图是数据(元数据)的说明。
创建典型视图时,通过SELECT 语句(定义一个显示为虚拟表的结果集)来定义元数据。
当其它查询的FROM 子句中引用了某个视图时,将从系统目录中检索该元数据,并对其进行扩展以代替该视图的引用。
在视图扩展之后,查询优化器会为正在执行的查询编译单个执行计划。
如果是非索引视图,视图在运行时将被实体化。
任何计算(如联接或聚合)都在为每个引用该视图的查询执行查询期间进行。
(视图并不总需要被完全实体化。
查询可以包含其它一些谓词、联接或聚合,以应用于该视图所引用的表和视图。
)在视图上创建了唯一的群集索引之后,视图的结果集会立即被实体化并持续保存在数据库的物理存储空间中,以便节省这种操作所占用的大量资源。
在执行查询时,有两种方法可以使用索引视图。
查询可直接引用索引视图,更重要的是,如果查询优化器确定视图能够替换为查询的部分或全部,而且这是低成本的查询计划,则可以选择索引视图。
第二种情况是使用索引视图代替基础表及其普通索引。
SQL server2000的使用 索引
例如:为学生基本表中的姓名创建索引。 CREATE INDEX 姓名_INDEX ON 学生QL语句删除索引 1.使用SQL语句删除索引 DROP INDEX 表名.索引名 表名. 例如:删除学生基本表中的姓名索引。 DROP INDEX 学生基本表.姓名_INDEX 学生基本表.姓名_INDEX 2.使用企业管理器删除索引 2.使用企业管理器删除索引 具体看演示。
索引
一、管理索引 在SQL 中,管理索引有三种方法:一是使用创建索 引向导;二是使用企业管理器;三是使用SQL语 引向导;二是使用企业管理器;三是使用SQL语 句。 1.使用创建索引向导创建一个新的索引 1.使用创建索引向导创建一个新的索引 使用运行向导来完成. 使用运行向导来完成. 2.使用企业管理器管理索引 2.使用企业管理器管理索引 在企业管理器中,不仅可以建立索引, 在企业管理器中,不仅可以建立索引,而且还可以更好 地管理索引. 地管理索引.
索引
索引概念
索引是辅助数据,它的作用只是帮助用户在 数据库中快速地定位要查询的数据行。 索引是由索引项和索引指针两部分组成。 其中:索引项是指要查找的关键字段,例如 学号、姓名等,索引项按照一定的逻辑关 系排序;索引指针是索引表中指向对应数 据项的地址。 索引的主要作用:是提高和改善数据库系统 查询处理能力,加快信息检索速度。因为 索引是数据库中基本表的辅助数据,所以 一张表上可以没有索引,也可以建立一个 索引或者多个索引。
例:删除刚刚创建的学生基本表_INDEX_姓名 删除刚刚创建的学生基本表_INDEX_姓名 选择所有任务—管理索引来完成. 选择所有任务—管理索引来完成. 3.使用SQL语句完成创建 3.使用SQL语句完成创建 CREATE [UNIQUE] [CLUSTERED|NONCLUSTERED] INDEX 索引名 ON 表名(列[ASC|DESC]) 表名(列[ASC|DESC]) 其中: [UNIQUE]表示创建唯一索引。 [UNIQUE]表示创建唯一索引。 [CLUSTERED|NONCLUSTERED]指定创建 [CLUSTERED|NONCLUSTERED]指定创建 聚集索引或非聚集索引。
浅析SQL Server 2000中索引对查询性能的影响
浅析SQL Server 2000中索引对查询性能的影响
裘旭光;刘晶;姚楠
【期刊名称】《软件》
【年(卷),期】2003(000)007
【摘要】本文通过说明SQL server2000中查询优化器的工作原理,介绍了查询优化器如何针对不同的查询语句和索引进行优化,并给出了针对数据库表如何设计索引和编写性能优化的查询的一般规律。
【总页数】3页(P73-75)
【作者】裘旭光;刘晶;姚楠
【作者单位】天津工业大学,天津300160;天津工业大学计算机技术与自动化学院,天津300160;天津工业大学计算中心
【正文语种】中文
【中图分类】TP311
【相关文献】
1.从浅究SQL Server索引出发谈浙江铁通大型数据库查询优化问题 [J], 韩超
2.查询语句对SQL Server数据库查询性能优化分析 [J], 谷震离
3.基于SQL Server和Abaqus的关节轴承数据查询与性能分析系统 [J], 吕帅;沈雪瑾;黄宇锋
4.SQL Server查询性能分析与查询效率提高 [J], 彭勇
5.浅析SQL Server 2000索引视图:使用索引视图提高查询性能 [J], 宋立桓
因版权原因,仅展示原文概要,查看原文内容请购买。
MicrosoftSQLServer2000全文索引为在字符串数据中进行复
下面的示例返回包含短语 "sasquatch ale" 或 "steeleye stout" 的所有产品。 USE Northwind GO SELECT ProductName FROM Products WHERE CONTAINS(ProductName, ' "sasquatch ale" OR "steeleye stout" ') GO
为全文目录中的表安排全文索引的位置是非常重要的。在为 全文目录指定表时,应该注意下列基本原则:
始终选择可用于全文唯一键的最小唯一索引。(4 个字节且 基于整数的索引是最佳的。)这将显著减少文件系统中 Microsoft 搜索服务所需要的资源。如果主键很大(超过 100 字节),可以考虑选择表中其它唯一索引(或创建另一 个唯一索引)作为全文唯一键。否则,如果全文唯一键的大 小达到允许的上限(450 字节),全文填充将无法继续进行。 如果进行索引的表有成千上万行,请将该表指定给其自己的 全文目录。 应该考虑对其进行全文索引的表中发生的更改数以及表的行 数。如果要更改的总行数,加上上次全文填充期间表中出现 的行数达到成千上万行,请将该表指定给其自己的全文目录。
在所有这些级别上,可使用工具检索元数据和状态信息。
和常规 SQL 索引一样,当在相关表中修改数据时,可自动更 新全文索引。或者,也可以适当的间隔手工重新填充全文索 引。这种重写可能既耗时又大量占用资源,因此,在数据库 活动较少时,这通常是在后台运行的异步进程。
应将具有相同更新特性的表(如更改少的与更改多的,或在 一天的特定时段内频繁更改的表)组合在一起,并分配给相 同的全文目录。通过以此方法设置全文目录填充调度,使得 全文索引和表保持同步,且在数据库活动较多时不对数据库 服务器的资源使用产生负面影响。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SQL Server 2000索引及其特性的简析Tang, Dunyou, 28 May 2003摘要本文简要地介绍了SQL Server 2000聚族(Clustered)和非聚族〔Nonclustered〕索引(Index)的机制以及其物理结构。
并且,通过一个演示数据库(Database)的索引建立,数据的测试, 以及测试的结果,归纳了两种索引的一些主要特性。
使读者了解在设计数据库和索引时值得注意考虑的事项。
目录1. 引言2. SQL Server 2000 索引的概述3. 测试解析4. 测试结果的归纳附录A: SQL Server 2000构造体系涉及索引的主要技术指标的上限附录B: 批文件(dtindexlab2k1.bat)附录C: SQL脚本程序(dtBuildDBTest1.sql)附录D: SQL脚本程序(dtBuildTableStock.sql)附录E: 数据格式文件(dtbcpv2k.fmt)附录F: 数据文本文件(dtStockData.txt)附录H: SQL脚本程序(IndexTest.SQL)参考信息1. 引言建立索引(Index)是一项矛盾的对立统一。
理论上讲,从数据的检索(Search),查询(Query)方面来说,只要存储空间允许,建立的索引越多,检索的速度就越快,效率也越高。
但另一方面,从对数据的添加(Add),删除(Delete)和修改(Modify)的角度来说,索引又应控制在越少越好。
通俗的讲,每个索引实际上是一个系统管理表。
每次添加,删除和修改数据,SQL Server都自动更新这张索引表。
这就反过来影响了检索的速度和性能。
所以,设计和建立索引不仅是设计(Design),开发(Developing),调试(Tuning)关系型数据库〔Relational Database〕的重要组成部分,而且是最普遍,最困难的问题之一。
SQL Server 2000 (例如,Enterprises 版本)提供了一些方便,有效的GUI (Graph User Interface)辅助工具像Enterprise Manager, Query Analyser, Profiler 等,来帮助开发者〔Developer〕和管理者(DBA-Database Administrator)开发,调试,优化以及管理数据库。
本文不是就如何设计索引和性能的优化调试作具体介绍,而是想通过一些SQL 脚本(SQL Scripts)的演示来说明索引的一些特性,帮助加深对索引的理解,以及在设计索引需考虑的问题。
2. SQL Server 2000 索引的概述索引是一种有效组织数据记录的方法。
索引建立的好坏直接影响数据库的运行性能(Performance)。
特别是对于大型,复杂的关系型数据库,索引的设计和建立更是必不可少。
因为索引的设计以及关系型数据库性能的优化调试,没有固定的模式可寻,所以,从某种意义上说,索引的设计和数据库性能的优化调试较数据库本身的设计(数据库结构设计:数据表(Table)以及其关系正交化(Normalization))更为困难。
SQL Server 的索引根据其数据存储的物理结构分为聚族和非聚族索引。
无论是聚族还是非聚族索引存储的机理都是按照平衡树(Balanced-tree,或B-tree)的索引结构实现的。
其主要特点是在添加任何新页时,数据都是在旧页和新页上平衡分配。
SQL Server数据存储的最小物理单元称为页(Page)。
SQL Server 2000,将页的尺寸由原来的2K(版本7.0)增加到8K。
各页之间都以双向链表实现。
B树索引结构的搜寻是逐级进行。
及从根(Root),中间级(Intimidate),叶(Leaf),最后找到数据(Data)。
打个简单的比喻,聚族索引就像一本英文字典。
所有的数据都以字母排序。
在查找单词时,只要根据单词字母的排序直接对页进行查找。
所以,每个数据表只能有一个聚族索引。
而非聚族索引可被看作一本书。
当查找内容时,可快速地通过目录找到查找内容的页码,再根据页码找到查寻的内容。
此外,也可以对全书进行浏览查找。
SQL Server 2000的每个数据表最多能有249个非聚族索引。
显而易见,一般情况下,聚族索引查找速度要比非聚族索引快。
由于篇幅有限,这里不作深层展开。
对此问题感兴趣的读者,可参阅本文最后所列的或其他的有关书籍。
3. 测试的解析本文的测试基于一个取名为股票〔Stocks〕的演示数据表(Table)。
该表很简单,只含两个数据项〔field〕,股票-StockName和股票的编号-SedolCode〖1〗。
表中的数据是从伦敦国际股市交易所列有的股票中随取了12,000种。
〖1〗SEDOL 的是Stock Exchange Daily Official List的缩写。
Sedol Code是伦敦股市常用的股票编码之一。
为了读者方便起见,本文从附录B到附录F,列出了所有用于创建演示数据库和数据表的批文件(Batch file)dtindexlab2k1.bat和SQL脚本程序(Scripts)。
如果读者手头没有现成的数据或觉得用批文件和BCP太麻烦,本文在附录G中给出了一个SQL脚本直接建立一个数据库和一个模拟数据表(包含12,000个模拟数据)。
这同样可以达到测试并分析结果的目的。
对于批文件与批量复制程序BCP不熟悉的读者,可参阅本作者的「批文件与BCP一种复制大批量数据的方法」一文,也可参阅本文最后所列的或其他的有关书籍。
注:为了使所有的程序能在你的PC上成功地运行,请按你具体的情况对机器名,文件路径,数据库名,用户名以及口令作相应的替换。
在建立了数据库TEST1和数据表Stocks后,就可以来建立和测试不同的索引了。
下面就脚本程序(IndexTest.SQL)如何建立各种不同的索引及其组合,并测试各种情况下的一些指标逐步进行讨论。
注: 附录H列出了完整SQL脚本程序(IndexTest.SQL)。
1)打开Query Analyser,并关闭方案开关SHOWPLAN_ALL。
SET SHOWPLAN_ALL OFF2)建立一个临时表,并保留测试将要重复删除和插入的数据。
use testdrop table tempstCREATE TABLE tempdc (stockname varchar(30), sedolcode varchar(10))INSERT tempst SELECT * FROM stocks WHERE sedolcode = '4455'A. 无任何索引的数据表3)删除已有的非聚族索引st_ncsedolcode。
DROP INDEX stocks.st_ncsedolcode4)打开出入通道,运行时间的统计开关STATISTICS IO,STATISTICSTIME。
SET STATISTICS IO ONSET STATISTICS TIME ON5)利用系统的存储过程(Stored Procedure)sp_spaceused列出并观测数据和索引占用的存储空间。
sp_spaceused stocks6)执行对数据表的搜寻,删除和插入数据。
观测逻辑读取次数和运行时间。
print '** Select'SELECT * FROM stocks WHERE sedolcode = '4455'print '** Delete'DELETE FROM stocks WHERE sedolcode = '4455'print '** Insert'INSERT stocks SELECT * FROM tempstB. 含有一个聚族索引的数据表7)对SedolCode项(Field)建立一个聚族索引st_clsedolcode。
CREATE CLUSTERED INDEX st_clsedolcode ON stocks(sedolcode)8)重复步骤5,6。
即在该表状况下,列出并观测数据和索引占用的存储空间。
执行对数据表的搜寻,删除和插入数据,观测分别的逻辑读取次数和运行时间。
C. 含有一个非聚族索引的数据表9)删除已有的聚族索引st_clsedolcode并对SedolCode项建立一个非聚族索引st_ncsedolcode。
DROP INDEX stocks.st_clsedolcodeCREATE INDEX st_ncsedolcode ON stocks(sedolcode)10)重复步骤5,6。
列出和观测在该表状况下,数据和索引占用的存储空间。
在执行对数据表的搜寻,删除和插入数据时,分别的逻辑读取次数和运行时间。
D. 含有一个聚族索引和一个非聚族索引的数据表11)对SedolCode项加入一个聚族索引st_clsedolcode。
CREATE CLUSTERED INDEX st_clsedolcode ON stocks(sedolcode)12)同样,重复步骤5,6。
列出并观测数据和索引占用的存储空间。
执行对数据表的搜寻,删除和插入数据。
观测在该表状况下,分别的逻辑读取次数和运行时间。
E. 含有一个聚族索引和二个非聚族索引的数据表13)这里对SedolCode项加入第二个非聚族索引st_ncsedolcode2。
CREATE INDEX st_ncsedolcode2 ON stocks(sedolcode)14)再次重复步骤5,6。
列出并观测数据和索引占用的存储空间。
执行对数据表的搜寻,删除和插入数据,观测在该状况下,逻辑读取次数和运行时间分别的变化。
F. 含有一个聚族索引和三个非聚族索引的数据表15)这里对项StockName加入了一个非聚族索引st_ncstockname。
CREATE INDEX st_ncstockname ON stocks(stockname)16)最后,再次重复步骤5,6。
得出各项结果。
4. 测试结果的归纳表1列出了各种情况下的测试结果。
表1:测试结果现在,只要对表1的数据略加分析,就不难归纳出下面的一些结论:1)在一个数据表中,随着索引的增加,数据表所占用的存储空间将随着增加。
可以想像这是自然的!2)聚族索引比非聚族的效率要高-即逻辑读取次数要少,检索的响应时间要快。
3)对同一表格项(Field)来说,非聚族索引所占用的存储空间要多于聚族索引所占用的存储空间。
4)在一个数据表中,建立的非聚族索引越多,在使用删除(DELETE)和插入(INSERT)时,读取的次数就越多。
从该表中,你还捕捉到一些什么其他结论?从这些结论中你又可以得到一些什么推论?希望这些对读者在今后设计数据库和索引时有些帮助。