SQL> select * from v$version;

BANNER
-----------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
PL/SQL Release 11.2.0.1.0 - Production
CORE 11.2.0.1.0 Production
TNS for 64-bit Windows: Version 11.2.0.1.0 - Production
NLSRTL Version 11.2.0.1.0 - Production SQL> show sga Total System Global Area 3423965184 bytes
Fixed Size 2180544 bytes
Variable Size 1929382464 bytes
Database Buffers 1476395008 bytes
Redo Buffers 16007168 bytes SQL> set linesize 120
SQL> col name for a30
SQL> col value for a20
SQL> col pdesc for a50
SQL> SELECT x.ksppinm NAME, y.ksppstvl VALUE, x.KSPPDESC PDESC
2 FROM SYS.x$ksppi x, SYS.x$ksppcv y
3 WHERE x.indx = y.indx AND x.ksppinm LIKE '%small_table_threshold%'; NAME VALUE PDESC
------------------------------ -------------------- --------------------------------------------------
_small_table_threshold 3467 threshold level of table size for direct reads SQL> SELECT x.ksppinm NAME, y.ksppstvl VALUE, x.KSPPDESC PDESC
2 FROM SYS.x$ksppi x, SYS.x$ksppcv y
3 WHERE x.indx = y.indx AND x.ksppinm LIKE '%_serial_direct_read%'; NAME VALUE PDESC
------------------------------ ------------------------------ --------------------------------------------------
_serial_direct_read FALSE enable direct read in serial SQL> alter session set "_serial_direct_read"=true; SQL> alter session set events '10949 trace name context off'; SQL> create table dt as select * from dba_objects; SQL> insert into dt select * from dt; SQL> insert into dt select * from dt; SQL> select count(*) from dt; COUNT(*)
----------
290364 SQL> select blockS from user_segments where segment_name='DT'; BLOCKS
----------
4224 SQL> alter session set events '10046 trace name context forever,level 8'; 会话已更改。 SQL> alter system flush buffer_cache; 系统已更改。 SQL> select count(*) from dt; COUNT(*)
----------
290364 WAIT #3: nam='reliable message' ela= 160 channel context=8795194841928 channel handle=8795194796064 broadcast message=8795145225720 obj#=74914 tim=19703281481
WAIT #3: nam='enq: KO - fast object checkpoint' ela= 1109 name|mode=1263468550 2=65555 0=1 obj#=74914 tim=19703282668
WAIT #3: nam='direct path read' ela= 4401 file number=4 first dba=57635 block cnt=13 obj#=74914 tim=19703287486
WAIT #3: nam='direct path read' ela= 1424 file number=4 first dba=57649 block cnt=15 obj#=74914 tim=19703289236
WAIT #3: nam='direct path read' ela= 1183 file number=4 first dba=57665 block cnt=15 obj#=74914 tim=19703290787
WAIT #3: nam='direct path read' ela= 1403 file number=4 first dba=57681 block cnt=15 obj#=74914 tim=19703292472
WAIT #3: nam='direct path read' ela= 1181 file number=4 first dba=57697 block cnt=15 obj#=74914 tim=19703293980
WAIT #3: nam='direct path read' ela= 1261 file number=4 first dba=57713 block cnt=15 obj#=74914 tim=19703295567
WAIT #3: nam='direct path read' ela= 1232 file number=4 first dba=61825 block cnt=15 obj#=74914 tim=19703297126
WAIT #3: nam='direct path read' ela= 548 file number=4 first dba=61841 block cnt=15 obj#=74914 tim=19703298609
WAIT #3: nam='direct path read' ela= 8324 file number=4 first dba=61954 block cnt=126 obj#=74914 tim=19703307811
WAIT #3: nam='direct path read' ela= 7573 file number=4 first dba=62082 block cnt=126 obj#=74914 tim=19703317154 SQL> delete from dt where rownum<140000; 已删除139999行。 SQL> alter table dt enable row movement; 表已更改。 SQL> alter table dt move tablespace users; 表已更改。 SQL> select blocks from user_segments where segment_name='DT'; BLOCKS
----------
2304 SQL> alter system flush buffer_cache; 系统已更改。 SQL> select count(*) from dt; COUNT(*)
----------
290364

PARSING IN CURSOR #7 len=23 dep=0 uid=91 oct=3 lid=91 tim=20802442129 hv=4123149654 ad='7ffc8c72548' sqlid='4paafg3uw4jaq'
select count(*) from dt
END OF STMT
PARSE #7:c=0,e=124,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=1,plh=341227488,tim=20802442128
EXEC #7:c=0,e=43,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=1,plh=341227488,tim=20802442340
WAIT #7: nam='SQL*Net message to client' ela= 4 driver id=1111838976 #bytes=1 p3=0 obj#=0 tim=20802442426
WAIT #7: nam='db file sequential read' ela= 8896 file#=4 block#=57634 blocks=1 obj#=74914 tim=20802451409
WAIT #7: nam='direct path read' ela= 805 file number=4 first dba=57635 block cnt=13 obj#=74914 tim=20802452734
WAIT #7: nam='direct path read' ela= 1085 file number=4 first dba=57649 block cnt=15 obj#=74914 tim=20802454106
WAIT #7: nam='direct path read' ela= 422 file number=4 first dba=57665 block cnt=15 obj#=74914 tim=20802454836
WAIT #7: nam='direct path read' ela= 544 file number=4 first dba=57681 block cnt=15 obj#=74914 tim=20802455670
WAIT #7: nam='direct path read' ela= 564 file number=4 first dba=57697 block cnt=15 obj#=74914 tim=20802456506
WAIT #7: nam='direct path read' ela= 492 file number=4 first dba=57713 block cnt=15 obj#=74914 tim=20802457278
WAIT #7: nam='direct path read' ela= 1183 file number=4 first dba=61825 block cnt=15 obj#=74914 tim=20802458751
WAIT #7: nam='direct path read' ela= 661 file number=4 first dba=61841 block cnt=15 obj#=74914 tim=20802460256

 

缺省情况下Oracle认为在2%的cache buffer以下的表格认为是小表,在FTS操作中被放到MRU end。 
在_small_table_threshold以上的表格标记为大表,FTS操作结果被放置到LRU end。也就是说Oracle仅仅缓冲一次操作的结果。

The default is not 5 blocks; it is 2% of db_block_buffers with a minimum of 4 blocks. The effect is exactly as you describe. Small tables are cached at the MRU end of the cache by default. The statistic is incremented for all logical small table scans, even against fully cached tables. It is also incremented for scans of small tables for which the NOCACHE keyword has been specified. It is not however incremented for large tables for which the CACHE keyword has been specified.

This parameter is session modifiable and system modifiable with deferred semantics. If changed dynamically, the parameter name needs to be enclosed in quotes to protect the leading underscore, as follows.

alter session set "_small_table_theshold" = 100;

需要指出的是该参数可以动态调整,其默认值不是业界所认为的5 blocks,而是小于等于db_cache_size*2%或者是4*blocksize(当db_cache_size小于200个blocks时),假设2G的Cache buffer,那么2G*2%=40m,这样在40m以下的表格都可能被认为小表。假设表格平均行长为200字节,8k块,具有5120个块。平均可用空间8000,这样40m的表格有204800行。这个数字还是颇为可观的

Oracle 参数之_small_table_threshold的更多相关文章

  1. 【体系结构】Oracle参数介绍

    [体系结构]Oracle参数介绍 1  BLOG文档结构图 2  前言部分 2.1  导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩ ...

  2. [Oracle] 参数修改小结

    v$parameter Oracle参数的修改比较复杂,有些参数是可以在session级别修改,有些则必须在system级别修改,有些参数修改后马上生效(不需要重启),有些参数则必须重启才能生效,那么 ...

  3. 各种oracle参数查询语句

    各种oracle参数查询语句 1.show parameter:--显示各个系统参数配置 2.select * from v$parameter;--显示各个系统参数配置 2.show paramet ...

  4. Oracle参数设置之set与reset的实际案例

    Oracle参数设置之set与reset的实际案例 环境:Oracle 10.2.0.5 RAC 需求:节点1的aq_tm_processes要求恢复默认,节点2设置要求保持不变 1.构建测试环境 2 ...

  5. Oracle 参数文件及相关操作介绍

    Oracle 参数文件及相关操作介绍 by:授客 QQ:1033553122 1.服务器参数文件 服务器参数文件是一个二进制文件,作为初始化参数的存储仓库.实例运行时,可用ALTER SYSTEM来改 ...

  6. Oracle参数修改是否需要重启等

    Oracle参数修改小结Oracle中有些参数是可以在session级别修改,有些则必须在system级别修改,有些参数不需要重启就能马上生效,有些参数必须重启才能生效,那么如何知道这些信息呢?可以从 ...

  7. ORACLE参数max_shared_servers空值与零的区别

    ORACLE数据库中的参数max_shared_servers,这是一个DBA很熟悉的参数,但是这个参数max_shared_servers为空值与为0有区别吗?这个细节可能很多人都没有注意过.如下所 ...

  8. oracle参数配置

    一.Oracle LARGE_POOL_SIZE大小设置值多少 java_pool_size:以字节为单位, 指定 Java 存储池的大小, 它用于存储 Java 的方法和类定义在共享内存中的表示法, ...

  9. oracle参数与启停

    oracle随系统启动而启动 cs65-64桌面版orcle-11.2.0.4 启动监听器,后台进程,OEM. 注意: 如果只做一和三,只能启动后台进程,监听器不启动,如果只做二和三,只能启动监听器, ...

随机推荐

  1. ccc 多点触控2

    经过不断的思考发现,如果是两个sprite都添加触控的时候,往往直接成单点触控, 但是如果是两个node的时候在node上面点击就会变成多点触控的形式 cc.Class({ extends: cc.C ...

  2. linux 安装eclipse 和cdt

    这个东西说起来简单,但是经历了无数次到失败,终于还是安装完成了. 最早到时候我下载了eclipse和cdt让后安装,安装完成以后,无法运行和编译程序 后来我学到了一个牛逼的命令yum 这个命令会帮助我 ...

  3. 洛谷 P1967 货车运输 Label: 倍增LCA && 最小瓶颈路

    题目描述 A 国有 n 座城市,编号从 1 到 n,城市之间有 m 条双向道路.每一条道路对车辆都有重量限制,简称限重.现在有 q 辆货车在运输货物, 司机们想知道每辆车在不超过车辆限重的情况下,最多 ...

  4. 1204. Maze Traversal

    1204.   Maze Traversal A common problem in artificial intelligence is negotiation of a maze. A maze ...

  5. 【JAVA】JMX简单使用方法

    [BEAN] 配置   <!-- JMX 对应的接口服务--> <bean id="emailInterfaceServer" class="com.s ...

  6. MongoDB 用户配置

    ====[安装]====DOS下切换到文件所在盘符 例如 D:\MongoDB\bin设置数据库保存位置 mongod.exe --dbpath D:\MongoDB\Data [--auth]//用 ...

  7. 百度ueditor 拖文件或world 里面复制粘贴图片到编辑中 上传到第三方问题

    我这边从world 里面复制粘贴图片到编辑器中,它自动给我上传了,但是我是用的第三方的要设置一个token值,我找了很久,也没有找到应该在哪里设置这个上传的参数,如果是点击图片上传,我知道在dialo ...

  8. 李洪强iOS经典面试题134-C语言

    可能碰到的iOS笔试面试题(4)--C语言   C语言,开发的基础功底,iOS很多高级应用都要和C语言打交道,所以,C语言在iOS开发中的重要性,你懂的.里面的一些问题可能并不是C语言问题,但是属于计 ...

  9. preventDefault()方法

    该方法将通知 Web 浏览器不要执行与事件关联的默认动作(如果存在这样的动作). 例如,如果 type 属性是 "submit",在事件传播的任意阶段可以调用任意的事件句柄,通过调 ...

  10. Android自定义UI模板

    第一步:自定义xml属性 新建一个android项目,在values文件夹中新建一个atts.xml的文件,在这个xml文件中声明我们一会在使用自定义控件时候需要指明的属性.atts.xml < ...