欢迎来到天天文库
浏览记录
ID:28447488
大小:75.50 KB
页数:5页
时间:2018-12-10
《teradata数据库的数据分配研究》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、Teradata数据库的数据分配研究摘要Teradata数据库自发明至今已经经历了许多重大转变,已经从版本1(TeradataVI)发展到了目前的版本2(TeradataV2R4),运行平台也已经从封■闭的专用系统转变到了开放的通用系统,但是最基本的体系结构是一致的,始终遵从非共享原则。主要体系有单点SMP体系结构,多节点MMP体系结构。【关键词】Teradata数据库数据分配1Teradata的体系结构自诞生以来,Teradata数据库经历了许多重大转变,仅从版本号上看,就从TeradataVI发展到了Terad
2、ataV2R4;从运行平台上看,也从封闭转为开放,由最初只能在专用系统上封闭使用发展到了如今可以在开放的通用系统上使用,在设计上和实现上遵从非共享(sharenothing)的体系结构。2Teradata数据库的数据分配机制Teradata数据库采用哈希算法作为数据分配机制。将标的主索引作为哈希算法的输入值,并且利用一个矩阵结构的HASHMAP,将哈希运算计算出来的输出值通过此矩阵与系统中的各个AMP进行影射。在Teradata数据库中,用户与数据库是不一样的两个概念。数据库是一个可管理的对象或者单元,它由表、视宏
3、等基本对象组成,并有相应的访问权限来控制客户端的操作。与此同时,数据库也常用来表示由RDBMS管理的整个系统,因此容易引起混淆,具体意义应根据上下文来确定。数据库有一个重要概念一一PERMANENTSPACE(简称为PERMSPACE),即永久空间。在创建数据库时,需要定义其物理存储空间也就是真正用来存储空间的上限的大小,这就是PERMSPACEoPERMSPACE虽然用来存储真正的数据记录,但它只是一个逻辑概念,并没有预先分配。当数据库的尺寸超出PERMSPACE的限制时,有的数据库需要重新规划、分区之后再加载数
4、据,而Teradata数据库最重要和吸引人的特性之一便是它不用这样做,只要系统中还有多余的空间,就可以动态修改PERMSPACE值,而不需做任何数据库重组的操作,这对于数据库管理员而言是非常有意义的。除了PERMSPACE以外,数据库还有另外一个概念SPOOLSPACE,它也是逻辑上的一个概念,表示该数据库使用的SP⑻L空间不能超过此上限。SP⑻L空间用于存储系统处理交易请求的一些中间结果。和永久空间一样,SPOOL空间也不是预先分配的。事实上,整个系统中的空余空间都可以用作SPOOLo让我们举一个例子来说明PER
5、MSPACE和SPOOLSPACE:假设一个Teradata系统所拥有的永久空间为2GB,共有3个数据库A、B、C,其永久空间定义均为500MB,SPOOL空间定义均为200MB,实际已使用的空间分别为400MB、300MB和200MB。这样,系统中尚未分配的永久空间为:2000MB令500MB令500MB令500MB=500MB系统中尚空闲的永久空间为:2000MB♦400MB♦300MB♦200MB=1100MBA、B、C三个数据库尚能使用的永久空间分别为:500MB400MB=100MB500MB300MB=
6、200MB500MB200MB=300MB当某个数据库继续增长时,比如往数据库A中再增加约100MB数据,系统将提示空间溢出。此时,可以通过MODIFYDATABASE命令从系统中尚未分配的500MB永久空间中分配一定的存储空间给数据库A。另外,对每个数据库定义了2⑻MB的SPOOLSPACE,表示在此数据库上的操作能使用的临时空间不能超过200MB。系统在处理交易请求时,临时空间的使用是在什么存储位置,则视实际情况而定。换言之,系统中未分配数据记录的永久空间为1100M,这些永久空间均可动态地被用作SPOOLSP
7、ACEo对每个数据库定义一个SPOOLSPACE,只是为了安全上的考虑,防止不适当的数据库操作将系统中的未分配空间耗尽,从而影响其它用户的使用。举例来说,如果数据库A的SPOOLSPACE定义为10⑻MB,针对数据库A的一个复杂查询可能没有设计好,比如对两个大表的连接操作是所谓的笛卡尔乘积(ProductJoin),这时A的SPOOLSPACE很快就会到达极限,如果系统中能使用的SPOOL空间总共只剩下100MB,而此时恰好有其它用户同时在访问数据库,就一定会产生SP⑻L空间溢出,无法处理交易请求。因此,在定义数据
8、库时,除了适当控制永久空间外,也必须合理地定义其SPOOL空间。创建一个数据库的命令举例:CREATEDATABASETestBaseASPERM=200000000,SPOOL=100000000;该命令创建了一个测试数据库TestBase,其永久空间定义为200MB,SPOOL空间不能超过lOOMBo注意,在Teradata数据库系统的缺省方式下,是不区
此文档下载收益归作者所有