相关疑难解决方法(0)

SQL"EXISTS"用法变体的性能

以下三个SQL语句的性能是否有任何差异?

SELECT * FROM tableA WHERE EXISTS (SELECT * FROM tableB WHERE tableA.x = tableB.y)

SELECT * FROM tableA WHERE EXISTS (SELECT y FROM tableB WHERE tableA.x = tableB.y)

SELECT * FROM tableA WHERE EXISTS (SELECT 1 FROM tableB WHERE tableA.x = tableB.y)
Run Code Online (Sandbox Code Playgroud)

它们都应该工作并返回相同的结果集.但是如果内部SELECT选择tableB的所有字段,一个字段或只是一个常量,这是否重要?

当所有陈述行为相同时,是否有最佳做法?

sql sql-execution-plan

24
推荐指数
3
解决办法
1万
查看次数

检查项目是否存在的最佳方法是:选择计数(ID)还是存在(...)?

如果表格包含超过700,000行,则确定项目是否存在的性能最佳

if (Select count(id) from Registeration where email='email@w.cn') > 0
    print 'Exist'
else
    print 'Not Exist'
Run Code Online (Sandbox Code Playgroud)

要么

if Exists(Select id from Registeration where email='email@w.cn') 
    print 'Exist'
else
    print 'Not Exist'
Run Code Online (Sandbox Code Playgroud)

sql t-sql performance sql-server-2005

16
推荐指数
1
解决办法
7159
查看次数