我通過ODBC連接到Jet 4數據庫。 Jet DB使用傳遞查詢到Oracle數據庫。這到目前爲止是有效的(不能直接訪問p-t查詢,但在查詢上創建一個視圖可以做到這一點)。Jet數據庫和傳遞查詢,參數
我需要由p-ts返回的數據的一些子集。參數最好,但不支持。
兩個問題:
1)噴氣似乎是能夠在那裏的一些從句推到Oracle。例如,我有一個返回100k行的傳遞查詢。一個關於帶有一個單獨的flitering子句(例如「district ='1010'」)的p-t的視圖非常快,所以處理似乎發生在Oracle上。添加更多子句可能會降低查詢速度,導致CPU佔用率高。有沒有關於在Jet端傳遞什麼和做什麼的文檔?
2)有很多關於如何使用VBA/Access創建動態傳遞查詢的教程。通過ODBC訪問Jet可以做到這一點(或其他任何影響)嗎?
感謝 馬丁
編輯: 對不起這麼不清楚。
我有一個通過ODBC訪問Jet數據庫的報告工具。 Jet數據庫包含一些數據和幾個傳遞到Oracle數據庫的查詢。一個典型的用例是使用Jet和Oracle的數據生成一個給定部門和給定日期的報告。原則上這很有效。
問題是傳遞查詢不能包含任何參數。一個傳遞查詢就像一個視圖,所以我可以簡單地執行「select * from pt_query where dep ='a'和date = somedate」。但是,Jet會加載pt中的所有行,並在客戶端執行完整掃描。對於100k行的視圖來說,這是無法緩慢的,我需要找到一種避免這種情況的方法。
對於一些簡單的選擇,李連杰似乎確實讓Oracle做的辛勤工作和不加載的所有行,所以我的問題1.
如果不工作,我需要找到一種方法強制Jet僅爲給定請求加載Oracle需要的數據。我知道我可以通過Access VBA修改pts,但是我只通過ODBC連接,所以我只能將SQL傳遞給Jet,不能調用vb api(除非可能在SQL語句中內聯VB)。
爲什麼是必要的噴氣機,如果你要查詢的Oracle?爲什麼不使用ODBC和ADO http://www.connectionstrings.com/oracle? – Fionnuala 2010-08-04 09:58:20
一如既往,業務策略......我無法在Oracle數據倉庫上創建表或上傳任意數據。我正在使用Oracle數據庫中的數據加入當前存儲在Access/Jet中的一些自定義數據。 – Martin 2010-08-04 10:52:51
Jet傳遞給服務器數據庫的內容將取決於涉及的服務器數據庫以及寫入ODBC驅動程序的程度。 Jet會盡可能多地請求元數據,以優化查詢並儘可能多地發送到服務器進行處理。我會看看你的SQL跟蹤,看看是什麼導致了更多的標準放緩。我會注意到,當我查看SQL Server中的蹤跡時,來自Jet with criteria的簡單查詢將使用通用參數化的sproc執行。我期望在Oracle中有類似的東西。 – 2010-08-04 18:14:26