2012-09-06 31 views
2

我有一個excel 2010.在VBA代碼中,一個程序從SQPEXPR 2008中提取數據。
有重複的調用,並且有許多次/過濾器數據被提取(這已經存在於Excel文檔中)。在VBA(Excel 2010)中進行緩存以連接到SQL Server 2008 Express

它是一個很好的用例來應用緩存(用於提高性能)。

可能嗎?是的,如何?

SQL本機客戶端用於連接到數據庫。

回答

0

當您更新您希望緩存的基礎數據時,還會存儲更新的日期。這可以手動完成或通過觸發器完成。

當您在Excel中對主數據執行查詢時,還會查詢並存儲Excel電子表格中上次更新的日期。

最後,當您從Excel執行數據刷新操作時,首先查詢當前上次更新日期是否與存儲的上次更新日期相同。如果是這樣,則不需要刷新數據。

如果您的數據具有固有的「上次更新」日期,並且該值中有任何類型的索引作爲其中的第一列,那麼您已經將「上次更新日期」存儲得很好 - 它會只需一次尋找即可閱讀最近更新的日期,從中可以推導出相同的優化。

SELECT TOP 1 DateChanged FROM dbo.YourTable ORDER BY DateChanged DESC; 

假設指數我說的是在DateChanged,你有你的「表最後更新日期」。當然,假設表中的每個操作都會在插入或更新時忠實地更新此日期,並且行從不刪除,只是標記爲非活動狀態(否則您不會刪除行)。

無論哪種方式 - 顯式保存單獨的上次更新的日期或隱式使用列,現在可以緩存數據。

它可以幫助您思考瀏覽器和Web服務器如何執行此任務,這幾乎與我的概述完全相同:請求的文件具有修改日期,並且首先與客戶端瀏覽器交換此數據。只有當文件具有比瀏覽器緩存副本更新的日期時,瀏覽器纔會請求實際的文件內容。

相關問題