SET STATISTICS PROFILE ON
SET STATISTICS IO ON
SET STATISTICS TIME ON
GO
SELECT OD.ProID ,--商品ID
OD.OrderID ,--订单ID
OD.Qty ,--数量
P.ProName ,--商品名
P.Coefficient --装箱系数
FROM tbOrderDtl OD
JOIN ( SELECT ProID ,
Style + '-' + Color + '-' + Size AS ProName ,
CASE whole
WHEN 0 THEN 0
ELSE CONVERT(DECIMAL(18, 3), 1
/ CONVERT(FLOAT, whole))
END Coefficient
FROM tbProduct
) P ON P.ProID = OD.ProID
WHERE OrderID = '1211000462'
GO
SET STATISTICS PROFILE OFF
SET STATISTICS IO OFF
SET STATISTICS TIME OFF
结果:
(285 行受影响) 表 'tbProduct'。扫描计数 0,逻辑读取 596 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。 表 'tbOrderDtl'。扫描计数 1,逻辑读取 8 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。
(5 行受影响)
SQL Server 执行时间: CPU 时间 = 0 毫秒,占用时间 = 7 毫秒。 SQL Server 分析和编译时间: CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。
SQL Server 执行时间: CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。
SQL Server 执行时间: CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。
希望数据库高手,能对这个结果做个分析,
表 'tbProduct'。扫描计数 0,逻辑读取 596 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。
这个结果的意义,因为只有明白了意思,才好做出语句优化和索引优化,谢谢
建议看一下执行计划
这张表 tbProduct 的 case...end 要优化一下,最好不要动态计算了