我有兩個tabels:案例(IdCase,名稱)和警報(IdAlert,refIdCase,配置文件)。 一種情況可以通過refIdCase連接多個警報。 我在VBA listbox中列表中顯示了案例名和分配給這個案例的配置文件。
首先我下載了50個案例。然後爲每個記錄集找到配置文件名稱。不幸的是它需要一些時間:(有沒有什麼更快的方法來實現這一
set rsCases = cn.Execute("SELECT TOP 50 * FROM Cases") Do Until rsCases.EOF Set rsProfiles = cn.Execute("SELECT DISTINCT TOP 50 Profile FROM Alert WHERE refIdCase = " & rsCases.Fields("IdCase").value & ";") rsCases.movenext
UPDATE:我認爲這個問題是我們對SQL Server連接我們位於波蘭和服務器是在北美。美國,我執行從位於NA計算機相同的動作,並只用了4秒,但在這裏,來自波蘭大約需要45秒。
謝謝 TJ
有趣的解決方案 - 什麼是**業務需求**本(非高性能)解決方案正在解決? – 2014-09-20 22:02:08
1)位於Access數據庫或某些其他RDBMS中的表位於何處?你在Alerts表上有某種索引嗎? 2)你是否需要子查詢中的50條記錄?如果它返回更多,那也是可以接受的? – 2014-09-20 22:05:16
我在outlook中創建了這個宏。我們有監控團隊對警報作出反應。這個宏幫助他們(根據警報主體創建升級電子郵件,在外部系統中創建票證等)。另外,我們希望在SQL中保留操作的歷史記錄。無論何時用戶運行宏,此代碼都會檢查歷史記錄並顯示已分配警報的案例。大約需要1秒鐘搜索每個案例的配置文件。大約1分鐘顯示歷史記錄。這是一點點長:/ – 2014-09-20 22:13:07