簡體   English   中英

帶有傳遞查詢的 Microsoft Access Make-Table 性能

[英]Microsoft Access Make-Table Performance with Pass-Through Query

給你的問題訪問大師在那里:

我有一個 Oracle 傳遞查詢,它在 Access 程序中大約2 秒內返回一個結果集。 但是,當我嘗試在生成表查詢中使用該傳遞查詢時,它拖了大約 7 分鍾。 (該文件當前駐留在我的桌面上,所有表都是本地的(未鏈接))。

為了提高性能,我創建了刪除/追加查詢並使用 VBA 運行它。 然后我嘗試使用顯式字符串 SQL 查詢 DAO db.Execute,引用傳遞查詢 (INSERT/SELECT)。 所有方法都非常慢! 我很想讓它接近傳遞的實際運行時間(再次,2 秒)。

任何見解?

很可能,生成表和傳遞查詢之間沒有實際的大的性能差異。 查詢實際上需要幾分鍾才能運行,而您可以在幾秒鍾內查看一些結果。 向下滾動查詢窗口可能會顯示查詢仍在呈現。

由於傳遞查詢與 ODBC 驅動程序/OLEDB 提供程序接口以解析網絡中客戶端(即 MS Access)和數據庫(即 Oracle)之間的 SQL 語句,因此可能有多種環境或軟件原因。

  1. 客戶端機器和服務器之間的網絡流量。 避免使用WAN 進行硬連線 LAN連接。 切勿在閃存驅動器或磁盤空間有限的驅動器上使用 Internet 文件夾或運行 Access。
  2. 可能過時的 ODBC 驅動程序/OLEDB 提供程序。 嘗試查找與您的 Oracle 版本和 MS Office 版本兼容的最新版本。 並嘗試在 64 位架構上運行。
  3. 無法映射到 JET/ACE 數據類型(例如高精度數字類型或大型二進制對象類型)的復雜或大型 Oracle 數據類型。 請參閱此Oracle 文檔
  4. 應該壓縮甚至反編譯的臃腫訪問應用程序。
  5. 沒有拆分架構的數據庫,其中應用程序對象(查詢、表單、報告、宏、模塊)與表分離。

制作表是否可以訪問本地? 我的意思是一只狗,並說一輛公共汽車在這里是兩種非常不同的東西。

那是oracle 本地的make table,還是您正在考慮將PT 查詢用作Access 中LOCAL 表的make 表? 因此,您的比較在這里與珠穆朗瑪峰有所不同。

我懷疑如果目標表是“本地”,則飛機 jane 鏈接到 Oracle 的表與 PT 查詢的鏈接表可能會執行相同的操作。 那是因為您將整個表從網絡管道拉到本地表。

如果 PT 查詢是將表 100% 生成到 Oracle 服務器上的另一個表? 然后 PT 查詢的執行速度應該與您在 Oracle 控制台中鍵入該命令的速度一樣快 - 應該沒有區別。

你沒有提到行數(編輯 - 我看到你只注意到 16,000 行 - 這是相當小)。 所以問題是網絡連接。 這是 LAN(局域網),還是您使用的 VPN 和互聯網會慢 100 倍左右。 我的意思是,比典型 LAN 慢 100 倍的連接將慢 100 倍 - 這並不奇怪。

因此,有關正在使用的連接類型和行數的詳細信息將在此處發揮重要作用。 但是,如果此處涉及 VPN 和 Internet 連接,則此類連接比您的超級廉價辦公室局域網慢約 50 倍。 你可以閱讀我的這篇解釋這個速度問題的文章: http : //www.kallal.ca//Wan/Wans.html

我不明白為什么 16,000 行需要這么長時間——在最便宜的辦公網絡上,這將花費不到一秒鍾的時間。 使用任何其他客戶端來提取該數據不應比 PT 查詢運行或工作得更快。 我的意思是,ado.net、ODBC 或 oleDB 不會導致服務器說,嗯,哎呀 - 讓發送數據的速度變慢。 所有這些客戶端都應該以相同的速率拉取數據。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM