【发布时间】:2014-04-14 13:57:19
【问题描述】:
我在数据库中有一个表,其中包含近 200 万条记录。我需要确定是否有超过 1 条记录可供客户使用。我有以下两个脚本:
SELECT TOP 1 ex.exceptionId
FROM exception AS ex
WHERE ex.customerId='{1BF87745-DE00-47FF-9AC0-430BAF87679A}'
AND ex.loanId IS NULL
AND ex.statusType = 'required'
AND ex.exceptionState <> 'N'
SELECT (CASE WHEN EXISTS ( SELECT ex.exceptionId FROM exception AS ex
WHERE ex.customerId = '{1BF87745-DE00-47FF-9AC0-430BAF87679A}'
AND ex.loanId IS NULL
AND ex.statusType = 'required'
AND ex.exceptionState <> 'N') THEN 1 ELSE 0
END) AS CustomerExceptionCount
哪个会更快,为什么..?
非常感谢..!
【问题讨论】:
-
第一个查询不会回答您关于有多少条记录的问题吗?
-
这些是用作子查询吗?因为他们看起来都不会告诉你你想要什么。
-
您是否尝试将查询与服务器查询分析器进行比较?
-
您已经编写了两个查询。为什么不试试看呢?您可以查看执行计划以找出原因。
-
这些查询都没有回答
more than 1 record的问题。他们都只回答1 or more records。
标签: sql sql-server tsql