sql 如下:
set statistics io on
set statistics time on
set statistics profile on
SELECT A.detail_Product_ID,B.order_CreateDate,order_Source
FROM dbo.XC_Order_Detail A
inner join dbo.XC_Order B
on(A.detail_Order_ID=B.order_NO)
order by
case when B.order_Source=3 then B.order_CreateDate else getdate()-B.order_CreateDate end
set statistics io off
set statistics time off
set statistics profile off
========
set statistics io on
set statistics time on
set statistics profile on
SELECT A.detail_Product_ID,B.order_CreateDate,order_Source
FROM dbo.XC_Order_Detail A
inner join dbo.XC_Order B
on(A.detail_Order_ID=B.order_NO)
order by
(case when B.order_Source=3 then B.order_CreateDate end),
(case when B.order_Source<>3 then B.order_CreateDate end) desc
set statistics io off
set statistics time off
set statistics profile off
=========
结果依次:
SQL Server 执行时间:
CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。
(352025 row(s) affected)
表 'XC_Order'。扫描计数 5,逻辑读取 3955 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。
表 'XC_Order_Detail'。扫描计数 5,逻辑读取 14472 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。
表 'Worktable'。扫描计数 0,逻辑读取 0 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。
(9 row(s) affected)
SQL Server 执行时间:
CPU 时间 = 1578 毫秒,占用时间 = 5781 毫秒。
SQL Server 执行时间:
CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。
---------- SQL Server 执行时间: CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。 (352025 row(s) affected) 表 'XC_Order'。扫描计数 5,逻辑读取 3955 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。 表 'XC_Order_Detail'。扫描计数 5,逻辑读取 14472 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。 表 'Worktable'。扫描计数 0,逻辑读取 0 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。 (9 row(s) affected) SQL Server 执行时间: CPU 时间 = 1595 毫秒,占用时间 = 5799 毫秒。 SQL Server 执行时间: CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。 -------- 350000条目数据多试验了几次!性能不相上下,但是多数是第一种好一些!