技术开发 频道

主流列式数据库评测:Sybase IQ

  三、SybaseIQ功能测试

  (一)数据库空间管理

  Sybase IQ的demo数据库不可以自动增长,在创建时限制了数据库的大小,只有200MB,用来做一般的小规模测试尚可,如果要做大数据量的测试就不够用了,而且Sybase的数据文件管理方式与Oracle类似,有数据库空间(相当于Oracle的表空间)和数据文件的概念,一个数据库空间可以包括一个或多个数据文件,每个数据文件可以指定不同的大小,数据文件的总大小就是数据库空间的大小,因此可以通过自动增长和增加文件两种方式扩充数据库。

  下面为我们的测试创建一个数据文件的初始大小为1000MB,保留空间为10000MB,实际总空间最多可以根据需要扩充为11000MB的数据库空间。然后我们将此数据库空间设定为默认数据库空间。sp_iqdbspace命令可用于查看当前数据库各个数据库空间使用的情况。

(DBA)> CREATE DBSPACE tpch_main USING FILE tpch_main '/user1/app/tpch_main.iq'SIZE 1000 RESERVE 10000;
Execution time: 4.505 seconds

(DBA)> set option PUBLIC.default_dbspace='tpch_main';
Execution time: 0.003 seconds

(DBA)> sp_iqdbspace
DBSpaceName     DBSpaceType Writable Online Usage TotalSize Reserve NumFiles
----------------------------------------------------------------------------
iq_main         MAIN        T        T      77    275M      0B      1        
IQ_SYSTEM_MAIN  MAIN        T        T      25    25M       200M    1        
IQ_SYSTEM_TEMP  TEMPORARY   T        T      6     12.5M     0B      1        
tpch_main       MAIN        T        T      1     1000M     9.76G   1        


DBSpaceName       NumRWFiles Stripingon StripeSize BlkTypes          OkToDrop
-----------------------------------------------------------------------------
iq_main           1          T          1K         1H,26898A         N      
IQ_SYSTEM_MAIN    1          T          1K         1H,608F,32D,128M  N      
IQ_SYSTEM_TEMP    1          T          1K         1H,64F,16A        N      
tpch_main         1          T          1K         1H                Y      
(4 rows)

Execution time: 0.028 seconds

  如果数据库空间的保留空间容量还未用完,但数据文件大小不足,那么数据库空间只有数据文件大小那么大,可以用下面命令增加文件大小来达到扩容的目的。

(DBA)> alter DBSPACE tpch_main ADD 2000 MB;
Execution time: 8.656 seconds

  下面命令为数据库空间增加一个32000MB的数据文件。数据库空间总大小也扩充相同容量。没有保留空间。

alter DBSPACE tpch_main add FILE tpch_main2 '/user1/app/tpch_main2.iq' size 32000;

  若数据库空间中包含不止一个数据文件,那么不能再用前面的命令直接增加空间大小,必须用下面的命令明确指定是对哪个文件的操作。

(DBA)> alter DBSPACE tpch_main alter FILE tpch_main size 11000;
执行时间: 5.006 秒

  数据库空间的操作还有其他一些,比如设置数据文件的条带化存储等,请查阅用户手册。

  (二)导出和导入

  批量导入采用load table命令,它的第一种语法是:

  Load TABLE 表名 ( 第一个列名 '列分隔符', 第二个列名 '列分隔符',… 最后一个列名 '列分隔符行分隔符') FROM 文件名 选项。

  其中 选项 的功能非常丰富,具体参数请看看手册。

  其中列分隔符可以包含多个字符。也可以用X+十六进制ascii码的方式表示。

  注意如果数据文件是Windows格式的文本文件(换行符是\r\n),最后一列的行分隔符需要用\X0D\X0A表示。比如下面的导入语句。

(DBA)> Load TABLE LINEITEM ( L_ORDERKEY '|',L_PARTKEY '|',L_SUPPKEY '|',L_LINENUMBER '|',L_QUANTITY '|',L_EXTENDEDPRICE '|',L_DISCOUNT '|',L_TAX '|',L_RETURNFLAG '|',L_LINESTATUS '|',L_SHIPDATE '|',L_COMMITDATE '|',L_RECEIPTDATE '|',L_SHIPINSTRUCT '|',L_SHIPMODE '|',L_COMMENT '\X7C\X0D\X0A')From '/user1/app/data/lineitem.tbl'ESCAPES OFF QUOTES OFF NOTIFY 1000000 WITH CHECKPOINT ON;
59986052 row(s) affected
Execution time: 202.032 seconds

 

0