2012-09-26 24 views
5

我試圖弄清楚如何在Access 2010中執行一個動態追加查詢(請參閱question 12592953),並且有人建議啓用showplan調試輸出:techrepublic link。但Access 2010/accdb數據庫顯然不使用Jet引擎,所以這對我沒有幫助。如何從Access 2010獲取查詢計劃(showplan.out)?

更新:這是我想要工作的查詢(完整的描述是在上面鏈接的其他stackoverflow問題)。它應該用來自遠程副本的新行更新表的本地副本。但是,Access會拉動整個遠程表(這是巨大的並導致ODBC超時),然後在本地運行WHERE

INSERT INTO local (dt, latitude, longitude) 
SELECT dt, latitude, longitude 
FROM remote_odbc, (SELECT max(dt) AS max_dt FROM local) AS sub 
WHERE remote_odbc.dt > max_dt; 

是否有類似於噴氣/調試/顯示計劃註冊表黑客用於獲取有關訪問如何看待查詢更多信息的東西在Access 2010?

+0

訪問具有ADO和DAO,儘管它的DAO本地化。給我們一個你想要做什麼樣的動態附加SQL語句的例子。在過去,我建立了幫助函數來幫助構建Access SQL語句 – GoldBishop

+0

就Access如何查看SQL語句而言,它是一個非常基本的SQL語句引擎。除了某些框架語法外,您會注意到它不是很健壯。您可以執行插入,刪除,刪除,選擇以及一些特定於Access的語句,但完全可以。執行批量執行的能力是非常令人沮喪的(留下Access for MS SQL,現在回到客戶端的Access)。獲得批處理效果的唯一方法是通過VBA宏和RecordSet的。 – GoldBishop

+1

@GoldBishop:我更新了問題。完整的細節在我參考的其他問題中。 – cswingle

回答

2

您需要以下項:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\14.0\Access Connectivity Engine\Engines\Debug] 
"JETSHOWPLAN"="ON" 

以上是從我的運行Access 2010的Windows 7註冊表導出的,對我產生showplan.out。

5

感謝@Fionnuala

對於Access 2010 32位你需要下面的項:

在Windows 7 32位:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\14.0\Access Connectivity Engine\Engines\Debug] 
"JETSHOWPLAN"="ON" 

或Windows 7 64位:

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Office\14.0\Access Connectivity Engine\Engines\Debug] 
"JETSHOWPLAN"="ON" 

我需要創建文件夾Debug才能放入密鑰。

+1

不要忘記重新啓動Access以使此設置生效。 – paulroho