SQLServer学习-- SQLServer
- 中文名
- sql server 数据库
- 外文名
- SQL Server
- 分 类
- 关系型数据库管理系统标准语言
- 公 司
- 美国Microsoft公司
概述
程度高等优点,可跨越从运行Microsoft Windows 98 的膝上型电脑到运行Microsoft Windows 2000 的大型多处理器的服务器等多种平台使用。
版本介绍
SQL Server 2000
SQL Server 2005
使用SQL Server2005,开发人员通过使用相似的语言,例如微软的VisualC#.net和微软的VisualBasic,将能够创立数据库对象。开发人员还将能够建立两个新的对象--用户定义的类和集合。
XML技术
在使用本地网络和互联网的情况下,在不同应用软件之间散步数据的时候,可扩展标记语言(标准通用标记语言的子集)是一个重要的标准。SQL Server2005将会自身支持存储和查询可扩展标记语言文件。
ADO. NET2.0版本
从对SQL类的新的支持,到多活动结果集(MARS),SQL Server2005中的ADO . NET将推动数据集的存取和操纵,实现更大的可升级性和灵活性。
增强的安全性
SQL Server2005中的新安全模式将用户和对象分开,提供fine-grainAccess存取、并允许对数据存取进行更大的控制。另外,所有系统表格将作为视图得到实施,对数据库系统对象进行了更大程度的控制。
Transact-SQL的增强性能
SQL Server2005为开发可升级的数据库应用软件,提供了新的语言功能。这些增强的性能包括处理错误、递归查询功能、关系运算符PIVOT,APPLY,ROW_NUMBER和其他数据列排行功能,等等。
SQL服务中介
SQL服务中介将为大型、营业范围内的应用软件,提供一个分布式的、异步应用框架。
通告服务
通告服务使得业务可以建立丰富的通知应用软件,向任何设备,提供个人化的和及时的信息,例如股市警报、新闻订阅、包裹递送警报、航空公司票价等。在
SQL
Server2005中,通告服务和其他技术更加紧密地融合在了一起,这些技术包括分析服务、SQLServerManagementStudio.
Web服务
使用SQL Server2005,开发人员将能够在数据库层开发Web服务,将SQL Server当作一个超文本传输协议(HTTP)侦听器,并且为网络服务中心应用软件提供一个新型的数据存取功能。
报表服务
利用SQL Server2005,报表服务可以提供报表控制,可以通过VisualStudio2005发行。
全文搜索功能的增强
SQL Server2005将支持丰富的全文应用软件。服务器的编目功能将得到增强,对编目的对象提供更大的灵活性。查询性能和可升级性将大幅得到改进,同时新的管理工具将为有关全文功能的运行,提供更深入的了解。
引入了一些“Studio”帮助实现开发和管理任务:SQL Server Management Studio 和 Business
Intelligence Development Studio。在 Management Studio 中,可以开发和管理 SQL Server
数据库引擎 与通知解决方案,管理已部署的 Analysis Services 解决方案,管理和运行 Integration Services
包,以及管理报表服务器和 Reporting Services 报表与报表模型。在 BI Development Studio
中,可以使用以下项目来开发商业智能解决方案:使用 Analysis Services 项目开发多维数据集、维度和挖掘结构;使用
Reporting Services 项目创建报表;使用报表模型项目定义报表的模型;使用 Integration Services 项目创建包。
包括创建用于存储数据的表和用于查看、管理和保护数据安全的数据库对象(如索引、视图和存储过程)。可以使用 SQL Server
Management Studio 管理数据库对象,使用 SQL Server Profiler 捕获服务器事件。
Services,可以设计、创建和管理包含来自多个数据源的详细数据和聚合数据的多维结构,其中这些数据源(如关系数据库)都存在于内置计算支持的单个
统一逻辑模型中。Analysis Services
为根据统一的数据模型构建的大量数据提供快速、直观、由上至下的分析,这样可以采用多种语言和货币向用户提供数据。Analysis Services
使用数据仓库、数据集市、生产数据库和操作数据存储区,以支持历史数据和实时数据分析。
Services (SSIS) 是 SQL Server 2005 的提取、转换和加载 (ETL) 组件。它取代了早期的 SQL Server
ETL 组件 Data Transformation Services (DTS)。
是用于生成企业级数据集成和数据转换解决方案的平台。使用 Integration Services
可解决复杂的业务问题,方法是复制或下载文件,发送电子邮件以响应事件,更新数据仓库,清除和挖掘数据以及管理 SQL Server
对象和数据。这些包可以独立使用,也可以与其他包一起使用以满足复杂的业务需求。Integration Services
可以提取和转换来自多种源(如 XML 数据文件、平面文件和关系数据源)的数据,然后将这些数据加载到一个或多个目标。
包含一组丰富的内置任务和转换、用于构造包的工具以及用于运行和管理包的 Integration Services 服务。可以使用
Integration Services 图形工具来创建解决方案,此时无需编写一行代码;也可以对 Integration Services
对象模型进行编程,通过编程方式创建包并编写自定义任务以及其他包对象的代码。
库间进行同步操作以维持一致性。使用复制可以将数据通过局域网、广域网、拨号连接、无线连接和 Internet
分发到不同位置以及分发给远程用户或移动用户。SQL Server 提供以下三种功能各不相同的复制类型:事务复制、合并复制和快照复制。
可用性、数据仓库和报告、集成多个站点的数据、集成异类数据以及卸载批处理)。合并复制主要为可能存在数据冲突的移动应用程序或分步式服务器应用程序而设
计的。常见应用场景包括:与移动用户交换数据、POS(消费者销售点)应用程序以及集成来自多个站点的数据。快照复制用于为事务性复制和合并复制提供初始
数据集;在适合数据完全刷新时也可以使用快照复制。利用这三种复制,SQL Server 提供功能强大且灵活的系统,以便使企业范围的数据同步。
(SSRS) 是基于服务器的报表平台,提供来自关系和多维数据源的综合数据报表。Reporting Services
包含处理组件、一整套可用于创建和管理报表的工具和允许开发人员在自定义应用程序中集成和扩展数据和报表处理的应用程序编程接口
(API)。生成的报表可以基于 SQL Server、Analysis Services、Oracle 或任何 Microsoft .NET
Framework 数据访问接口(如 ODBC 或 OLE DB)提供的关系数据或多维数据。
Services,可以创建交互式报表、表格报表或自由格式报表,可以根据计划的时间间隔检索数据或在用户打开报表时按需检索数据。Reporting
Services 还允许用户基于预定义模型创建即席报表,并且允许通过交互方式浏览模型中的数据。所有报表可以按桌面格式或面向 Web
的格式呈现。您可以从许多查看格式中进行选择,以数据操作或打印的首选格式按需呈现报表。
Services 是用于开发生成并发送通知的应用程序的平台,也是运行这些应用程序的引擎。可以使用 Notification Services
生成并向大量订阅方及时发送个性化的消息,还可以向各种各样的应用程序和设备传递消息。
平台,可以开发功能齐全的通知应用程序。订阅表达了订阅方在特定信息(称为事件)方面的兴趣,可以根据事件的到达或计划对其进行评估。事件数据本身可以源
自数据库内部、其他数据库或外部源。通知是事件和订阅匹配的结果,在发送给订阅方之前,可以采用各种格式。
Server 数据库引擎协同工作。数据库引擎存储应用程序数据,并执行事件和订阅之间的匹配。Notification Services
引擎控制数据流和数据处理,并且可以扩展到多台计算机。这可以改进要求极高的应用程序的性能。
表中基于纯字符的数据进行全文查询所需的功能。全文查询可以包括字词和短语,或者一个字词或短语的多种形式。使用全文搜索可以快速、灵活地为存储在
Microsoft SQL Server 数据库中的文本数据的基于关键字的查询创建索引。在 SQL Server 2005
中,全文搜索提供企业级搜索功能。
大量非结构化的文本数据进行查询时,使用全文搜索获得的性能优势会得到充分的表现。例如,对数百万行文本数据执行的 Transact-SQL LIKE
查询可能需要花费几分钟时间才能返回结果;但对同样的数据,全文查询只需要几秒或更少的时间,具体取决于返回的行数。可以对存储在
char、varchar 或 nvarchar 列中的数据或存储在 varbinary(max) 或 image 列中的格式化二进制数据(如
Microsoft Word 文档)创建全文搜索。
为消息和队列应用程序提供 SQL Server
数据库引擎本地支持。这使开发人员可以轻松地创建使用数据库引擎组件在完全不同的数据库之间进行通信的复杂应用程序。开发人员可以使用 Service
Broker 轻松生成可靠的分布式应用程序。
的应用程序开发人员无需编写复杂的内部通信和消息,即可跨多个数据库分发数据工作负荷。由于 Service Broker
处理会话上下文中的通信路径,所以降低了开发和测试工作。同时还提高性能。例如,支持网站的前端数据库可以记录信息并将处理密集型任务发送到后端数据库以
进行排队。Service Broker 确保在事务上下文中管理所有任务以确保可靠性和技术一致性。
SQL Server 2008
2008是一个重大的产品版本,它推出了许多新的特性和关键的改进,使得它成为至今为止的最强大和最全面的Microsoft SQL
Server版本。这篇文章详细介绍了Microsoft SQL Server 2008中的新的特性、优点和功能。
microsoft sql server
数据隐私的要求。简单的数据加密的好处包括使用任何范围或模糊查询搜索加密的数据、加强数据安全性以防止未授权的用户访问、还有数据加密。这些可以在不改变已有的应用程序的情况下进行。
所有信息,还包括关于什么时候对数据进行读取的信息。Microsoft SQL Server
2008具有像服务器中加强的审查的配置和管理这样的功能,这使得公司可以满足各种规范需求。Microsoft SQL Server
2008还可以定义每一个数据库的审查规范,所以审查配置可以为每一个数据库作单独的制定。为指定对象作审查配置使审查的执行性能更好,配置的灵活性也更
高。
2008为我们带来了一些更强大的审计功能;或许其中最重要的一个就是变更数据捕获(CDC)。使用CDC,你能够捕获和记录发生在你数据库中的任意
INSERT、UPDATE或DELETE等操作。一旦你为一个数据库启用了CDC功能,你可以对该数据库中的一个表进行跟踪记录。SQL
Server会记录对这些表进行修改的信息,并将其写到启用CDC功能的数据库的某些系统表中。当一个用户针对你的数据表运行INSERT、UPDATE
或UPDATE操作时,相关操作事务和相关数据就会被记录下来。对于INSERT来说,插入的数值会被记录,而对于DELETE来说,被删除的值同样也会
被记录。UPDATE的操作略微有点不同。更新前后的数据都会被记录。通过使用CDC功能,你不仅可以知道对数据进行了何种操作,你还可以恢复因误操作或
错误的程序所造成的丢失数据。这是SQL
Server非常强大的一个新增功能,它为数据审计提供了一个非常有用的功能,在此以前,我们一般要借助于第三方工具来实现这一功能。
SQL Server2012
2012
RTM(Release-to-Manufacturing)版本,面向公众的版本将于4月1日发布。微软此次版本发布的口号是“大数据”来替代“云”的
概念,微软对SQL Server 2012的定位是帮助企业处理每年大量的数据(Z级别)增长。
Server 2012更加具备可伸缩性、更加可靠以及前所未有的高性能;而Power
View为用户对数据的转换和勘探提供强大的交互操作能力,并协助做出正确的决策。即将推出三个主要版本和很多新特征,同时微软也透露了SQL
Server 2012的价格和版本计划,其中增加一个新的智能商业包。
2012主要版本包括新的商务智能版本,增加Power
View数据查找工具和数据质量服务,企业版本则提高安全性可用性,以及从大数据到StreamInsight复杂事件处理,再到新的可视化数据和分析工
具等,都将成为SQL Server 2012最终版本的一部分。
这个功能类似 Oracle 的 Real Application Testing 功能。不同的是 SQL Server
企业版自带了这个功能,而用 Oracle
的话,你还得额外购买这个功能。这个功能可以让你记录生产环境的工作状况,然后在另外一个环境重现这些工作状况。
PASS(Professional Association for SQL Server)会议,微软宣布了与 Hadoop 的提供商
Cloudera 的合作。一是提供 Linux 版本的 SQL Server ODBC 驱动。主要的合作内容是微软开发 Hadoop
的连接器,也就是 SQL Server 也跨入了 NoSQL 领域。
2014
2014中最吸引人关注的特性就是内存在线事务处理(OLTP)引擎,项目代号为“Hekaton”。内存OLTP整合到SQL
Server的核心数据库管理组件中,它不需要特殊的硬件或软件,就能够无缝整合现有的事务过程。一旦将表声明为内存最优化,那么内存OLTP引擎就将在
内存中管理表和保存数据。当它们需要其他表数据时,它们就可以使用查询访问数据。事实上,一个查询会同时引用内存优化表和常规表。
2014增强内存相关功能的另一个方面是允许将SQL
Server内存缓冲池扩展到固态硬盘(SSD)或SSD阵列上。扩展缓冲池能够实现更快的分页速度,但是又降低了数据风险,因为只有整理过的页才会存储
在SSD上。这一点对于支持繁重读负载的OLTP操作特别有好处。LSI Nytro闪存卡与最新SQL Server
2014协同工作,降低延迟、提高吞吐量和可靠性,消除IO瓶颈。
2014中,列存储索引功能也得到更新。列存储索引最初是在SQL Server
2012引入的,目的是支持高度聚合数据仓库查询。基于xVelocity存储技术,这些索引以列的格式存储数据,同时又利用xVelocity的内存管
理功能和高级压缩算法。然而,SQL Server 2012的列存储索引不能使用集群,也不能更新。
2014定位为混合云平台,这意味着SQL Server数据库更容易整合Windows Azure。例如,从SQL Server 2012
Cumulative Update 2开始,您就能够将数据库备份到Windows Azure BLOB存储服务上。SQL Server
2014引入了智能备份(Smart Backups)概念,其中SQL Server将自动决定要执行完全备份还是差异备份,以及何时执行备份。SQL
Server 2014还允许将本地数据库的数据和日志文件存储到Azure存储上。此外,SQL Server Management
Studio提供了一个部署向导,它可以帮助您轻松地将现有本地数据库迁移到Azure虚拟机上。
2014还增加了一个功能,允许将Azure虚拟机作为一个Always On可用性组副本。可用性组(Availability
Groups)特性最初在SQL Server 2012引入,提供了支持高可用性数据库的故障恢复服务。它由1个主副本和1~4个次副本(SQL
Server 2014增加到8个)构成。主副本可以运行一个或多个数据库;次副本则包含多个数据库副本。Windows
Azure基础架构服务支持在运行SQL Server的Azure虚拟机中使用可用性组。这意味着您用一个虚拟机作为次副本,然后支持自动故障恢复。
愿景
体系
分布进行操作。这种方法产生不必要的代价和复杂性。在Internet中,Oracle已经发现了一个较好的答案。在Internet
Computing的多层(multi-tiered)体系结构中,集中(centralization)可以简化应用的部署和维护,数据的管理和备份,
并向客户提供了高级的性能、安全性与可靠性,结果使总的操作成本更低。Oracle具有使所有数据和文档存储在少数几个高性能数据库的能力,这种能力使客
户可以集中管理他们所有的数据,并且信息管理和访问更加容易、可靠且价格更加便宜。
开放
Server只在Windows上运行,MicroSoft这种专有策略的目标是将客户锁定到Windows环境中,限制客户通过选择一个开放的基于标准
的解决方案来获取革新和价格竞争带来的好处。此外,人们也都知道,Windows平台本身的可靠性、安全性和可伸缩性也是有限的。Oracle能在所有主
要的平台(其中包括Windows)上运行,并且完全支持所有的工业标准,所以,客户可以利用很多种第三方应用程序、工具、网关和管理实用程序。Oracle采用开放策略,它使得客户可以选择一种最适合他们特定需要的解决方案。利用Oracle8i,操作系统实质上将变得无关紧要。Oracle8i的Internet文件系统(iFS)是一种突破,这种突破性给所有数据类型提供了一种易于使用的数据管理接口,这样减少了客户对Windows之类的专用操作系统。
可伸缩性
更加关心该产品处理日益增多的用户数和数据卷mes)的能力。Oracle在下列两个方面提供了一个优越的可伸 簇:Oracle并行服务器通过使一组节
点共享同一簇中的工作负载来扩展Windows
NT的能力,Oracle提供具有高可用性和高伸缩性的簇解决方案,而Microsoft只提供克服错误的簇。根据Gartner
Group的一份报告(10/97),Microsoft在2001年以前将不会有一个可伸缩的簇解决方案。Oracle自从1997年以来就已经有这种
能力。伸缩到其他操作系统:
因为Oracle是一个开放的解决方案,客户可以从他们的系统移到Unix或另一个操作系统,当Windows NT不能满足他们的需要。SQL
Server与单个平台的结合意味着,当一个客户达到Windows
NT的限制时,除了放弃他们的系统并移到一个新平台上的一个新数据库以外??一个最能节省时间和金钱的建议,他们再也没有其他选择。
安全性
危险。对于数据库的安全要求决不会比以前更高,而SQL
Server7.0还没有获得任何类型的安全证书。相比之下,Oracle是唯一获得最高认证级别的ISO标准认证的数据库。Oracle高级的安全特性
考虑了强制实施的细小权限,先进的审查,增强的访问控制,安全的分布是处理与复制,以及使用附加的外部签发机制的能力。SQL Server7.0没有这些特性。
可扩展性
音频、视频和地理信息,Oracle8i的interMedia使客户能够利用Web的多媒体特性。相比之下,Microsoft SQL Server
7.0对非传统的数据类型缺乏内置的支持。作为一种替代的策略,Microsoft提倡将非传统的数据存储到单独的服务器里的平面(flat)文件中,然
后使用OLE-DB将它们链接在一起。使用这种策略,集成在Web中发现的各种数据类型,将会产生复杂的、不安全的、维护量大的数据包(mess),这种
数据包缺乏事物的完整性。
性能
于过多的等待时间而丢失。根据事物处理委员会(TPC)审查的标准与结果,Oracle提供了比SQL
Server7.0更高级的性能。到1998年11月为止,Oracle一直是Windows
NT中TPC-D和TPC-C标准的世界记录保持者。实际上,Oracle的NT TPC-C结果几乎比Microsoft的快两倍。Microsoft
从来没有宣布一个TPC-D结果,这就意味着尽管SQL
Server7.0中有假定的环境,但它仍然不适合于数据仓库应用。Oracle也保持了SAP,Baan和Peoplesoft标准的世界记录。通过一
贯地演示正式标准与实际情况之间的性能关系,acle已被证明,它可以处理最紧迫的数据仓库和OLTP应用的工作负。
操作简单
提供一个集成的管理控制台来集中管理多个服务器。客户也可以单独购买所有三个或其中任何一个可选的管理包,这些管理包提供了高级的功能来调整和诊断数据
库,管理数据库环PC Week已经说过,“SQL Server7.0并没有向客户提供其竞争对手尚未提供的任何新东西。”根据Information
Week(9/14/98),“即使在经济的市场中:Windows NT环境,SQLServer7仍然不是OLTP数据库竞争者的对手。”在SQL
Server7.0中,许多关键任务数据库应用所必需的功能(高可用性/可伸缩性、安全、性能等)仍然没有。Microsoft正在努力地追赶
Oracle又一个技术领先的传统,新发布的Oracle8i也不例外。通过诸如iFS、数据库Java、WebDB、interMedia和
WebToGo之类的革新,Oracle带头使各个公司获得Internet计算的好处。特别在Windows
NT中,由于Oracle是第一个发布NT数据库簇解决方案的厂商,第一次支持超过大内存(VLM),第一次将高可用性和可伸缩性带到安装有Oacle并
行服务器的NT中。
技术风险
Server7.0是一个完全重写的产品版本。该产品经历了联系的延迟,并且具有非常长的beta测试周期,这通常代表开发问题。一份Gartner报告
(8/98)说,“引擎的重新设计时非常深的...我们建议在1999年中期以前,不要将该产品部署在规模比较大的产品应用中。”正如一份Giga报告
(3/98)所说的那样,“SQL
Server仍有许多需要证明。可伸缩性、可靠性、多用户的性能、簇的开发、对象特性的支持等都有问题。”一个特别危险的因素是重新加在数据库问题。由于
基本的数据结构发生变化,Microsoft将要求所有SQL Server6.0和6.5站点必须先卸载然
后重新加载数据,这个过程需要好几天的时间。Microsoft已经承认6.5和7.0之间存在后向兼容问题。利用SQL
Server7.0,许多以前存在的基本的6.5代码将必须重写,以便利用象行级锁定和分布联合之类的新特性。公司在使它们的生产率和信息冒风险时必须非
常谨慎。利用Oracle没有任何风险。Oracle8已经发布一年多了,并被部署在成百上千个用户站
务器。如此广泛的支持是人们对Oracle信任的结果,这种信任来自于Oracle是一个安全和合理的选择。客户将询问自己,在已经有可靠的、先进的
Oracle8数据库时,为什们还要冒险使用新的未被证明的SQL。
厂商风险
可能的传播。在企业范围内若要获得成功,则要求高效利用已有的数据资源,并合并服务器资源。在另一个方面,Oracle已有二十多年的向客户解决方案的经
验。一个公司的数据是它们最有价值的资产,Microsoft不能指望涌进这个市场,然后一夜之间获得信任。Oracle已经花费了几年的艰苦努力才赢得
其客户群的信任以及它享受到的荣誉。每天成千上万的客户在Oracle上运行它们的业务所获得的成功就是Oracle技术和业务模型完美的有利证明。
性能参数
Server的该参数应该非常接近分配给SQL Server的内存值。在SQL Server设定中,如果将"set working set
size"置为0,则Windows NT会决定SQL Server的工作集的大小。如果将"set working set
size"置为1,则强制工作集大小为SQLServer的分配内存大小。一般情况下,最好不要改变"set working set
size"的缺省值。
SQLServer中的内存选项(Memory)仅为安装缺省值16MB(而服务器有128MB的物理内存),在将内存值调整为100MB时却误将其改成
了1000MB,使得SQL Server服务不能启动,统计数据库打不开,也就不能再次进入SQL Enterprise
Manager修改内存设置了。由于未备份业务数据,不到万不得已不能重装SQLServer数据库,就试图用命令行参数命令来重新启动SQL Server服务,但均不能奏,陷入了困境。我们经过仔细分析提出:既然SQL Server可用内存设置值远远大于物理内存,造成SQLServer服务不能启动,何不扩充虚拟内存呢?经设法将机器虚拟内存扩充至1000MB并重新启动,SQL Server数据库成功启动,问题迎刃而解。
机制结构
一直用在事务处理监视系统中,例如 BEA 的 Tuxedo 以及 Compaq 的
ACMSxp,这些系统早在二、三十年前就采用了典型的三层模型。三层模型在今天基于 Web 的应用系统中占据了支配地位,这类系统以
Microsoft 的 MTS 以及新的 COM+ 1.0 为代表。从 SQL Server
的角度看,三层解决方案中的客户机程序是放在中间层的。中间层直接与数据库交互。实际的桌面,或瘦客户机(Thin Client),使用其他机制并通常直接与中间层交互,而不是直接与数据库系统交互。
结构
部的 DLL,与 SQL Server 的实际接口是在客户机和服务器之间对话的“表格数据流”(Tabular Data Stream,TDS)
协议。一个常见的问题是“什么是 SQL Server 的本机接口呢?”很长时间以来,很多开发人员一直都不愿意使用 ODBC
这样的接口,因为他们认为由 Sybase 开发的客户机 API,也就是 DB-Library,是 SQL Server
的本机接口。实际上,SQL Server 关系服务器本身并没有本机 API,它的接口就是在客户机和服务器之间的通信流协议 TDS。TDS
把客户机发送给服务器的 SQL 语句封装起来,也把服务器返回给客户机的处理结果封装起来。任何直接处理 TDS 的 API 都是 SQL
Server 的本机接口。
型的对象模型,并不是 SQL Server 客户机结构中的严格意义上的组件。此外,还有另外一些组件可以插接到 SQL Server
基础结构上面的这一层。OLE-DB 的“会话池服务提供程序 (Session Pooling Service
Provider)”就是这种组件的一个例子。
接口
7.0 的本机接口,即 OLE-DB 和 ODBC。DB-Library 接口也是本机的,它与 TDS 通信,但是 DB-Library
使用的是 TDS 较老的版本,需要在服务器上进行一些转换。现有的 DB-Library应用程序仍然可以继续与 SQL Server 7.0 协同使用,但是很多新的功能和性能提高等好处只能通过 ODBC 和 OLE DB 才能利用。更新 DB-Library 使其支持 SQL Server 7.0 的新能力,将会导致与现有应用程序的很多不兼容性,因此需要修改应用程序。ODBC 在五年之前就替代了 DB-Library,是新的 SQL Server应用程序更理想的 API,因此引入不兼容的 DB-Library 新版本并不明智。从图 2 可以看到,所有这些客户机 API 都有三个部分。最上面的部分实现 API 的细节,例如行集和游标应该是什么样等等。TDS 格式化程序负责处理实际请求,例如 SQL 语句,并将其封装成 TDS 消息包,发送给 SQL Server,获得返回的结果,然后再把结果反馈到接口实现。
仍然只能使用 SQL Server 6.5 版,TDS 协议对于所有 API 都是相同的。ODBC 和 OLE-DB 在与 SQL Server
7.0 通信时使用 SQL Server 7.0 版,但也能够与 6.5 或 6.0 服务器通信。另一个是
Net-Library,这是一个抽象层,客户机和服务器都在此层上同网络抽象接口通信,不必为 IPX 还是 TCP/IP 困扰。在这里我们将不讨论
Net-Library 的工作细节;只要知道它们的工作基本上是将来自的网络通信底层的细节隐藏起来不让软件的其他部分看到就可以了。
服务器
通信的主要方法就是通过使用 TDS 消息。TDS 是一种简单协议。当 SQL Server
接收到一条消息时,可以认为是发生了一个事件。首先,客户机在一个连接上发送登录消息(或事件),并得到返回的成功或失败的响应。当您希望发送 SQL
语句时,客户机可以把 SQL 语言消息打包发送给 SQL Server。另外,当您希望调用存储过程、系统过程或虚拟系统存
储过程(我们后面还要详细讨论)时,客户机可以发送 RPC 消息,这种消息相当于 SQL Server 上的一个 RPC
事件。对于上面的后两种情况,服务器会以数据令牌流的形式送回结果。Microsoft 没有把实际的 TDS 消息写入文档中,因为这被认为是 SQL
Server 组件之间的私用契约。
计数器
计数器
|
描述
|
Memory: Available Bytes
|
内存可用字节数
|
Memory: Page Faults / sec
|
处理器硬/软页错误处理速率
|
Process: Working Set
|
进程占用内存量
|
Memory / Pages/sec
|
每秒磁盘读写页数
|
Physical Disk: Avg.Disk Queue Length
|
读取和写入请求(磁盘在实例间隔中列队的)平均数。
|
Physical Disk: Reads/sec
|
每秒磁盘读取操作速率
|
Physical Disk: Writes/sec
|
每秒磁盘写入操作速率
|
Processor: % Privileged Time
|
处理器执行内核命令所用时间百分比
|
Process: % Processor Time
|
处理器时间百分比(活跃程度)
|
Processor: %User Time
|
处理器执行用户进程百分比
|
SQL Server: Access Methods: Full Scans/sec
|
每秒完全扫描次数
|
SQL Server: Access Methods: Page splits/sec
|
每秒页分割数量
|
SQL Server: Buffer Manager: Buffer Cache Hit Ratio
|
缓冲区缓存命中率
|
SQL Server: Buffer Manager: Lazy Writes/sec
|
惰性写进程每秒写缓冲区数量
|
SQLServer: Cache Manager: Cache Hit Ratio
|
SQL快取中找到请求资料分页的时间比率
|
SQL Server: Latches: Latch Waits/sec
|
每秒闩锁等待数量
|
SQL Server: Locks: Average Wait Time
|
每个导致等待的锁请求的平均等待时间(毫秒)
|
SQLServer: Locks: Lock Requests/sec
|
每秒请求的锁个数
|
SQLServer: Locks: Lock Wait Time (ms)
|
SQL每秒锁等待
|
SQL Server: Memory Manager: Total Server Memory
|
服务器分配SQL可用内存总量
|
SQLServer: General Statistics/User Connections
|
SQL Server用户连接数
|
SQLServer: SQL Statistics/SQL Re-Compilations
|
每秒SQL重编译数
|
新特性
T-SQL
天生就是基于集合的关系型数据库管理系统编程语言,可以提供高性能的数据访问。它与许多新的特性相结合,包括通过同时使用TRY和CTACH来进行错误处
理,可以在语句中返回一个结果集的通用表表达式(CTEs),以及通过PIVOT 和UNPIVOT命令将列转化为行和将列转化为行的能力。
获取更多有关微软的信息。
2、CLR(Common Language Runtime,通用语言运行时)
SQL Server 2005中的第二个主要的增强特性就是整合了符合.NET规范的语言 ,例如C#,
或者是可以构建对象(存储过程,触发器,函数等)的VB.NET。这一点让你可以在数据库管理系统中执行.NET代码以充分利用.NET功能。它有望在
SQL Server 2000环境中取代扩展的存储过程,同时还扩展了传统关系型引擎功能。[1]
SQLServer学习-- SQLServer的更多相关文章
- SQLServer学习笔记系列1
一.前言 一直自己没有学习做笔记的习惯,所以为了加强自己对知识的深入理解,决定将学习笔记写下来,希望向各位大牛们学习交流! 不当之处请斧正!在此感谢!这边就先从学习Sqlserver写起,自己本身对数 ...
- SQLServer学习笔记系列6
一.写在前面的话 时间是我们每个人都特别熟悉的,但是到底它是什么,用什么来衡量,可能很多人会愣在那里.时间可以见证一切,也可以消磨一切,那些过往的点点滴滴可思可忆.回想往年清明节过后,在家乡的晚上总能 ...
- SQLServer学习笔记系列5
一.写在前面的话 转眼又是一年清明节,话说“清明时节雨纷纷”,武汉的天气伴随着这个清明节下了一场暴雨,整个城市如海一样,朋友圈渗透着清明节武汉看海的节奏.今年又没有回老家祭祖,但是心里依然是怀念着那些 ...
- SQLServer学习笔记系列3
一.写在前面的话 今天又是双休啦!生活依然再继续,当你停下来的时候,或许会突然显得不自在.有时候,看到一种东西,你会发现原来在这个社会上,优秀的人很多,默默 吃苦努力奋斗的人也多!星期五早上按时上班, ...
- SQLServer学习笔记系列2
一.写在前面的话 继上一次SQLServer学习笔记系列1http://www.cnblogs.com/liupeng61624/p/4354983.html以后,继续学习Sqlserver,一步一步 ...
- SQLServer学习笔记<>相关子查询及复杂查询
二.查询缺少值的查询 在这里我们加入要查询2008年每一天的订单有多少?首先我们可以查询下订单表的订单日期在2008年的所有订单信息. 1 select distinct orderdate,coun ...
- sqlserver 学习之分离与附加数据库
在学习sqlserver数据库的过程中,我们会学习到有关一些听起来比较陌生的专用名词,比如说分离与附加这两个专有名词,对于我来说就是比较陌生的.好的,下面我们一起来学习一下吧.为了讲的通俗一点,下面以 ...
- SQLServer 学习笔记之超详细基础SQL语句 Part 12(The End)
Sqlserver 学习笔记 by:授客 QQ:1033553122 -----------------------接Part 11------------------- 现在,我们希望从 " ...
- SQLServer 学习笔记之超详细基础SQL语句 Part 11
Sqlserver 学习笔记 by:授客 QQ:1033553122 -----------------------接Part 10------------------- DECLARE @myavg ...
随机推荐
- hotplug_uevent机制_修改mdev配置支持U盘自动挂载学习笔记
1.接入U盘,看输出打印信息并分析 (1)输出信息 自动创建设备节点 (2)用ls命令查看 这里/dev/sda表示整个U盘,/dev/sda1表示这个U盘的第一个分区. (3)手动挂载,查看文件,手 ...
- Python+Selenium爬虫实战一《将QQ今日话题发布到个人博客》
前提条件: 1.使用Wamp Server部署WordPress个人博客,网上资料较多,这里不过多介绍 思路: 1.首先qq.com首页获取到今日话题的的链接: 2.通过今日话题链接访问到今日话题,并 ...
- 【CentOS 6.5】 安装VNCServer及配置,注销处理
如果没有安装VNCServer,只有在机器上登录进桌面后才可以通过VNC连接,否则连不上... 安装: yum install tigervnc-server 运行并设置密码: vncserver ...
- InfluxDB命令使用
身份验证与授权(权限管理) Authentication and Authorization 注意:身份授权与验证不能用于阻止恶意用户.如果有额外的做合理性和安全性的需求,InfluxDB可以运行在第 ...
- Python入门——import
最近身边的人或多或少都知道一点python,自己也想动手试试吧.按照网上的教程,安装了python,Eclipse插件pydev.接下来就是在Eclipse下新建工程,创建py文件这就不多说了. 第一 ...
- C# 生成序号不足补0
int Num=13 var code =Num.ToString().PadLeft(4, '0'); code:0013
- IOS Background 之 Background Fetch
http://www.ithao123.cn/content-1363653.html 定期更新数据的app,比如及时通信类,微博等app. 定期后台获取,等打开后获取的快一些. 30分钟后打开手,获 ...
- Remote error: Provider not exported: DataSetProvider1
Remote error: Provider not exported: DataSetProvider1 是服务端的问题,ServerMethodsUnit1.cpp窗体上添加DataSetProv ...
- 导出ppt中所有文本框
打开PPT,按ALT+F11打开VBA编辑器,(部分电脑FN+ALT+F11)在左面的工程视图里点击右键,选择插入->模块,添加一个模块,名字都不用改. 然后点击顶部的"工具" ...
- poi操作word 2007 常用方法总结
import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io ...