0
我有客戶端列表。有約。該表中有200萬條記錄。該表具有以下結構:數據庫表優化
ID(int),FLM,電子郵件,地址,電話,BDAy;除BDay以外的每種nvarchar類型。
我在ID和FLM列上有兩個非聚集索引。當我執行查詢時,如
SELECT * FROM tbl where FLM LIKE 'value'
我遇到延遲約。 1分鐘。因此問題:
- 在FLM上添加聚簇索引會改變性能嗎?
- 我還能在這裏優化什麼?
我如何從程序中獲得結果?使用SqlConnection
進行連接,然後在SQlCommand
對象中指定查詢,然後通過DataReader
獲取數據。也許在這裏我可以優化這個來獲得更好的結果(也許使用數據集)?
價值形式是什麼?你使用通配符''%value%'?'嗎? 「展示計劃」展示了什麼?如果您在模式中使用初始%,我懷疑發生了表掃描。 – Ben
是的,我使用通配符,這就是爲什麼在查詢like,not =語句。但即使我不使用通配符,我也必須等待很長時間。 – seeker
作爲一個經驗法則,表應該有聚集索引。您應該在列上創建具有大多數唯一行並且是增量式的聚集索引。聚集索引也不應該很寬,以避免在字符串列上有聚簇索引。 – sqlhdv