在我的数据库中执行
SELECT 1 FROM TABLE1 A
JOIN TABLE2 B ON A.ID=B.ID
JOIN TABLE3 C ON A.ID=C.ID
WHERE A.SL<>B.SL OR B.SL<>C.SL
这段语句速度很快 1秒就有结果
可是我这样写IF EXISTS (SELECT 1 FROM TABLE1 A
JOIN TABLE2 B ON A.ID=B.ID
JOIN TABLE3 C ON A.ID=C.ID
WHERE A.SL<>B.SL OR A.SL<>C.SL)
SELECT 1
ELSE
SELECT 2
这段语句时 需要30秒的时间 这是 为什么啊? 我该怎样修改TABLE1 TABLE2 TABLE3 这三个表结构一样 都只有 ID,SL 两个字段
SELECT 1 FROM TABLE1 A
JOIN TABLE2 B ON A.ID=B.ID
JOIN TABLE3 C ON A.ID=C.ID
WHERE A.SL<>B.SL OR B.SL<>C.SL
这段语句速度很快 1秒就有结果
可是我这样写IF EXISTS (SELECT 1 FROM TABLE1 A
JOIN TABLE2 B ON A.ID=B.ID
JOIN TABLE3 C ON A.ID=C.ID
WHERE A.SL<>B.SL OR A.SL<>C.SL)
SELECT 1
ELSE
SELECT 2
这段语句时 需要30秒的时间 这是 为什么啊? 我该怎样修改TABLE1 TABLE2 TABLE3 这三个表结构一样 都只有 ID,SL 两个字段
WHERE A.SL<>B.SL OR A.SL<>C.SL)
这两个条件也不一样
JOIN TABLE2 B ON A.ID=B.ID
JOIN TABLE3 C ON A.ID=C.ID
WHERE A.SL<>B.SL OR A.SL<>C.SL)
SELECT 1
ELSE
SELECT 2
SELECT 1 FROM TABLE1 A
JOIN TABLE2 B ON A.BH=B.BH
JOIN TABLE3 C ON A.BH=C.BH
WHERE A.SL<>B.SL OR A.SL<>C.SL
这段语句速度很快 1秒就有结果
可是我这样写IF EXISTS (SELECT 1 FROM TABLE1 A
JOIN TABLE2 B ON A.BH=B.BH
JOIN TABLE3 C ON A.BH=C.BH
WHERE A.SL<>B.SL OR A.SL<>C.SL)
SELECT 1
ELSE
SELECT 2
这段语句时 需要30秒的时间 这是 为什么啊? 我该怎样修改TABLE1 TABLE2 TABLE3 这三个表结构一样 都只有 BH,SL 两个字段
使用你的这种方法 光执行
SELECT TOP 1 A.ID FROM TABLE1 A
JOIN TABLE2 B ON A.ID=B.ID
JOIN TABLE3 C ON A.ID=C.ID
WHERE A.SL<>B.SL OR A.SL<>C.SL
这段 时间就特别长 如果将TOP 1 A.ID 换成 * 或者 1 速度就很快
你将语句改成
SELECT 1 AS HH INTO #TMP_TABLE FROM TABLE1 A
JOIN TABLE2 B ON A.BH=B.BH
JOIN TABLE3 C ON A.BH=C.BH
WHERE A.SL<>B.SL OR A.SL<>C.SL
IF EXISTS (SELECT HH FROM #TMP_TABLE )
SELECT 1
ELSE
SELECT 2
这样试试