各位,我有这样一个问题,我有几个表,总数据为300M,机器内存为1G。
现在我想将这几个表缓存到内存中,使用这几个表时从内存中读取而不是从硬盘。
同时我也不想操作系统给我放到虚拟内存中(如果无法实现这点也没有关系)。
我该如何配置表属性和数据库参数?
系统为:Windows2000 Server+Oracle 8.1.6
现在我想将这几个表缓存到内存中,使用这几个表时从内存中读取而不是从硬盘。
同时我也不想操作系统给我放到虚拟内存中(如果无法实现这点也没有关系)。
我该如何配置表属性和数据库参数?
系统为:Windows2000 Server+Oracle 8.1.6
解决方案 »
- Oracle 11g R2客户端与服务器端在同一台机器,无法配置监听
- 数据库驱动程序是如何工作的?
- 在线等: 关于表空间
- 记录的横向复制
- 请oracle高手帮我同事洗冤:删除记录跟踪
- VB给OARCLE的存储过程中的INT类型赋值时,应该写adinteger还是adnumeric还是别的?
- 用JDBC连接oracle出现的问题,请高手解答,谢谢!
- 求救!!!!!!!!!!!!!!!!!!!!!!
- create table image(day date default to_date('01-02-2002','DD-MON-YYYY'))
- 数据传输(我是新手),有经验的朋友进来看看。
- 查询操作中执行DML操作
- 求PACS数据库相关设计
不过可以试一下/alter table x cache;sga约等于1/2的物理内存。
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的内存进行换页操作)