2011-06-16 97 views
3

我讀過Oracle 11g has a results cache feature,我真的可以從中受益。但是,我的客戶有Oracle 10g。是否有任何明智的方法來模擬PHP/5.2支持的Web應用程序,該應用程序通過ODBC(使用Oracle的驅動程序,而不是Microsoft的)連接到遠程Oracle 10g服務器。Oracle 10g的結果緩存

的想法是緩存大表通常返回小數據集,並確保高速緩存的數據被丟棄的複雜查詢時,對基礎表的變化(它不需要是立竿見影,一個小時的延遲是可以接受的) 。

我可以在網絡服務器(不是Oracle服務器)上安裝新軟件,如果有必要,我可能會切換到OCI8。

回答

1

memcached是一個選項。

但由於10g支持在2011年7月31日結束,您的客戶端需要升級到11g,因此他們可能會延長支持到2013年7月31日。 (此信息可能已更改)

+0

您能否詳細說明您的答案?我瞭解存儲功能,但memcache可以幫助檢測或跟蹤過時的數據? – 2011-06-17 08:23:35

+0

與結果緩存不一樣。在11g中也有CQN,因此您可以更新緩存http://download.oracle.com/docs/cd/B28359_01/appdev.111/b28424/adfns_cqn.htm – oluies 2011-06-17 17:47:28

3

您可以使用stale tolerated查看數據庫中的物化視圖。

+0

我不知道那個開關,我會明確地閱讀它。過去,我使用物化視圖作爲某些數字的緩存(例如,每個商店的總銷售額和從個別調用中計算的月份),但作爲全局緩存解決方案,它並不像我想要的那樣通用。我無法事先知道確切的查詢,因爲涉及很多過濾器。 – 2011-06-17 08:30:57

0

您可以使用11gR2的內存數據庫緩存選項。它也適用於10.2.0.4。這是從TimesTen獲取中分離出來的,您可以使用它在應用程序服務器上定義寫入緩存。這允許非常快速的回報。它非常好地擴展,將應用程序服務器與緩存網格服務器結合在一起。在你的情況下,如果要掃描的數據集很大,可以使用mviews。如果它很複雜,緩存將正常工作,即使對於不斷修改的表。

+0

你是什麼意思?正如所料,RESULT_CACHE提示對10g沒有明顯影響: – 2011-06-17 11:10:58

+0

IMDB緩存選項允許您將表緩存到更接近應用程序的位置,使得可以非常快速地訪問數據。由於結果緩存爲11g或更高,因此結果緩存完全不起作用,IMDB緩存可以從10.2.0.4開始使用,但工作方式不同。 (並且是一個單獨的許可選項) – 2011-06-17 19:24:39