stripe /block size/db_file_multiblock_read_count

+++++++ 条带大小与block size以及db_file_multiblock_read_count 的关系

首先我们来温习下db_file_multiblock_read_count参数,该参数我想都比较熟悉了,不多说。

db_file_multiblock_read_count:

关于这个参数,不用多说了,是指oracle多块读所能读取的最大block数(主要针对full scan,例如table full scan,index full scan),理论上有这么一个关系:
 
db_file_multiblock_read_count=(max io szie)/block_size ,当然这里的max io size是受限于操作
系统的,另外据我所知,目前db_file_multiblock_read_count参数,oracle所支持的最大值也就是128.
 
另外需要说明一点的是,从10gR2开始,该参数已经是自动调节了。
SQL> SELECT * FROM v$version WHERE rownum < 2;
 
BANNER
--------------------------------------------------------------------------------
Oracle DATABASE 11g Enterprise Edition Release 11.2.0.2.0 - Production
 
SQL> SHOW parameter multiblock
 
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
_hash_multiblock_io_count            INTEGER     0
_sort_multiblock_read_count          INTEGER     2
db_file_multiblock_read_count        INTEGER     54

可以看到,我这里11gR2环境中,参数自动调整后为54,是一个比较大的值了。

block_size:

关于block size,是指定义数据库中数据块的大小,9i之前每个数据库只能有一个block size。从9i开始支持一个库中存在多种
block_size的情况。当然,我们这里不是来讨论block_size定义的,我是来说明下,我们如何来选择适合自己系统的block_size?
 
在oracle 的performance tunning 手册里面,是这样描述的:
 
针对读操作:
 
 1) 如果rows are small且数据库access方式主要是随机操作,那么推荐使用smaller block size;
 2) 如果rows are small且数据库access方式主要是顺序读,那么推荐使用smaller block size;
 3) 如果rows are small且数据库access方式主要是随机和顺序操作,那么推荐使用large block size;
 4) 如果rows are large,比如包含log 数据,那么推荐使用large block size。
 
  
全文请参考原文链接地址: stripe /block size/db_file_multiblock_read_count
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用如下的HiveSQL语句批量count fdp库下表名开头为db_的表的数据量: ```sql USE fdp; SET hive.exec.dynamic.partition.mode=nonstrict; SET hive.exec.dynamic.partition=true; SET hive.exec.max.dynamic.partitions=100000; SET hive.exec.max.dynamic.partitions.pernode=100000; SET hive.exec.max.created.files=100000; SET mapred.reduce.tasks=8; SET mapred.map.tasks=8; SET hive.auto.convert.join=true; SET hive.optimize.bucketmapjoin=true; SET hive.optimize.bucketmapjoin.sortedmerge=true; SET hive.optimize.bucketmapjoin.sortedmerge.bucketmapjoin=true; SET hive.input.format=org.apache.hadoop.hive.ql.io.CombineHiveInputFormat; SET hive.map.aggr=true; SET hive.merge.mapfiles=true; SET hive.merge.mapredfiles=true; SET hive.merge.size.per.task=256000000; SET hive.merge.smallfiles.avgsize=16000000; SET hive.merge.orcfile.stripe.level=true; SET hive.merge.orcfile.stripe.level.threshold=0.5; SET hive.merge.tezfiles=true; SET hive.merge.smallfiles.avgsize=134217728; SET hive.merge.size.per.task=1073741824; SET hive.merge.orcfile.stripe.level=true; SET hive.merge.orcfile.stripe.level.threshold=0.5; SET hive.merge.mapfiles=true; SET hive.merge.mapredfiles=true; SET mapred.max.split.size=512000000; SET hive.exec.dynamic.partition=true; SET hive.exec.dynamic.partition.mode=nonstrict; SET hive.enforce.bucketing=true; SET hive.exec.max.dynamic.partitions=100000; SET hive.exec.max.dynamic.partitions.pernode=100000; SET hive.exec.max.created.files=100000; SET hive.auto.convert.join=true; SET hive.optimize.bucketmapjoin=true; SET hive.optimize.bucketmapjoin.sortedmerge=true; SET hive.optimize.bucketmapjoin.sortedmerge.bucketmapjoin=true; SET hive.input.format=org.apache.hadoop.hive.ql.io.CombineHiveInputFormat; SET hive.map.aggr=true; SET hive.merge.mapfiles=true; SET hive.merge.mapredfiles=true; SET hive.merge.size.per.task=256000000; SET hive.merge.smallfiles.avgsize=16000000; SET hive.merge.orcfile.stripe.level=true; SET hive.merge.orcfile.stripe.level.threshold=0.5; SET hive.merge.tezfiles=true; SET hive.merge.smallfiles.avgsize=134217728; SET hive.merge.size.per.task=1073741824; SET hive.merge.orcfile.stripe.level=true; SET hive.merge.orcfile.stripe.level.threshold=0.5; SET hive.merge.mapfiles=true; SET hive.merge.mapredfiles=true; SET mapred.max.split.size=512000000; SELECT COUNT(*) FROM db_table1 UNION ALL SELECT COUNT(*) FROM db_table2 UNION ALL SELECT COUNT(*) FROM db_table3 ... UNION ALL SELECT COUNT(*) FROM db_tableN; ``` 其中,需要将 `db_table1` 至 `db_tableN` 替换为实际的表名。如果不确定有哪些表名符合条件,可以使用如下的语句查询: ```sql SHOW TABLES LIKE 'db_%'; ``` 该语句会列出所有表名开头为 `db_` 的表。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值