我創建了一個很多人喜歡我的組織的Access工具,但它在大客戶上運行速度不夠快。如何使插入速度更快?
當前,當我在計算機上運行「INSERT INTO」查詢時,只需不到一分鐘 - 即使是在較大的客戶端上。但是,當我在同事的電腦上運行它時,運行速度會更慢 - 大約4分鐘。
查詢代碼相當複雜,因爲它在'LEFT JOIN-ed'表上運行,用SUMS,IIF語句,Nz語句彙總數據,並在6個靜態表和2個查詢上的LEFT JOIN上運行。
由於代碼周圍的機密性協議,我不能在這裏發佈代碼,但我可以描述它。
我可以將2個查詢轉換爲一個靜態表,然後使用這些結果,但任何人都知道有任何其他方法可以更快地使INSERT INTO查詢工作而不更改SQL代碼?
此外,爲什麼MS-Access在某些計算機與其他計算機上執行'SQL INSERT-INTO'查詢的速度較慢?
我試着調整虛擬內存設置並增加頁面文件,但它似乎並沒有對運行INSERT INTO查詢的速度產生明顯的影響,事實上,我想因爲我的公司使用非SSD硬盤驅動器,並且不允許分區硬盤驅動器,因此運行速度較慢。
試圖比較'這裏運行速度比在那裏運行'有太多變量。你熟悉SHOWPLAN嗎?這可能是一個開始的地方。你可以重新命名你的查詢中的表和字段,然後發佈,所以我們至少可以看到你在做什麼的一些想法?確保在做SUMS之前選擇最小的一組數據,等等。涉及到的任何SQL Server表? –
刪除表名等所有內容,並在http://codereview.stackexchange.com/上提出一個新問題。他們可能會幫助你。否則谷歌爲「插入查詢性能調整」。 – Blackbam
此外,這裏有一篇文章充滿了性能提示......一旦打開,點擊「查詢性能提示」鏈接。 https://msdn.microsoft.com/zh-cn/library/dd942824(v=office.12).aspx#odc_ac2007_ta_PerformanceTipsToSpeedUpYourAccessDB_QueryPerformanceTips –