关于数据缓存的问题-参与者有分

hc_yao 2004-04-04 01:14:47
各位,我有这样一个问题,我有几个表,总数据为300M,机器内存为1G。
现在我想将这几个表缓存到内存中,使用这几个表时从内存中读取而不是从硬盘。
同时我也不想操作系统给我放到虚拟内存中(如果无法实现这点也没有关系)。
我该如何配置表属性和数据库参数?
系统为:Windows2000 Server+Oracle 8.1.6

...全文
76 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
5like 2004-04-05
  • 打赏
  • 举报
回复
向drabit(square)同志学习!
hc_yao 2004-04-05
  • 打赏
  • 举报
回复
非常感谢大家的支持!
问题已经得到解决.
ern 2004-04-05
  • 打赏
  • 举报
回复
学习一下
drabit 2004-04-05
  • 打赏
  • 举报
回复
缓存表:
alter table x cache 只是将表被访问的块放在MRU中,还是会被替换出去,只是保留的时间长一些。(nocache的时候放在LRU中,很快被替换).
将表放在keep pool中,保证表永远在内存中:
1.在初始化文件设置keep pool
DB_KEEP_CACHE_SIZE = <size of KEEP pool>
2.修改表存储参数,使其缓存在keep pool 中
ALTER TABLE <TABLE NAME> STORAGE (BUFFER_POOL Keep)

不让oracle使用虚拟内存:
初始化文件设置:
lock_sga=true
(防止OS对oracle的内存进行换页操作)
logzgh 2004-04-05
  • 打赏
  • 举报
回复
帮你顶一把
nbnasom 2004-04-05
  • 打赏
  • 举报
回复
学习
wuyaxlz 2004-04-05
  • 打赏
  • 举报
回复
学习一下
xbm2002 2004-04-04
  • 打赏
  • 举报
回复
关注ing
welyngj 2004-04-04
  • 打赏
  • 举报
回复
300M的表放在缓存算是大表了。不合适吧!
不过可以试一下/

alter table x cache;

sga约等于1/2的物理内存。

3,492

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧