性能影响.. 查询 运行 太长
Performance impact.. query running too long
我已经编写了以下查询,但是 运行 太长了..我该如何优化它?谁能知道如何在不使用不存在逻辑的情况下重写此逻辑?
SELECT s.sid
FROM book s
WHERE active =1
AND (read_only IS NULL
OR read_only = 0)
AND cdate IS NULL
AND NOT EXISTS
(SELECT 1
FROM contract con
WHERE ((con.pid=s.sid)
OR (con.bsid =s.sid)
OR (con.ssid =s.sid)
AND (con.cosid <5))
)
AND NOT EXISTS
(SELECT 1 FROM pns WHERE staid=2 AND pns.abid=s.sid
)
AND NOT EXISTS
(SELECT 1 FROM contract_ct WHERE contract_ct.cpid=s.sid
)
AND NOT EXISTS
(SELECT 1 FROM cosa WHERE cosa.csid=s.sid
);
我想你弄错了括号。
AND NOT EXISTS
(SELECT 1
FROM contract con
WHERE ((con.pid=s.sid)
OR (con.bsid =s.sid)
OR (con.ssid =s.sid)
AND (con.cosid <5))
)
你不是说-
and not exists
(
select 1
from contract con
where ( con.pid = s.sid
or con.bsid = s.sid
or con.ssid = s.sid
)
and con.cosid < 5
)
我已经编写了以下查询,但是 运行 太长了..我该如何优化它?谁能知道如何在不使用不存在逻辑的情况下重写此逻辑?
SELECT s.sid
FROM book s
WHERE active =1
AND (read_only IS NULL
OR read_only = 0)
AND cdate IS NULL
AND NOT EXISTS
(SELECT 1
FROM contract con
WHERE ((con.pid=s.sid)
OR (con.bsid =s.sid)
OR (con.ssid =s.sid)
AND (con.cosid <5))
)
AND NOT EXISTS
(SELECT 1 FROM pns WHERE staid=2 AND pns.abid=s.sid
)
AND NOT EXISTS
(SELECT 1 FROM contract_ct WHERE contract_ct.cpid=s.sid
)
AND NOT EXISTS
(SELECT 1 FROM cosa WHERE cosa.csid=s.sid
);
我想你弄错了括号。
AND NOT EXISTS
(SELECT 1
FROM contract con
WHERE ((con.pid=s.sid)
OR (con.bsid =s.sid)
OR (con.ssid =s.sid)
AND (con.cosid <5))
)
你不是说-
and not exists
(
select 1
from contract con
where ( con.pid = s.sid
or con.bsid = s.sid
or con.ssid = s.sid
)
and con.cosid < 5
)