日期:2014-05-17  浏览次数:20458 次

sql 执行速度的问题
语句1:
SELECT * FROM V_frmMacSpeed_List WHERE macCode='mac602' ORDER BY ClassSort ASC,Spec ASC,MacSort ASC
语句2:
SELECT * FROM V_frmMacSpeed_List WHERE charindex(macCode,'mac602')=1 ORDER BY ClassSort ASC,Spec ASC,MacSort ASC
--------------------------------
以我的判断是语句1:比语句2:执行快,但执行结果却是:
语句1:超时
语句2:几毫秒就加载完成,
数据总共有2000多条。
-----------------
V_frmMacSpeed_List 是一个视图。
SQL

------解决方案--------------------
引用:
Quote: 引用:

还需要看看这个视图的代码是怎么写的

2个查询语句,就where后面的一个是用=一个是用charindex,查询结构都是一样的,只是用了不同方法。为什么还要看视图结构?请您仔细看一下问题

如果是表的话,不用考虑。
视图的话,查询优化器可能根据视图的代码,产生截然不同的执行计划。
视图也是sql语句。你通过试图隐藏了很大一部分sql,然后单独看where条件,来比较性能。貌似不太可取