常駐記憶體是什麼

  ?如何常駐記憶體?下面由小編來和大家一起了解吧!

  

  常駐記憶體是一種輔助工具程式,能假裝退出,而仍駐留於記憶體當中,讓你執行其它的應用。

  常駐記憶體,這個術語來自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'