我無法找到這個問題的解決方案,因爲它似乎非常複雜的一個如何有查詢之間的適當的,它使用散列/索引結構
在這裏,我有1和表3列
CodeVal_1 bigint Unchecked
CodeVal_2 bigint Unchecked
CountryCode char(2) Unchecked
CodeVal_1和CodeVal_2一起構成主鍵
因此,這表保存數據如下面
CodeVal_1 CodeVal_2 CountryCode
7602176 7864319 AT
16777216 16777471 AU
16777472 16778239 CN
16778240 16779263 AU
16779264 16781311 CN
16781312 16785407 JP
16785408 16793599 CN
現在我需要查詢該表作爲
select CountryCode from tblCountryCodes where 215454 between CodeVal_1 and CodeVal_2
這完全工作在SQL服務器但它是緩慢的,使每一個查詢電話。所以,我想使在整個C#代碼這項工作有一些預加載等
但是我找不到這將加快工作速度比SQL服務器2014
正確的方法是,可能與某種實現它雙索引(我不知道這只是扔思想觀念),哈希表,字典等
等待您的意見和建議
它看起來像'CodeVal_2'總是大於'CodeVal_1'?如果'CodeVal_2'已排序,則可以執行縮寫搜索。當CodeVal_2大於或等於您正在檢查的數字時,您可以隨時查看記錄。甚至可以將記錄分成多個列表(也許number_of_lists = number_of_records除以100或1000或某物),找到搜索數字將落入的列表,然後在該列表上執行上述縮寫搜索。 – itsme86
itsme86可以詳細說明如何在csharp上以更快的方式檢查大於或等於?有沒有這樣的索引結構或等,而不是每次掃描整個內存? – MonsterMMORPG
你的桌子有多少行?他們是否都適合記憶? –