編程語言:Delphi 6在Delphi中處理來自TAdoQuery的大量數據
SQL Server在後端。
問題:
使用的每個我們需要的東西,已結束了它擊中了2000次以上爲獲得某些事情時打數據庫應用,使問題的應用程序正在緩慢。這個命中數據庫發生了很多表,每個表具有不同的結構和不同的列數。所以我試圖減少電話的數量。 從每張表中我們一次可以獲得大約4000條記錄。
建議的解決方案:
讓我們從數據庫中的所有數據在一次使用它的時候,我們需要它,這樣我們就不必不停的按DB。
如何解決是迄今爲止轉向了:
有此德爾斐的版本沒有一本字典。所以我們已經有了一個來自String List的字典實現(讓我們假設實現是好的)。
解決方案1:
商店這是我們與創造的字典: 一個獨特的領域作爲重點。 並添加數據的其餘部分作爲字符串列表字符串分隔這樣的: FiledName1:FileValue,FieldName2:FieldValue2,... .. 可能要創建約2000字符串列表將數據映射到按鍵。 我看了看下面的鏈接: How Should I Implement a Huge but Simple Indexed StringList in Delphi? 看起來他們可以移動到不同的數據庫不可能和我在一起。 這是一個理智的解決方案嗎?
解決方案2:
將此存儲在帶List的字典中。 該列表將包含Delphi記錄。 Delphi TList of records
解決方案3:
或給予我使用TAdoQuery我應該用尋求或定位找我的記錄 記錄可以到讓我看了看這個鏈接不是直接加入。 請教最好的方法來做到這一點?
要求:
需要隨機存取此數據。 當我們根據需要獲取所有數據時,插入數據只會發生一次。
只需要讀取數據,不必修改。
需要不斷在主鍵的字詞進行搜索。
除了改變我們已經做了很好的索引上DB照顧的東西從DB側的應用程序。這更多的是讓應用程序順利運行。
TClientDataSet有什麼問題? –
謝謝我來自C#背景。使用TClientDataset是我所需要的一切。簡單但不知道在哪裏尋找。 – user3313541
您不需要TClientDataset。 ADO數據集有能力以斷開/批處理模式工作。 – kobik