楼主: 小人物

[FAQ] Oracle 11g的Server Result Cache特征

[复制链接]
论坛徽章:
27
授权会员
日期:2005-10-30 17:05:33管理团队成员
日期:2011-05-07 01:45:082012新春纪念徽章
日期:2012-02-13 15:11:362012新春纪念徽章
日期:2012-02-13 15:11:362012新春纪念徽章
日期:2012-02-13 15:11:362012新春纪念徽章
日期:2012-02-13 15:11:362012新春纪念徽章
日期:2012-02-13 15:11:36优秀写手
日期:2013-12-18 09:29:13马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14
11#
发表于 2007-8-22 17:08 | 只看该作者
这个功能是是11g的一个很重要的功能

使用道具 举报

回复
论坛徽章:
63
19周年集字徽章-19
日期:2020-09-23 02:43:002012新春纪念徽章
日期:2012-02-13 15:12:092012新春纪念徽章
日期:2012-01-04 11:49:54ITPUB十周年纪念徽章
日期:2011-11-01 16:20:28现任管理团队成员
日期:2011-05-07 01:45:082011新春纪念徽章
日期:2011-02-18 11:42:472011新春纪念徽章
日期:2011-01-25 15:42:562011新春纪念徽章
日期:2011-01-25 15:42:332011新春纪念徽章
日期:2011-01-25 15:42:152011新春纪念徽章
日期:2011-01-25 15:41:50
12#
发表于 2007-8-22 23:17 | 只看该作者
嗯.不错的

使用道具 举报

回复
论坛徽章:
7
授权会员
日期:2006-03-20 09:20:35会员2007贡献徽章
日期:2007-09-26 18:42:10ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:44生肖徽章2007版:鸡
日期:2008-01-02 17:35:53生肖徽章2007版:鼠
日期:2008-01-02 17:35:532010广州亚运会纪念徽章:射击
日期:2010-11-11 18:24:092010广州亚运会纪念徽章:现代五项
日期:2010-11-11 18:26:56
13#
发表于 2007-8-23 09:51 | 只看该作者
result_cache_max_size     这个参数占有的内存从SGA还是pga中分配?或者两者都不是,是单独的一块内存!

使用道具 举报

回复
论坛徽章:
7
ITPUB元老
日期:2005-09-18 11:00:10授权会员
日期:2005-10-30 17:05:33数据库板块每日发贴之星
日期:2005-12-21 01:01:31会员2006贡献徽章
日期:2006-04-17 13:46:34会员2007贡献徽章
日期:2007-09-26 18:42:10ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:44蛋疼蛋
日期:2012-02-13 13:03:57
14#
发表于 2007-8-23 09:55 | 只看该作者
最初由 tiegang_zhang 发布
[B]result_cache_max_size     这个参数占有的内存从SGA还是pga中分配?或者两者都不是,是单独的一块内存! [/B]


shared pool

使用道具 举报

回复
论坛徽章:
7
授权会员
日期:2006-03-20 09:20:35会员2007贡献徽章
日期:2007-09-26 18:42:10ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:44生肖徽章2007版:鸡
日期:2008-01-02 17:35:53生肖徽章2007版:鼠
日期:2008-01-02 17:35:532010广州亚运会纪念徽章:射击
日期:2010-11-11 18:24:092010广州亚运会纪念徽章:现代五项
日期:2010-11-11 18:26:56
15#
发表于 2007-8-23 09:56 | 只看该作者
不好意思,文档里已经说了,是SHARE_POOL里,NIGOO文章里说了

使用道具 举报

回复
论坛徽章:
7
授权会员
日期:2006-03-20 09:20:35会员2007贡献徽章
日期:2007-09-26 18:42:10ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:44生肖徽章2007版:鸡
日期:2008-01-02 17:35:53生肖徽章2007版:鼠
日期:2008-01-02 17:35:532010广州亚运会纪念徽章:射击
日期:2010-11-11 18:24:092010广州亚运会纪念徽章:现代五项
日期:2010-11-11 18:26:56
16#
发表于 2007-8-23 09:57 | 只看该作者
最初由 teddyboy 发布
[B]

shared pool [/B]


谢谢楼主,这么快回贴了!

使用道具 举报

回复
论坛徽章:
92
2011新春纪念徽章
日期:2011-01-25 15:42:33咸鸭蛋
日期:2012-03-19 10:46:00版主1段
日期:2012-05-15 15:24:11奥运会纪念徽章:排球
日期:2012-08-29 07:02:50奥运会纪念徽章:跳水
日期:2012-09-26 06:44:27ITPUB 11周年纪念徽章
日期:2012-09-28 17:34:42ITPUB 11周年纪念徽章
日期:2012-10-09 18:03:32奥运会纪念徽章:击剑
日期:2012-10-12 07:20:332013年新春福章
日期:2013-02-25 14:51:242012新春纪念徽章
日期:2012-02-13 15:13:20
17#
发表于 2007-8-23 16:32 | 只看该作者
不知道是什么机制去触发invalid result cache while records being updated

类似mysql的cache result机制

使用道具 举报

回复
论坛徽章:
92
2011新春纪念徽章
日期:2011-01-25 15:42:33咸鸭蛋
日期:2012-03-19 10:46:00版主1段
日期:2012-05-15 15:24:11奥运会纪念徽章:排球
日期:2012-08-29 07:02:50奥运会纪念徽章:跳水
日期:2012-09-26 06:44:27ITPUB 11周年纪念徽章
日期:2012-09-28 17:34:42ITPUB 11周年纪念徽章
日期:2012-10-09 18:03:32奥运会纪念徽章:击剑
日期:2012-10-12 07:20:332013年新春福章
日期:2013-02-25 14:51:242012新春纪念徽章
日期:2012-02-13 15:13:20
18#
发表于 2007-8-23 16:33 | 只看该作者
能否测试一下,这个参数的on off对latch的影响?

使用道具 举报

回复
论坛徽章:
32
授权会员
日期:2005-10-30 17:05:332010年世界杯参赛球队:阿根廷
日期:2010-04-20 23:13:402010年世界杯参赛球队:葡萄牙
日期:2010-01-25 10:21:04生肖徽章2007版:蛇
日期:2009-08-10 18:06:54生肖徽章2007版:鸡
日期:2009-01-21 21:16:32奥运会纪念徽章:跳水
日期:2008-04-25 22:46:42生肖徽章2007版:鸡
日期:2008-01-02 17:35:53生肖徽章:龙
日期:2007-01-25 16:57:53生肖徽章:虎
日期:2007-01-25 16:57:33生肖徽章:鸡
日期:2006-09-26 17:35:06
19#
 楼主| 发表于 2007-8-23 17:51 | 只看该作者
最初由 玉面飞龙 发布
[B]不知道是什么机制去触发invalid result cache while records being updated

类似mysql的cache result机制 [/B]


不知道跟你说的是不是一回事,我测试了一下:

session 1:
[php]
SQL> exec dbms_result_cache.flush;

PL/SQL procedure successfully completed.

SQL> show parameter result_cache_mode

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
result_cache_mode                    string      FORCE
SQL> select owner,count(*) from t_compress group by owner;

OWNER                            COUNT(*)
------------------------------ ----------
...

12 rows selected.
[/php]
Session 2:
[php]
SQL> select cache_id,name from v$result_cache_objects;

CACHE_ID                                                                                      NAME
--------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------------
TEST.T_COMPRESS                                                                               TEST.T_COMPRESS
5bg7fxv3404w32v0vqv0bhgccf                                                                    select owner,count(*) from t_compress group by owner

SQL> select * from V$RESULT_CACHE_DEPENDENCY;

RESULT_ID  DEPEND_ID  OBJECT_NO
---------- ---------- ----------
         1          0      58797

--58797为t_compress的object_id.
[/php]
Session 1:
[php]
SQL> set autot trace
SQL> select owner,count(*) from t_compress group by owner;

12 rows selected.

Execution Plan
----------------------------------------------------------
Plan hash value: 2456935480

--------------------------------------------------------------------------------
| Id  | Operation           | Name                       | Rows  | Bytes | Cost
(%CPU)| Time     |
--------------------------------------------------------------------------------
|   0 | SELECT STATEMENT    |                            |    12 |    72 |    79
   (8)| 00:00:01 |

|   1 |  RESULT CACHE       | 5bg7fxv3404w32v0vqv0bhgccf |       |       |
      |          |

|   2 |   HASH GROUP BY     |                            |    12 |    72 |    79
   (8)| 00:00:01 |

|   3 |    TABLE ACCESS FULL| T_COMPRESS                 | 57865 |   339K|    74
   (2)| 00:00:01 |

--------------------------------------------------------------------------------
Result Cache Information (identified by operation id):
------------------------------------------------------

   1 - column-count=2; dependencies=(TEST.T_COMPRESS); parameters=(nls); name="s
elect owner,count(*) from t_compress group by owner"

Statistics
----------------------------------------------------------
          0  recursive calls
          0  db block gets
          0  consistent gets
          0  physical reads
          0  redo size
        679  bytes sent via SQL*Net to client
        420  bytes received via SQL*Net from client
          2  SQL*Net roundtrips to/from client
          0  sorts (memory)
          0  sorts (disk)
         12  rows processed
         
SQL> set autot off

SQL> update t_compress set owner='TEST1' where owner='test';

0 rows updated.
--更新了0行.
SQL> commit;

Commit complete.
[/php]

Sesssion 2:
[php]
SQL> select * from V$RESULT_CACHE_DEPENDENCY;

no rows selected
--对应的依赖删除了,这时再查询不能使用这个result set.
[/php]
Session 1:
[php]
SQL> set autot trace
SQL> select owner,count(*) from t_compress group by owner;

12 rows selected.

Execution Plan
----------------------------------------------------------
Plan hash value: 2456935480

--------------------------------------------------------------------------------
| Id  | Operation           | Name                       | Rows  | Bytes | Cost
(%CPU)| Time     |
--------------------------------------------------------------------------------
|   0 | SELECT STATEMENT    |                            |    12 |    72 |    79
   (8)| 00:00:01 |

|   1 |  RESULT CACHE       | 5bg7fxv3404w32v0vqv0bhgccf |       |       |
      |          |

|   2 |   HASH GROUP BY     |                            |    12 |    72 |    79
   (8)| 00:00:01 |

|   3 |    TABLE ACCESS FULL| T_COMPRESS                 | 57865 |   339K|    74
   (2)| 00:00:01 |
--------------------------------------------------------------------------------

Result Cache Information (identified by operation id):
------------------------------------------------------

   1 - column-count=2; dependencies=(TEST.T_COMPRESS); parameters=(nls); name="s
elect owner,count(*) from t_compress group by owner"

Statistics
----------------------------------------------------------
          0  recursive calls
          0  db block gets
        258  consistent gets
          0  physical reads
          0  redo size
        679  bytes sent via SQL*Net to client
        420  bytes received via SQL*Net from client
          2  SQL*Net roundtrips to/from client
          0  sorts (memory)
          0  sorts (disk)
         12  rows processed
[/php]

再看看Result Cache Information的内容,猜下选择是适合结果集的步骤:column-count,dependencies,parameters,name
这几个因素影响result set选择.update会删到dependencies里面对应的.

欢迎探讨...

使用道具 举报

回复
论坛徽章:
32
授权会员
日期:2005-10-30 17:05:332010年世界杯参赛球队:阿根廷
日期:2010-04-20 23:13:402010年世界杯参赛球队:葡萄牙
日期:2010-01-25 10:21:04生肖徽章2007版:蛇
日期:2009-08-10 18:06:54生肖徽章2007版:鸡
日期:2009-01-21 21:16:32奥运会纪念徽章:跳水
日期:2008-04-25 22:46:42生肖徽章2007版:鸡
日期:2008-01-02 17:35:53生肖徽章:龙
日期:2007-01-25 16:57:53生肖徽章:虎
日期:2007-01-25 16:57:33生肖徽章:鸡
日期:2006-09-26 17:35:06
20#
 楼主| 发表于 2007-8-23 17:52 | 只看该作者
最初由 玉面飞龙 发布
[B]能否测试一下,这个参数的on off对latch的影响? [/B]


result_cache_mode?

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表