Oracle 参数之_small_table_threshold
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的更多相关文章
- 【体系结构】Oracle参数介绍
[体系结构]Oracle参数介绍 1 BLOG文档结构图 2 前言部分 2.1 导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩ ...
- [Oracle] 参数修改小结
v$parameter Oracle参数的修改比较复杂,有些参数是可以在session级别修改,有些则必须在system级别修改,有些参数修改后马上生效(不需要重启),有些参数则必须重启才能生效,那么 ...
- 各种oracle参数查询语句
各种oracle参数查询语句 1.show parameter:--显示各个系统参数配置 2.select * from v$parameter;--显示各个系统参数配置 2.show paramet ...
- Oracle参数设置之set与reset的实际案例
Oracle参数设置之set与reset的实际案例 环境:Oracle 10.2.0.5 RAC 需求:节点1的aq_tm_processes要求恢复默认,节点2设置要求保持不变 1.构建测试环境 2 ...
- Oracle 参数文件及相关操作介绍
Oracle 参数文件及相关操作介绍 by:授客 QQ:1033553122 1.服务器参数文件 服务器参数文件是一个二进制文件,作为初始化参数的存储仓库.实例运行时,可用ALTER SYSTEM来改 ...
- Oracle参数修改是否需要重启等
Oracle参数修改小结Oracle中有些参数是可以在session级别修改,有些则必须在system级别修改,有些参数不需要重启就能马上生效,有些参数必须重启才能生效,那么如何知道这些信息呢?可以从 ...
- ORACLE参数max_shared_servers空值与零的区别
ORACLE数据库中的参数max_shared_servers,这是一个DBA很熟悉的参数,但是这个参数max_shared_servers为空值与为0有区别吗?这个细节可能很多人都没有注意过.如下所 ...
- oracle参数配置
一.Oracle LARGE_POOL_SIZE大小设置值多少 java_pool_size:以字节为单位, 指定 Java 存储池的大小, 它用于存储 Java 的方法和类定义在共享内存中的表示法, ...
- oracle参数与启停
oracle随系统启动而启动 cs65-64桌面版orcle-11.2.0.4 启动监听器,后台进程,OEM. 注意: 如果只做一和三,只能启动后台进程,监听器不启动,如果只做二和三,只能启动监听器, ...
随机推荐
- BZOJ2002 & LCT模板(分块不会搞)
题意: 看题. 某天,Lostmonkey发明了一种超级弹力装置,为了在他的绵羊朋友面前显摆,他邀请小绵羊一起玩个游戏.游戏一开始,Lostmonkey在地上沿 着一条直线摆上n个装置,每个装置设定初 ...
- POJ2104 & 主席还是可持久化还是 函数式
题意: 区间第K大. SOL: 非常有意思的树,尽管我搞不清楚名字. 原理参见clj的可持久化数据结构研究. wa了整整一天,然后重打,然后1a... code: /*================ ...
- 模态视图(modalTrasitionStyle)如何适应不同的版本
随着版本的更新,模态视图对版本也有不同的要求,那如何让模态视图适应多版本的要求呢?下面是小编的个人看法! -(void)presentModalVC { modalViewController *mo ...
- [深入浅出Windows 10]实现饼图控件
13.2 实现饼图控件 上一小节讲解了动态生成折线图和区域图,对于简单的图形这样通过C#代码来生成的方式是很方便的,但是当我们的图表要实现更加复杂的逻辑的时候,这种动态生成的方式就显得力不从心了,那就 ...
- [WP8.1UI控件编程]Windows Phone大数据量网络图片列表的异步加载和内存优化
11.2.4 大数据量网络图片列表的异步加载和内存优化 虚拟化技术可以让Windows Phone上的大数据量列表不必担心会一次性加载所有的数据,保证了UI的流程性.对于虚拟化的技术,我们不仅仅只是依 ...
- 严重: Error configuring application listener of class org.springframework.web.context.ContextLoaderListener
严重: Error configuring application listener of class org.springframework.web.context.ContextLoaderLis ...
- Rnadom Teams
Rnadom Teams 题目链接:http://acm.hust.edu.cn/vjudge/contest/view.actioncid=88890#problem/B 题目: Descript ...
- css设置移动端checkbox和radio样式
复选框Checkbox是Web应用常用控件,随处可见,原生的复选框控件一般就像下面这样: 这取决于操作系统和浏览器,有些时候,这种样子并不能满足设计要求,这时需要更为精致的复选框样式.以往只有少数浏览 ...
- Python 3.x下消除print()自动换行
Python 2.x下的print语句在输出字符串之后会默认换行,如果不希望换行,只要在语句最后加一个“,”即可.但是在Python 3.x下,print()变成内置函数,加“,”的老方法就行不通了. ...
- ubuntu 安装 GCC
网上查了好多方式,试了一下,最简单可行的是: sudo apt-get install build-essential 等待执行完,输入 gcc -v 输出: Using built-in spec ...