分享
 
 
 

SQLServer2000的新特色

王朝mssql·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

新的数据类型

继SQL 7增加了四种新的数据类型之后,SQL 2000又提供了三种新的数据类型,分别是bigint、sql_variant和table。

在数据量越来越大的今天,用int(-2^31 (-2,147,483,648) 到 2^31 - 1 (2,147,483,647))来表示整数有时已经显得不太够用了,FLOAT也不是很合适,所以VB 7和SQL 2000都有了新的整数类型,这就是bigint,它是8bytes的整数类型,范围是-2^63 (-9223372036854775808) 到2^63-1 (9223372036854775807)。

熟悉VBScript的人都知道,VBS使用的是一种叫做variant的数据类型。它可以存放任何数据类型,数字、字符、对象等。SQL 2000里面的sql_variant还没有那么强大的功能,它不能存放blob的数据,如text、ntext和image,还有timestamp,但是已经给编程带来了很大的方便了。

SQL里面是没有数组类型的,但是新的表格类型允许应用软件暂时存储那些一会儿会用到的结果。它不可以做为表的一个列出现,而只能在T-SQL程序中使用。作为自定义函数的返回值很好用的。

Example:

DECLARE @TableVar TABLE

(Cola int PRIMARY KEY,

Colb char(3))

INSERT INTO @TableVar VALUES (1, ’abc’)

INSERT INTO @TableVar VALUES (2, ’def’)

SELECT * FROM @TableVar

GO

要注意的是,以前版本的ADO对这几种数据类型的支持都不完全,要在程序中使用这两种数据,请使用MDAC 2.6。

SQL Server 2000 和 XML

现在XML似乎很吃香,各种东东都开始支持XML了。善于跟风的MS自然是事事都想要带头的。浏览器、Office、SQL、MDAC都要和XML搀和一哈。

去年MS就在MDAC2.0还是2.1里面提供了一个功能,把一个结果集保存为XML,在SQL 2000里面,使用XML更加方便了,SQL查询可以直接返回一个XML,并且还可以通过XML来修改数据库中的数据哦。

要返回XML非常的简单,只需要在你的SQL 语句后面加一个FOR XML AUTO就可以了。

Example:

SELECT TOP 1 ID, Filename, Download_Time, Introduce FROM download FOR XML AUTO

如果使用FOR XML RAW的话,就会返回

如果用FOR XML AUTO, ELEMENTS,结果是

1

ayako_katagiri.exe

1998-12-21T00:00:00

片桐彩子Winamp Skin

使用FOR XML EXPLICIT特别麻烦,前面要定义一堆东西,但是功能也很强大,

我就不详细介绍了,有兴趣的可以参见Online Book:Using EXPLICIT Mode

SELECT TOP 1 1 as Tag, Null as Parent,ID as [DownloadXML!1!ID], Filename as

[DownloadXML!1!Filename] FROM download FOR XML EXPLICIT

上面是如何返回XML数据,下面来看一下如何把XML当表使用

OPENXML可以把XML的数据打开成为一个表

Example:

declare @l int

declare @txtXML varchar(1000)

set @txtXML = ’

exec sp_xml_preparedocument @l OUTPUT, @txtXML

SELECT * FROM OPENXML (@l, ’/Root/download’,1) WITH (ID int,Filename

varchar(50))

EXEC sp_xml_removedocument @l

执行结果

ID Filename

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

1 ayako_katagiri.exe

2 beauti.mid

3 bee.mp3

4 behavior.js

5 cactivex.zip

6 chatsrvr.exe

7 chatter.exe

8 china.zip

9 ciyun.gb

10 ci_shanxi1.gb

(10 row(s) affected)

这些功能意味着我们可以使用SQL 2000来生成一个XML并且通过XML的得到客户端的返回值(不一定要通过ASP之类的工具哦,可以通过URL来访问SQL 2000返回的XML的,不过这个功能我还没有弄太明白,所以先不介绍了)

联合SQL 2000服务器(Federated SQL Server 2000 Servers)

可能大家都听说过集群服务器Clustered Server,但是在SQL 2000里面我却惊奇的发现,集群服务器不见了!取而代之的是一个叫联合服务器的东东。

现在就让我们来看看它们之间有什么区别吧。

SQL 2000的数据库能够被分散在一组独立的数据库服务器上以支持大规模的Web站点的访问需求和企业级的数据处理系统。面对日益增长的需求,只需要简单的添加一个节点服务器就可以了。

――我怎么看不出来和集群服务器有什么区别嘛?

――上课的时候,不要发出这种声音!急什么,下面自然会讲到的。再乱讲话就罚站了哦。

Windows 2000的COM+组件就是被设计来用于在集群的Windows 2000服务器上实现商业逻辑层的。每个服务器上都有一套同样的COM+组件,WIndows 2000自己来平衡各个服务器之间的负载。使用Cluster Administrator可以很方便的配置集群服务器。

但是SQL 2000并不支持这样的集群。SQL 2000支持可更新的分布式视图(distributed partitioned views ),用它来水平的将数据分割在一组服务器上。这使得用户可以把一个数据库服务器添加到一组数据库服务器中,这些数据库相互合作,以提供和集群数据库服务器相同的性能标准。虽然它们合作管理这些数据,但是它们之间是独立运作的。每个服务器有独立的管理界面,(当然,你可以使用Enterprise Manager来管理一组服务器,但总是作为一个Group中多个Server来管理的,并不能把它们当作是一个Server),也有各自的运作规则,可以有其他的数据和进程,只是在联合起来处理一个工作的时候才联合在一起。

SQL 2000现在在多CPU的系统上可以有非常优异的性能(可以有8个或者更多的CPU),但是使用联合服务器,你几乎可以处理无限的负载。现在http://www.tpc.org 最高的tpcc纪录就是12台8CPU的联合服务器完成的。(2月17日的测试结果,到现在仍然是最高的。)

数据库服务器和商业逻辑服务器不一样,运行商业逻辑的时候每个服务器都可以完成相同的工作,即使一台服务器down了也不会对系统有什么影响。而数据库就不一样,你必须把数据分散在不同的服务器上,否则对性能就没有什么提高了。而在这样的情况下,如果数据库服务器不能用于处理独自的事务,那么就显得有些浪费。

OK,课间休息15min.下面我们讲重要的话题,如何使用联合服务器

1、建立Linked Server

SQL 7就有了的东东,打开你的Enterprise Manager,Security|Linked Servers,右键New Linked Server...,Server Type选SQL Server,然后填上用户名口令什么的

2、在每个服务器上建立表

-- On Server1:

CREATE TABLE Table_1_To_30000

(ID INT PRIMARY KEY

CHECK (ID BETWEEN 1 AND 29999),

... other fields

)

-- On Server2:

CREATE TABLE Table_30000_To_60000

(ID INT PRIMARY KEY

CHECK (ID BETWEEN 30000 AND 59999),

... other fields

)

-- On Server3:

CREATE TABLE Table_60000_To

(ID INT PRIMARY KEY

CHECK (ID 60000),

... other fields

)

3、在每个服务器上建立视图

CREATE VIEW Partitioned_Views AS

SELECT * FROM MyDatabase.dbo.Table_1_To_30000

UNION ALL

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有