Welcome 微信登录

首页 / 数据库 / MySQL / Oracle 表缓存(caching table)的使用

--************************************-- Oracle 表缓存(caching table)的使用--************************************ 1.使用caching table 的原因        在通常的情况下,应用程序访问在cache中的数据块将按照LRU算法来进行处理。然而对于小表的访问,当使用全表扫描时,则该表    中的块会放置LRU列表最近最少使用尾部的(LRU端),因此很快就被淘汰出局。然而使用基于成本优化的方法,对于小表进行查询以及收    集统计信息,大多情形下走的是全表扫描,因此势必造成一种情形,即该表后续需要再次访问,而每次使用了全表扫描,而该对象很快    被淘汰出局,因此需要再次读入到buffer cache,耗用了大量的I/O。            2.解决该问题的方法    设计表为caching table ,即使对该表使用全表访问时,则该表对象的块仍然被放置在LRU列表最近最多使用的尾部(MRU段)    不要过度的使用caching table,以免造成性能下降    通常将caching table 存放在keep buffer pool,缺省的情况下会放置在default buffer pool。    3.具有cache属性与pin 的差异    对于具有cache属性的对象,并不是将该对象pin到cache里,而是尽可能的延迟该对象驻留cache的时间    而对于pin对象,则是将该对象常驻到内存    4.设计cache table 的方法    创建表对象时,使用cache子句    修改表对象时,使用cache子句    使用cache 提示        创建表对象时使用cache,如下面的例子        create table tb_test        (id number         ,name varchar2(20)         ,sex  char(1)         ,age  number         ,score number)         tablespace users         storage(initial 50k next 50k pctincrease 0)         cache;    --指定cache子句      使用alter table 修改已经存在的表        alter table scott.emp cache;             可以使用nocache来修改对象,使其不具备cache属性        alter table soctt.emp nocache             使用hint提示符来实现cache        select /*+ cache*/ empno,ename from scott.emp;
  • 1
  • 2
  • 3
  • 下一页
Linux下MySQL编译安装备忘Oracle 冷备份相关资讯      Oracle教程 
  • Oracle中纯数字的varchar2类型和  (07/29/2015 07:20:43)
  • Oracle教程:Oracle中查看DBLink密  (07/29/2015 07:16:55)
  • [Oracle] SQL*Loader 详细使用教程  (08/11/2013 21:30:36)
  • Oracle教程:Oracle中kill死锁进程  (07/29/2015 07:18:28)
  • Oracle教程:ORA-25153 临时表空间  (07/29/2015 07:13:37)
  • Oracle教程之管理安全和资源  (04/08/2013 11:39:32)
本文评论 查看全部评论 (0)
表情: 姓名: 字数