我已經用ADODB測試了Microsoft Access和Microsoft SQL Compact。爲什麼內部連接速度太慢?
我有用於存儲客戶信息
tblCustomer structure
--------------------
ID Name Email Something...
1 ABC [email protected] Something....
而一個tblTag的類別客戶到許多類型的表格tblCustomer。例如富客戶:標籤id = 1,債務客戶:標籤id = 2。每個客戶可以有一個或兩個標籤。
tblTag structure
--------------------
ID TagID CustomerID
1 1 1
2 2 1
然後我已經添加索引列ID,標籤識別,客戶ID的那些表。
但是,當我使用這個查詢獲取所有豐富的客戶。查詢需要8000毫秒,tblCustomer中的總共170.000條記錄。
Select * from tblCustomer INNER JOIN tblTag on
tblTag.CustomerID=tblCustomer.ID where tblTag.TagID=1
如果我只運行Select * from tblCustomer
,它只需要我3000毫秒。當我拿到所有桌子時,速度會更快。內部連接未按預期運行。而8000毫秒對我來說太慢了,當客戶可以長到1,000,000條記錄時,我不希望我的程序在每次運行此查詢時都會眩暈一分鐘。所以可能是我創建表格標籤時出錯了?我是否應該將標籤作爲Rich(bit)或Debt(bit)這樣的列帶入tblCustomer?
您是否有tblTage的索引,其中第一個索引列是CustomerID?從您的描述中不清楚。 – ErikEJ
是的,第一個索引列是客戶ID,沒有任何變化 – monocular