首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

SQL添加order by后性能非常慢(也有可能是查询条件)!求高手帮忙优化上。

2013-01-18 
SQL添加order by后性能非常慢(也有可能是查询条件)!求高手帮忙优化下。。。SELECT TOP 50 * FROM vw_App_Appo

SQL添加order by后性能非常慢(也有可能是查询条件)!求高手帮忙优化下。。。
SELECT TOP 50 * FROM vw_App_Appointment WHERE 1 = 1 AND user_department_id = 1000 ORDER BY appointment_id DESC
此句代码时候后,执行时间非常慢,大于需要40多S。
  
SELECT TOP 50 * FROM vw_App_Appointment WHERE 1 = 1 AND user_department_id = 1000
SELECT TOP 50 * FROM vw_App_Appointment ORDER BY appointment_id DESC
而当这两句分别执行时候,大约也就1S左右。
 
为什么性能会相差这么多呢?该怎么优化第一句SQL? 优化 sql
[解决办法]

引用:
呃。。。
如9楼所说,为表Acc_User表添加了覆盖索引,就好了,但是不知道原理是为什么。。。


因为利用原索引找到USER_ID 的时候,还需要找到user_real_name,但索引中没有,就得全表扫描一下。
建个覆盖索引,就不用再扫描全表,速度就上来了。

热点排行
Bad Request.