oracle怎么緩存,oracle查詢緩存

如何有效實現依賴Oracle的緩存策略

ASP.NET 中的緩存提供了對SQL依賴項的支持,也就是說當SQL SERVER數據庫中的表或行中的數據被更改后,緩存中的頁面就失效,否則,頁面輸出可一直保留在緩存當中。這確實為程序員提供了方便。但微軟一向很小家子氣,只為使用自家產品SQL SERVER的程序員提供了方便,那些用Oracle數據庫的ASP.NET程序員怎么辦呢?

創新互聯公司專業為企業提供魚峰網站建設、魚峰做網站、魚峰網站設計、魚峰網站制作等企業網站建設、網頁設計與制作、魚峰企業網站模板建站服務,10多年魚峰做網站經驗,不只是建網站,更提供有價值的思路和整體網絡服務。

其實不用著急,因為ASP.NET中的緩存還提供了對文件依賴項的支持,也就是緩存依賴于某個文件,該文件被修改后,緩存中的頁面就失效。只要巧妙利用ASP.NET的文件依賴項緩存策略和Oracle中的觸發器,就可輕松實現依賴Oracle的緩存策略。思路很簡單,先將頁面的緩存策略設置為依賴某一個文件,再為Oracle中需要依賴的表添加一個觸發器,當表中的數據被更改時,修改緩存所依賴的文件中的內容。

下面以一個小例子來具體說明:

試驗目的:Default.aspx頁面的緩存依賴于Oracle數據庫中SCOTT用戶的DEPT表,該表中數據被更改后,緩存中的頁面失效。緩存的過期時間為120秒。

一、設置網站頁面的緩存依賴于文件TextFile.txt詳見System.Web.Caching.Cache類 Asp.NET緩存 各種緩存依賴二、在Oracle數據庫中創建觸發器

1、觸發器被觸發時執行PL/SQL代碼塊。PL/SQL代碼塊直接讀寫操作系統中的文件,需調用內置的utl_file程序包。這需要先修改Oracle的初始化參數文件INIT.ORA,在其中添加參數utl_file_dir,來指定文件的目錄。修改INIT.ORA文件后,需重啟Oracle數據庫,設置的參數才能生效。

在INIT.ORA文件中添加下面一行內容:

utl_file_dir='E:/CSharp/CacheByOracleDependncy'

也可以設置為utl_file_dir=*,不指定具體目錄,即任何目錄都可以。

如果是Oracle 9i數據庫,還有一種方法也能起到同樣的作用:在sys用戶下創建一個directory目錄(實際上是在sys用戶下的dir$表中增加一個對應的OS_PATH),然后將對該directory對象的讀/寫操作的權限grant給public。

[sql] view plain copy

create or replace directory FILEPATH as 'E:/CSharp/CacheByOracleDependncy';grant read on directory FILEPATH to public;這里我使用的是第二種方法。

2、為所依賴的表(SCOTT用戶的DEPT表)創建一個觸發器:當DEPT表中的數據更改后,觸發器就會將當前系統時間寫入TextFile.txt文件中。

[sql] view plain copy

CREATE OR REPLACE TRIGGER

"SCOTT"."TEST_CACHE_BY_ORACLE_DEPENDNCY" AFTERINSERT

OR UPDATE

OR DELETE OF "DEPTNO", "DNAME", "LOC" ON "SCOTT"."DEPT" DECLAREfile_handle utl_file.file_type;

BEGIN

--打開文件

file_handle := utl_file.fopen('FILEPATH','TextFile.txt','w');--將當前系統時間寫入文件

IF utl_file.is_open(file_handle) THEN

utl_file.put_line(file_handle,to_char(SYSDATE,'yyyy-mm-dd hh24:mi:ss'));END IF;

--關閉文件

utl_file.fclose(file_handle);

EXCEPTION

WHEN OTHERS THEN

BEGIN

IF utl_file.is_open(file_handle) THEN

utl_file.fclose(file_handle);

END IF;

EXCEPTION

WHEN OTHERS THEN

NULL;

END;

END;

如果應用服務器和數據庫服務器不是同一臺服務器可能會遇到項目無法成功訪問文件進行依賴的情況:

解決方法詳見ASP.Net訪問網絡驅動器(映射磁盤)

oracle如何做強制緩存?

-- 加入緩存.

SQL ALTER TABLE a CACHE;

Table altered.

-- 取消加入緩存.

SQL ALTER TABLE a NOCACHE;

Table altered.

Oracle 11.2.0.4應用緩存之三(緩存配置-預加載只讀緩存組)

4.在oracle 端做測試數據驗證

7.1 測試Load (不符合3條件時的報錯信息)

當前文章:oracle怎么緩存,oracle查詢緩存
URL鏈接:http://m.kartarina.com/article0/hscooo.html

成都網站建設公司_創新互聯,為您提供建站公司網站設計公司品牌網站建設網站設計微信小程序服務器托管

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

外貿網站建設
主站蜘蛛池模板: 久久午夜无码鲁丝片午夜精品| 日韩精品少妇无码受不了| 国外AV无码精品国产精品| 免费无码不卡视频在线观看| 大桥久未无码吹潮在线观看| 最新中文字幕av无码专区| 日韩美无码五月天| 久久精品亚洲中文字幕无码麻豆| 亚洲精品无码专区在线播放| 久久亚洲AV永久无码精品| 伊人久久大香线蕉无码| 亚洲日韩精品无码一区二区三区| 亚洲日韩国产二区无码| 久久久无码精品国产一区| 日韩精品无码人妻免费视频| 精品日韩亚洲AV无码| 国产精品无码无在线观看| 精品无码国产AV一区二区三区| 无码国产精品一区二区免费vr| 国模吧无码一区二区三区| 无码人妻丰满熟妇啪啪| 亚洲熟妇无码av另类vr影视 | 中文无码久久精品| 加勒比无码一区二区三区| 亚洲AV成人无码天堂| 亚洲va无码va在线va天堂| 暴力强奷在线播放无码| 国产成人无码A区在线观看视频| 欧洲精品无码成人久久久| 精品国产a∨无码一区二区三区 | 国产成人A亚洲精V品无码| 无码人妻少妇伦在线电影| 黑人巨大无码中文字幕无码| 无码丰满熟妇一区二区| 亚洲大尺度无码无码专线一区| 中文字幕av无码无卡免费| 最新中文字幕av无码专区| 免费无码黄十八禁网站在线观看| 亚州AV综合色区无码一区| 在线无码午夜福利高潮视频| 亚洲AV中文无码乱人伦|