如何使Sql查询高效

时间:2013-11-22 05:57:41

标签: c# sql sql-server-2008

我正在对大约250万个数据运行一个sql查询,但它计算的答案非常慢。有没有办法让查询快速计算出特定的答案。

我的查询是

SELECT COUNT(FarmerName) AS Total_Number_Of_Farmers 
FROM try  
WHERE FarmerName <> '-'"

3 个答案:

答案 0 :(得分:3)

尝试'FarmerName'上的索引

CREATE INDEX FarmerNameIndex
ON try (Farmername)

另外,如果此字段为NVarchar,请将其更改为varchar,或使用WHERE FarmerName <> N'-'"

答案 1 :(得分:1)

通常,在SSMS中使用“查询执行计划”选项。这将建议您错过索引。虽然建议的遗漏索引并不总是值得信赖,但通过查看执行计划,您可以轻松找出创建索引所需的列。尝试尽可能减少索引扫描和表扫描。尽可能将它们转换为索引搜索。这将大大提高性能。

对于您的查询,正如@ElectricLlama建议的那样,应用'&lt;&gt;'会有额外的负担。使用'='总是更好,这样它就可以利用该列的索引。

答案 2 :(得分:0)

create INDEX FarmerNameIndex
ON try (Farmername)

然后执行上面写的相同查询。

 select COUNT(FarmerName) Total_Number_Of_Farmers 
 FROM try  
 where FarmerName <> '-'"

注意:尝试将数据类型设置为父名称的必需小。