sql2005和sql2008的区别

sql2005和sql2008的区别,第1张

2005支持所有2000的语法,但是2005有新的功能,所以对系统要求也不一样,比如你必须安装net 35的框架,其还有以下区别:

1、字段类型。

SQL Server 2005引入了一系列 新的被称为MAX的数据类型。这是VARCHAR,NVARCHAR和VARBINARY类型的扩展,这几种类型 以前被限制在8000字节以下。MAX可以容纳高达2GB的数据,与TEXT和IMAGE一样。

可以使用字符串函数对CLOB类型进行 *** 作。但是这就引发了对varchar和char效率讨论的老问题。到底如何分配varchar的数据,是否会出现大规模的碎片?是否碎片会引发效率问题?这都是需要进一步探讨的东西。

2、外键的级联更能扩展

新版本中外键级联加入了SET NULL 和 SET DEFAULT 属性,能够提供能好的级联设置

如果没有指定 ON DELETE 或 ON UPDATE,则默认为 NO ACTION。

3、索引附加字段

即在索引中存储一些常用字段以提高查询速度,这是一个不错的新特性。虽然索引的附加字段没有索引键值效率高,但是相对映射到数据表中效率还是提高了很多。在实验环境中会比映射到表中提高30%左右的效率。

4、计算字段的持久化

原来的计算字段其实和虚拟字段很像。只是管理方面好了而已,性能方面提高不多。但是SQL2005提供了计算字段的持久化,这就提高了查询的性能,但是会加重insert和update的负担。OLTP慎用。OLAP可以大规模使用。

5、分区表

分区表是个亮点!从分区表也能看出微软要做大作强SQL Server的信心。资料很多,这里不详细说。但是重点了解的是:现在的SQL Server2005的表,都是默认为分区表的。因为它要支持滑动窗口的这个特性。这种特性对历史数据和实时数据的处理是很有帮助的。

6、CLR类型

微软对CLR作了大篇幅的宣传,这是因为数据库产品终于融入net体系中。最开始我们也是狂喜,感觉对象数据库的一些概念可以实现了。但是作了些试验, 发现使用CLR的存储过程或函数在达到一定的阀值的时候,系统性能会呈指数级下滑!这是非常危险的!只使用几个可能没有问题,当一旦大规模使用会造成严重 的系统性能问题!

7、索引视图

索引视图2k就有。但是2005对其效率作了一些改进但是schemaviewname的作用域真是太限制了它的应用面。还有一大堆的环境参数和种种限制都让人对它有点却步。

8、语句和事务快照

语句级快照和事务级快照终于为SQL Server的并发性能带来了突破。个人感觉语句级快照大家应该应用。事务级快照,如果是高并发系统还要慎用。如果一个用户总是被提示修改不成功要求重试时,会杀人的!

9、数据库快照

原理很简单,对要求长时间计算某一时间点的报表生成和防用户 *** 作错误很有帮助。但是比起Oracle10g的闪回技术还是细粒度不够。

2005与2008的区别

2008 引入新的日期和时间数据类型:

DATE - 仅表示日期的类型

TIME - 仅表示时间的类型

DATETIMEOFFSET - 可以感知时区的 datetime 类型

DATETIME2 - 比现有 DATETIME 类型具有更大小数位和年份范围的datetime 类型

新的数据类型允许应用程序拥有独立的日期和时间类型,同时为时间值提供大的数据范围或用户定义的精度。

2008的备份采用了比较好的压缩策略。

2008的库文件可以加密了,别人拷走也没意义。

2005不能调试,要调试必须装VS2005开发板或者企业版以上才行。

2008把调试器又请回来了!方便多了!!

2008 增加了输入智能提示功能。

SQLServer2000使用三种类型的复制1快照复制快照复制可精确地复制数据或数据库对象在任一时刻的瞬时状态。快照发布通常被定义为按调度发生。订阅服务器包含发布的项目在上次快照复制时的复本。当源数据相对来说是静态的,订阅服务器可能已有些过期,以及要复制的数据量很少时,使用快照复制。2事务复制在事务复制中,一般先通过快照复制使订阅服务器与发布服务器同步,然后,当发布数据被修改时,捕获事务并将其发送到订阅服务器。通过在发布服务器上进行所有的修改,然后将所有修改复制到订阅服务器,得以在订阅服务器间维护事务完整性。当必须在数据被修改时对其进行复制,必须保留事务,以及发布服务器和订阅服务器通过网络可靠和/或经常地连接在一起时,使用事务复制。3合并复制合并复制使多个站点得以自主地使用一组订阅服务器,然后过一段时间将工作合在一起合并到发布服务器。通过快照复制使订阅服务器与发布服务器同步。对订阅服务器和发布服务器上的更改进行跟踪。过一段时间,合并更改以形成单个的数据版本。在合并过程中,如果多个订阅服务器修改相同的数据,可能会发生冲突。合并复制支持冲突解决程序的定义,即用来定义如何解决上述冲突的规则集。也可以编写自定义冲突解决程序脚本,以处理正确解决复杂冲突情形所需的任何逻辑。当自主运行对于订阅服务器计算机(例如移动的脱接用户)很重要时,或者当多个订阅服务器必须更新相同的数据时,使用合并复制。

Microsoft SQL Server 2000复制的概念:在数据库之间对数据和数据库对象进行复制和分发并进行同步以确保其一致性的一组技术。

使用复制可以将数据分发到不同位置,通过局域网、使用拨号连接、通过 Internet 分发给远程或移动用户。复制还能够使用户提高应用程序性能,根据数据的使用方式物理分隔数据(例如,将联机事务处理 (OLTP) 和决策支持系统分开),或者跨越多个服务器分布数据库处理。

SQL复制的基本元素包括:

发布服务器、订阅服务器、分发服务器、发布、项目。

发布服务器

发布服务器是提供数据以便复制到其它服务器的服务器。发布服务器可以具有一个或多个发布,每个发布代表一组逻辑相关的数据。除了指定其中哪些数据需要复制之外,发布服务器还检测事务复制期间发生更改的数据并维护有关此站点上所有发布的信息。

分发服务器

分发服务器是作为分发数据库宿主并存储历史数据和/或事务以及元数据的服务器。分发服务器的角色根据执行的复制类型而不同。有关更多信息,请参见复制类型。

远程分发服务器是独立于发布服务器并配置为复制的分发服务器的服务器。本地分发服务器是既配置为复制的发布服务器又配置为复制的分发服务器的服务器。

订阅服务器

订阅服务器是接收复制数据的服务器。订阅服务器订阅的是发布而不是发布中分离的项目;并且订阅服务器只订阅其需要的发布,而不是发布服务器上所有可用的发布。根据复制的类型和所选择的复制选项,订阅服务器还可以将数据更改传播回发布服务器或将数据重新发布到其它订阅服务器。

发布

发布是一个数据库中的一个或多个项目的集合。这种多个项目的分组使得指定逻辑相关的一组数据和数据库对象以一起复制变得更容易。

项目

项目是指定要复制的数据表、数据分区或数据库对象。项目可以是完整的表、某几列(使用垂直筛选)、某几行(使用水平筛选)、存储过程或视图定义、存储过程的执行、视图、索引视图或用户定义函数。

订阅

订阅是对数据或数据库对象的复本的请求。订阅定义将接收的发布和接收的时间、地点。订阅的同步或数据分发可以由发布服务器(强制订阅)或订阅服务器(请求订阅)请求。发布可以支持强制订阅和请求订阅的混合。

SQL复制的工作原理

SQL SERVER 主要采用出版物、订阅的方式来处理复制。源数据所在的服务器是出版服务器,负责发表数据。出版服务器把要发表的数据的所有改变情况的拷贝复制到分发服务器分发服务器包含有一个分发数据库,可接收数据的所有改变,并保存这些改变,再把这些改变分发给订阅服务器。

SQL SERVER复制技术类型,三种复制技术,分别是

1、快照复制

2、事务复制

3、合并复制

下介绍实现复制的步骤。(以快照复制为例)

准备工作:

1发布服务器,订阅服务器都创建一个同名的windows用户,并设置相同的密码,做为发布快照文件夹的有效访问用户。

--我的电脑

--控制面板

--管理工具

--计算机管理

--用户和组

--右键用户

--新建用户

--建立一个隶属于administrator组的登陆windows的用户

2在发布服务器上,新建一个共享目录,做为发布的快照文件的存放目录, *** 作:

我的电脑--D:\ 新建一个目录,名为: PUB

--右键这个新建的目录

--属性--共享

--选择“共享该文件夹”

--通过“权限”按纽来设置具体的用户权限,保证第一步中创建的用户具有对该文件夹的所有权限

--确定

3设置SQL代理(SQLSERVERAGENT)服务的启动用户(发布/订阅服务器均做此设置)

开始--程序--管理工具--服务

--右键SQLSERVERAGENT

--属性--登陆--选择“此账户”

--输入或者选择第一步中创建的windows登录用户名

--“密码”中输入该用户的密码

4设置SQL Server身份验证模式,解决连接时的权限问题(发布/订阅服务器均做此设置)

企业管理器

--右键SQL实例--属性

--安全性--身份验证

--选择“SQL Server 和 Windows”

--确定

5在发布服务器和订阅服务器上互相注册

企业管理器

--右键SQL Server组

--新建SQL Server注册。

--下一步--可用的服务器中,输入你要注册的远程服务器名--添加

--下一步--连接使用,选择第二个“SQL Server身份验证”

--下一步--输入用户名和密码

--下一步--选择SQL Server组,也可以创建一个新组

--下一步--完成

6对于只能用IP,不能用计算机名的,为其注册服务器别名

(在连接端配置,比如,在订阅服务器上配置的话,服务器名称中输入的是发布服务器的IP)

开始--程序--Microsoft SQL Server--客户端网络实用工具

--别名--添加

--网络库选择“tcp/ip”--服务器别名输入SQL服务器名

--连接参数--服务器名称中输入SQL服务器ip地址

--如果你修改了SQL的端口,取消选择“动态决定端口”,并输入对应的端口号

正式开始:

1配置发布服务器

a 选中指定 〔服务器〕 节点

b 从 〔工具〕 下拉菜单的 〔复制〕 子菜单中选择 〔发布、订阅服务器和分发〕 命令

c 系统d出一个对话框点 〔下一步〕 然后看着提示 *** 作

--直到“指定快照文件夹”

--在“快照文件夹”中输入准备工作中创建的目录: \\《服务器名》\pub

一〔下一步〕 直 *** 作到完成。

d 当完成了出版服务器的设置以后系统会为该服务器的树形结构中添加一个复制监视器同时也生成一个分发数据库(distribution)

2创建发布

a 选中指定的服务器

b 从 〔工具〕 菜单的 〔复制〕 子菜单中选择 〔创建和管理发布〕 命令。此时系统会d出一个对话框

c 选择要创建发布的数据库,然后单击 〔创建发布〕

d 在 〔创建发布向导〕 的提示对话框中单击 〔下一步〕 系统就会d出一个对话框。对话

框上的内容是复制的三个类型。我们现在选第一个也就是默认的快照发布(其他两个

大家可以去看看帮助)

e 单击 〔下一步〕 系统要求指定可以订阅该发布的数据库服务器类型,SQLSERVER允许在

不同的数据库如 ORACLE或ACCESS之间进行数据复制。但是在这里我们选择运行

“SQL SERVER 2000”的数据库服务器

f 单击 〔下一步〕 ,选择要发布的对象(如表,视图,存储过程,一般是表)

g 然后 〔下一步〕 直到 *** 作完成。当完成出版物的创建后创建出版物的数据库也就变成了一个共享数据库。

---------------------------------------------------------------------------

3设计订阅

a 选中指定的订阅服务器

b 从 〔工具〕 下拉菜单中选择 〔复制〕 子菜单的 〔请求订阅〕

c 按照提示单击 〔下一步〕 *** 作直到系统会提示检查SQL SERVER代理服务的运行状态,执行

复制 *** 作的前提条件是SQL SERVER代理服务必须已经启动。

d 单击 〔完成〕 完成订阅 *** 作。

----------------------------------------------------------------------------

完成上面的步骤其实复制也就是成功了。但是如何来知道复制是否成功了呢?

这里可以通过这种方法来快速看是否成功。

展开出版服务器下面的复制——发布内容——右键发布内容——属性——击活——状态然后点立即运行代理程序接着点代理程序属性击活调度

把调度设置为每一天发生,每一分钟,在0:00:00和23:59:59之间。

接下来就是判断复制是否成功了,打开C:\Program Files\Microsoft SQL Server\MSSQL\REPLDATA\unc\XIAOWANGZI_database_database下面,观察是否有一些以时间做为文件名的文件夹(几乎一分中产生一个)。

方法/步骤

1

机器A、B分别新建标准用户repluser,用于访问初始快照共享文件。

2

机器A新建X_DB数据库,表persion

3

选择复制菜单->本地发布,右键新建发布,next->选择数据库X_DB

选择发布类型,这里有四种:快照发布、事务发布、可更新订阅的事务发布、合并发布。快照发布和合并发布都是定期取数据,不同的是合并发布可独立更新,可把订阅端的数据更新同步到发布端;测试发现如果两端同时更新,发布端的更新会覆盖掉订阅端的更新。事务发布是事务驱动,只要有更新,立马同步更新。

这里我选择事务同步->next

选择需要复制的表,这里有个限制:只有带主键的表才能复制一路next

设置代理账号,next。最后输入发布名称,发布成功

选择刚才创建的发布,右键属性,选择快照设置共享路径;也可以选择FTP快照进行FTP共享。这样订阅端就访问这个路径读取初始快照。至此发布端设置完成。

机器B订阅端选择复制->本地订阅-》新建订阅。

选择发布服务器,选择x_db下的x_db_publish

没有x_db,可以自己创建数据库。设置分发与订阅账号。

选择刚创建的订阅,右键属性,修改快照位置:如果发布端使用的共享路径方式就选择备用文件夹,输入共享目录。如果是FTP选择ftp,输入路径。至此设置完毕。

查看下发布端复制监视器,表已传过来。

新增一条。

myisam_recover = 64K#允许的GROUP_CONCAT()函数结果的最大长度

transaction_isolation = REPEATABLE-READ

innodb_file_per_table

MVCC的目的就是多版本并发控制,在数据库中的实现,就是为了解决裂前读写冲突,它的实现原理主要是依赖记录中的 3个隐式字段,undo log ,read view 来实现的。

MVCC是一种并发控制的方法,一般在数据库管理系统中,实现对数据库的并发访问,在编程语言中实现事务内存。MVCC在MySQL InnoDB中的实现主要是为了提高数据库并发性能,用更好的方式去处理读-写冲突,做到即使有读写冲突时,也能做到不加锁,非阻塞并发读。

MVCC带来的好处:

多版本并发控制(MVCC)是一种用来解决读写冲突的无锁并发控制,也就是为事务分配单向增长的时间戳,为每个修改保存一个版本,版本与事务时间戳关联,读 *** 作只读该事务开始前的数据库的快照,所以MVCC可以为数据库解决以下问题:

1、在并发读写数据库时,可以做到在读 *** 作时不用阻塞写 *** 作,写 *** 作也不用阻塞读 *** 作,提高了数据库并发读写的性能。

2、同时还可以解决脏读,幻读,不可高源旦重复读等事务隔离问题,但不能解决更新丢失问题。

MVCC多版本并发控制:

MVCC(Multi-version Cocurrent Control)多版本并发控制技术是一种利用多个不同版本的数据实现并发控制的技术,其思想是为每次事务前生成一个新版本的数据,在读取数据时选择不同版本的数据可以实现对事务结果的完整性读取。

在使用MVCC时,每个事务都是基于一个已生效的基础版本进行更新,事务可以并行进行,历史版本数据从而可以组装成一种链状结构。

巨杉数据库 SequoiaDB 中的MVCC多版本并发控制技术基于内存老版本和事务段实现的。在MVCC多版本并发控制技术实现过程中,会涉及全局时间戳、全局事务高源ID、全局事务可见性等技术特性。

以上就是关于sql2005和sql2008的区别全部的内容,包括:sql2005和sql2008的区别、SQL2000发布和复制的问题、sql2008事务性发布同步更新教程等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/10187250.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-06
下一篇2023-05-06

发表评论

登录后才能评论

评论列表(0条)

    保存