ITPub博客

首页 > Linux操作系统 > Linux操作系统 > BLOCKSIZE不同值的读取效率实验

BLOCKSIZE不同值的读取效率实验

原创 Linux操作系统 作者:willlxy 时间:2009-04-17 11:56:03 0 删除 编辑

BLOCKSIZE不同值的读取效率实验

实验概述:

本实验是为了验证不同BLOCKSIZE大小对读取含有BLOB大字段表格的效率影响

实验环境:

服务器  windows server 2008+ oracle 11g  位于325机房

客户端  windows XP 位于313机房

实验数据:

    1.存储在BLOB的数据为50张武测正射影响图片 wtusm.bmp 大小为(10.2M)总数据量为50*10.2M = 510M

2.存储在BLOB的数据为50张武测正射影响图片 wtusm.bmp 大小为(572K)总数据量为50*572K =28.6M

 

 

实验步骤:

1.创建两个不同blocksize 的表空间

CREATE TABLESPACE test8

    DATAFILE 'M:\DATA\test8k_090415.dbf' SIZE 1024M

      AUTOEXTEND ON NEXT 256M MAXSIZE 10240M

    BLOCKSIZE 8K

    EXTENT MANAGEMENT LOCAL AUTOALLOCATE

    SEGMENT SPACE MANAGEMENT AUTO;

CREATE TEMPORARY TABLESPACE test8_temp

    TEMPFILE 'M:\DATA\test8k_temp_090415.dbf' SIZE 256M     AUTOEXTEND ON;

 

CREATE TABLESPACE test16

    DATAFILE 'M:\DATA\test16k_090415.dbf' SIZE 1024M

      AUTOEXTEND ON NEXT 256M MAXSIZE 10240M

    BLOCKSIZE 16K

    EXTENT MANAGEMENT LOCAL AUTOALLOCATE

    SEGMENT SPACE MANAGEMENT AUTO;

CREATE TEMPORARY TABLESPACE test16_temp

    TEMPFILE 'M:\DATA\test16k_temp_090415.dbf' SIZE 256M     AUTOEXTEND ON;

2.创建两个用户,并设置默认表空间,以及授于相应权限

创建用户

CREATE USER test8 INDENTIFIED BY test DEFAULT TABLESPACE LXMTEST_DATA1,TEMPORARY TABLESPACE TEMP;

给用户使用表空间的特权:

ALTER USER db_block_size16 quota unlimited on LXMTEST_DATA1

给用户制授权:

grant CREATE SESSION to db_block_size16;

grant ALTER SESSION to db_block_size16;

grant CREATE CLUSTER to db_block_size16;

grant CREATE DATABASE LINK to db_block_size16;

grant CREATE SEQUENCE to db_block_size16;

grant CREATE VIEW to db_block_size16;

grant CREATE ANY SYNONYM to db_block_size16;

grant CREATE PUBLIC SYNONYM to db_block_size16;

grant CREATE TABLE to db_block_size16;

grant CREATE TYPE to db_block_size16;

grant CREATE USER to db_block_size16;

grant DROP ANY SYNONYM to db_block_size16;

grant DROP PUBLIC SYNONYM to db_block_size16;

grant DROP USER to db_block_size16;

grant SELECT ANY TABLE to db_block_size16;

同样创建另一用户test16/test

3.OCI 编写入库代码

代码实例见 附件  blobexp.rar

4.采用PL*SQL Developer进行读取时间测试

针对数据1,进行读取时间测试,结果如下:

1,全表扫描,获取表内所有数据

全表扫描

1

2

3

4

5

平均

8K

48.344

48.094

47.626

47.719

47.594

47.8754

16K

48.032

47.673

47.327

47.594

47.486

47.6224

 

 

 

 

 

 

 

1

1

2.有选择读取,获取表内25条数据

选读25

1

2

3

4

5

平均

8K

24.688

24.703

24.751

24.781

24.641

24.7128

16K

24.626

24.593

24.578

24.626

24.844

24.6534

2

2

3.只读一条的时间:

任读一条

1

2

3

4

5

平均

8K

0.984

0.953

0.937

0.953

0.953

0.956

16K

0.984

0.954

0.953

0.953

0.953

0.9594

3

3

针对数据2进行读取实验

 

 

1

2

3

4

5

6

7

8

9

10

平均

8K

4

3.953

3.952

4.297

3.985

3.985

3.984

3.953

3.969

4

4.0078

16k

4.297

4.395

4

3.968

3.938

4.11

3.984

3.969

3.952

3.953

4.0566

4

4

实验分析

针对上述数据进行实验,发现blocksize 的大小对数据读取效率影响不大,与官方推荐及预期效果发生矛盾,初步推断可能实验存在缺陷,希望各位帮我检查检查。

 

1.jpg

2.jpg

3.jpg

4.jpg

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/17267437/viewspace-590758/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 表空间的更改
下一篇: VS2008SP1使用入门
请登录后发表评论 登录
全部评论

注册时间:2009-01-07

  • 博文量
    28
  • 访问量
    82693