常驻内存是什么

2017-03-01

常驻内存是什么?如何常驻内存?下面由小编来和大家一起了解吧!

常驻内存是什么

常驻内存是一种辅助工具程序,能假装退出,而仍驻留于内存当中,让你运行其它的应用。

常驻内存,这个术语来自MSDOS的时代。MSDOS是单任务的运行环境,系统一般不允许两个以上程序同时运行。也就是说,如果你正在运行一个任务,而又想运行另外一个任务,你必须退出当前的任务。有一种辅助工具程序,能假装退出,而仍驻留于内存当中,让你运行其它的应用。而当你需要的时候,可以用热键随时把该驻留程序激活。这样就看起来像多任务,并用这种方式为用户提供方便。一般这样的程序都是很小的应用程序。占用内存极少。或者占用高端内存。在现代的多任务操作系统中,常驻内存程序,只不过是个名词而已,其内涵早就失去了实际意义。这不是说没有可以常驻内存的程序,而是把程序区分为常驻内存和非常驻内存,无论从技术或者使用的角度来说,都毫无意义。

如何常驻内存

(create table 表名 (字段) storage (buffer_pool keep); --建表时把表缓存到KEEP中

alter table 表名 storage(buffer_pool keep);--把已存在的表缓存至KEEP中

create table 表名(字段..) storage (buffer_pool keep) cache;--创建缓存表

ALTER TABLE Table_Name STORAGE ( BUFFER_POOL KEEP) ;

oracle的db_buffer_pool由三部分组成:

buffer_pool_defualt

buffer_pool_keep

buffer_pool_recycle

如果要把表钉死在内存中,也就是把表钉在keep区。

相关的命令为:

alter table ..... storage(buffer_pool keep);

这句命令把表示表如果缓存的话是缓存在keep区。

可以通过语句:

select table_name from dba_tables where buffer_pool='KEEP';查询到改表是放在keep区中的。

但是不意味着表已经被缓存了。

下面的语句把表缓存:

alter table .... cache;

可以通过

select table_name from dba_ tables where rtrim(cache)='Y'

查询到该表已经被缓存了。

加入到keep区的表不是说不能被移出内存,不过是比较不容易移出内存。

也可以手工来移出内存,命令如下:

alter table ... nocache;

实例

--select *from sms_accounts

--alter table sms_accounts storage(BUFFER_POOL KEEP)

--alter table ECHOBASE20110515 storage(BUFFER_POOL KEEP)

--select table_name from dba_tables where buffer_pool='KEEP'

--alter table sms_accounts cache

--alter table ECHOBASE20110515 cache

--select table_name,cache from user_tables where table_name='ECHOBASE20110515'

--select table_name,cache from user_tables where table_name='SMS_ACCOUNTS'

更多相关阅读

最新发布的文章