日期:2014-05-18  浏览次数:20530 次

刚两种查询的测试
刚才我提问的两种查询孰优孰劣的
SQL code
SELECT TOP 1 a.spmch,c.bm,a.lshj,c.shl,b.xingming,b.gukeid,c.rq,c.ontime
FROM dbo.spkfk a,dbo.ret_cuxiaoka_v b,dbo.retmxls c
WHERE a.spid=c.spid AND b.cardid=c.cardid AND b.gukebh ='060600'
ORDER BY c.rq DESC


这是第一种的执行计划

下载地址


SQL code
SELECT  a.spmch,c.bm,a.lshj,c.shl,b.xingming,b.gukeid,c.rq,c.ontime
FROM dbo.spkfk a,dbo.ret_cuxiaoka_v b,dbo.retmxls c
WHERE a.spid=c.spid AND b.cardid=c.cardid AND b.gukebh ='060600' AND rq>'2011-08-30'
ORDER BY c.rq 


这是第二种的执行计划

下载地址

------解决方案--------------------
看起来TOP的效率要高些 不知道楼主的数据量是多少?
------解决方案--------------------
功能不同的有什么好比较的?

------解决方案--------------------
比较性能一定要功能相同的才有意义
------解决方案--------------------
你两个语句得到的结果的确是不一样的
------解决方案--------------------
探讨
引用:
你两个语句得到的结果的确是不一样的


该会员最近的一笔消费是在9月1号,再上一笔是2月份的
这2个语句得到的都是他在9月1号的那笔记录。