2012-01-26 37 views
2

我會盡量保持這個簡單,我曾經在過去的項目中工作過,我們使用Oracle或MS SQL服務器作爲Access的數據存儲作爲前端,而不是鏈接到我傾向於使用的表中一個ADO連接到相應的數據庫以打開我的記錄集,因爲在大多數情況下,這是更快的,因爲查詢是針對服務器執行的,然後返回結果而不是工作在本地PC上。ADO查詢到MS Access數據庫,性能提高?

我現在的問題我終於到了那裏,如果我將一個訪問.mdb文件放在一臺服務器機器上,處理能力比我的本地PC更高,然後使用ADO連接(如Oracle/MS SQL),它會提供更好的性能,因爲.mdb在服務器上;或者因爲訪問會自動地由本地PC完成,因爲訪問是文件類型數據庫而不是數據庫服務器?

+0

這是關於ADO連接到文件共享上的MDB與ADO連接到客戶端服務器數據庫的性能問題嗎? – HansUp

+0

@HansUp不,它是一個ADO連接到存儲在一個大型服務器的C:驅動器上的MDB文件的一個完整連接,與標準查詢使用鏈接表到標準桌面計算機C:驅動器上的一個MDB文件進行標準查詢。 –

回答

4

不,它會比較慢 - 查詢仍然會運行客戶端,並且網絡活動在上面。

訪問應用程序始終在客戶端運行。通過在LDB文件上使用Windows文件系統字節範圍鎖定來實現鎖定,以允許多個Access實例修改相同的MDB文件。

所有代碼都在客戶端上運行,您將不得不通過網絡發送數據。服務器將使用MDB文件完成的唯一工作就是作爲文件服務器。

只要Access不夠快就使用SQL Server Express。由於SQL Server是一個客戶端 - 服務器系統,因此將其放在快速服務器上將會有所幫助。

+0

乾杯,我確定使用SQL Express等,但只是想知道如果使用這種方式訪問​​將獲得服務器執行查詢或它是否仍然是客戶端。 –

+0

@MattDonnan,更新更清晰。 – Ben

+0

再次感謝,請問您對我的一個較老的未解答的問題有任何想法嗎? (http://stackoverflow.com/questions/8896845/ms-access-cancel-execution-of-pass-thru-query-keyboard-shortcut) –