常駐內(nèi)存是什么
常駐內(nèi)存是什么?如何常駐內(nèi)存?下面由學(xué)習(xí)啦小編來和大家一起了解吧!
常駐內(nèi)存是什么
常駐內(nèi)存是一種輔助工具程序,能假裝退出,而仍駐留于內(nèi)存當(dāng)中,讓你運(yùn)行其它的應(yīng)用。
常駐內(nèi)存,這個(gè)術(shù)語來自MSDOS的時(shí)代。MSDOS是單任務(wù)的運(yùn)行環(huán)境,系統(tǒng)一般不允許兩個(gè)以上程序同時(shí)運(yùn)行。也就是說,如果你正在運(yùn)行一個(gè)任務(wù),而又想運(yùn)行另外一個(gè)任務(wù),你必須退出當(dāng)前的任務(wù)。有一種輔助工具程序,能假裝退出,而仍駐留于內(nèi)存當(dāng)中,讓你運(yùn)行其它的應(yīng)用。而當(dāng)你需要的時(shí)候,可以用熱鍵隨時(shí)把該駐留程序激活。這樣就看起來像多任務(wù),并用這種方式為用戶提供方便。一般這樣的程序都是很小的應(yīng)用程序。占用內(nèi)存極少。或者占用高端內(nèi)存。在現(xiàn)代的多任務(wù)操作系統(tǒng)中,常駐內(nèi)存程序,只不過是個(gè)名詞而已,其內(nèi)涵早就失去了實(shí)際意義。這不是說沒有可以常駐內(nèi)存的程序,而是把程序區(qū)分為常駐內(nèi)存和非常駐內(nèi)存,無論從技術(shù)或者使用的角度來說,都毫無意義。
如何常駐內(nèi)存
(create table 表名 (字段) storage (buffer_pool keep); --建表時(shí)把表緩存到KEEP中
alter table 表名 storage(buffer_pool keep);--把已存在的表緩存至KEEP中
create table 表名(字段..) storage (buffer_pool keep) cache;--創(chuàng)建緩存表
ALTER TABLE Table_Name STORAGE ( BUFFER_POOL KEEP) ;
oracle的db_buffer_pool由三部分組成:
buffer_pool_defualt
buffer_pool_keep
buffer_pool_recycle
如果要把表釘死在內(nèi)存中,也就是把表釘在keep區(qū)。
相關(guān)的命令為:
alter table ..... storage(buffer_pool keep);
這句命令把表示表如果緩存的話是緩存在keep區(qū)。
可以通過語句:
select table_name from dba_tables where buffer_pool='KEEP';查詢到改表是放在keep區(qū)中的。
但是不意味著表已經(jīng)被緩存了。
下面的語句把表緩存:
alter table .... cache;
可以通過
select table_name from dba_ tables where rtrim(cache)='Y'
查詢到該表已經(jīng)被緩存了。
加入到keep區(qū)的表不是說不能被移出內(nèi)存,不過是比較不容易移出內(nèi)存。
也可以手工來移出內(nèi)存,命令如下:
alter table ... nocache;
實(shí)例
--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'
看了常駐內(nèi)存是什么的人還看了:
2.硬盤性能差怎么辦