排序后超慢的问题
select *
from
(SELECT p_Product.ProductGUID, ProductName, ProductCode, ProductSpec, Unit, Price, Remarks
FROM p_Product
left JOIN p_product2type b ON p_Product.productguid = b.productguid
LEFT JOIN vp_product2unit c ON p_Product.productguid =c.productguid
left JOIN mybusinessunit d ON c.bucode = d.hierarchycode
WHERE (1=1) AND ( CharIndex( '01.01.01 ' + '. ',b.ProductTypeCode + '. ')=1 )
AND d.BUGUID=( '11b11db4-e907-4f1f-8835-b9daab6e1f23 ')
) p_Product
结果集有18条记录。执行时间:76 ms
select *
from
(SELECT p_Product.ProductGUID, ProductName, ProductCode, ProductSpec, Unit, Price, Remarks
FROM p_Product
left JOIN p_product2type b ON p_Product.productguid = b.productguid
LEFT JOIN vp_product2unit c ON p_Product.productguid =c.productguid
left JOIN mybusinessunit d ON c.bucode = d.hierarchycode
WHERE (1=1) AND ( CharIndex( '01.01.01 ' + '. ',b.ProductTypeCode + '. ')=1 )
AND d.BUGUID=( '11b11db4-e907-4f1f-8835-b9daab6e1f23 ')
) p_Product
ORDER BY p_Product.ProductCode ASC,p_Product.ProductGUID
结果集:还是18条记录。 执行时间:9733 ms
想不通为什么会差别那么大,仅仅排18条记录的序,就要费那么长时间吗?
------解决方案--------------------建索引
------解决方案--------------------建立索引可以提高查询的速度!
------解决方案--------------------有 CharIndex的比较(字符串的比较),可能会慢.
------解决方案--------------------学习