视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
ArcSDE怎么在Oracle数据库应用多样的(multiple)DBblocksizes
2020-11-09 07:17:58 责编:小采
文档

熟悉Oracle数据库都了解,一旦Oracle软件安装完毕,数据库创建完毕,默认的Block SIZE是默认的,在默认情况下,Block SIZE=8KB,在创建之前是可以修改的,但是库一旦创建完毕,这个不能修改的。那么出现了一种情况,如果用户创建完库之后,想使用BLOCK SIZE=

熟悉Oracle数据库都了解,一旦Oracle软件安装完毕,数据库创建完毕,默认的Block SIZE是默认的,在默认情况下,Block SIZE=8KB,在创建之前是可以修改的,但是库一旦创建完毕,这个值不能修改的。那么出现了一种情况,如果用户创建完库之后,想使用BLOCK SIZE=32KB怎么办?


或者举一个ArcSDE例子吧,我们在Oracle数据库既存储矢量数据也存储影像数据,我们都知道对BLOCK SIZE=8KB存储矢量数据是没有问题,但是如果你使用RasterDataset或者RasterCatalog来存储影像数据,如果你的BLOCK SIZE=32KB,这会提高相关的浏览效率的。但是问题就来了,库已经创建号了,BLOCK SIZE是不能修改了,那么怎么才能解决这个问题呢?


自 Oracle 9i 数据库现在可以有多个数据块大小。

? 每个数据库都指定的 db_block_size '标准' 的块大小。
· 系统和临时表空间使用标准的块大小。
? 应用程序表空间可以使用其他非标准的块大小。
? 表或索引的所有分区都必须都使用相同的块大小。
? SGA (系统全局区域) 具有单独的缓冲区高速缓存,每个块大小为:

DB_2K_CACHE_SIZE

DB_4K_CACHE_SIZE

DB_8K_CACHE_SIZE

DB_16K_CACHE_SIZE

DB_32K_CACHE_SIZE

所以说我们可以创建一个包含BLOCK SIZE=32KB的表空间来存储影像数据,那么我们创建好了 BLOCK SIZE=32KB的表空间,可以修改DBINIT的关键字.

相关参考:http://wenku.baidu.com/view/f12f6c8271fe910ef12df84d.html?st=1


我们来进行一下实验:


使用管理员帐号连接,然后查看一下SGA,因为我们后面设定的缓存大小局限于SGA的空闲存储大小,然后查看默认的block size

C:\Users\Administrator>sqlplus system/oracle@orcl_165

SQL*Plus: Release 11.2.0.1.0 Production on 星期三 1月 11 10:09:39 2012

Copyright (c) 1982, 2010, Oracle. All rights reserved.


连接到:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> show sga

Total System Global Area 417546240 bytes
Fixed Size 2213936 bytes
Variable Size 39048 bytes
Database Buffers 41943040 bytes
Redo Buffers 8482816 bytes
SQL> select name,block_size,current_size from v$buffer_pool;

NAME BLOCK_SIZE CURRENT_SIZE
-------------------- ---------- ------------
DEFAULT 8192 40
创建包含block size=4k的表空间,如果出现问题,修改系统的DB_4K_CACHE_SIZE

SQL> create tablespace test_tbs4k datafile '/opt/oracle/oradata/orcl/test_tbs4k.dbf' size 10M blocksize 4K;
create tablespace test_tbs4k datafile '/opt/oracle/oradata/orcl/test_tbs4k.dbf' size 10M blocksize 4K
*
第 1 行出现错误:
ORA-29339: 表空间块大小 4096 与配置的块大小不匹配


SQL> alter system set db_4k_cache_size=60M;
alter system set db_4k_cache_size=60M
*
第 1 行出现错误:
ORA-02097: 无法修改参数, 因为指定的值无效
ORA-00384: 没有足够的内存来增加高速缓存的大小


SQL> alter system set db_4k_cache_size=6M;

系统已更改。

SQL> create tablespace test_tbs4k datafile '/opt/oracle/oradata/orcl/test_tbs4k.dbf' size 10M blocksize 4K;

表空间已创建。

SQL> select name,block_size,current_size from v$buffer_pool;

NAME BLOCK_SIZE CURRENT_SIZE
-------------------- ---------- ------------
DEFAULT 8192 24
DEFAULT 4096 16

下载本文
显示全文
专题