Привет, друзья, у меня большие проблемы.
У меня есть запрос, выполнение которого занимает около 20 минут. (4,5 крора записи).
Это запрос.
SELECT
a.cmddefinitionid,
b.cmdinstanceid,
b.mobileid,
d.phonenumber,
d.hardwareid,
d.smsemail,
a.cmdid,
c.cmdname,
c.cmdxmldesc,
a.eventflag,
a.recurrenceflag,
a.paramflag,
a.filename,
a.paramname,
a.VALUE,
a.meterflag,
a.gosilentflag,
a.regurl,
b.scheduleddate,
-- e.TxnTypeID, -- Added
e.TxnID,-- Added
e.StatusMsg,-- Added
b.LastModified as TimeCreated,-- Added newly
d.PanelistID -- Added newly
FROM
( select CmdInstanceID, TxnTypeID, TxnID, StatusMsg
from ODM_TDCS.dbo.CMD_TXN
where TxnTypeID < 3
and TxnID IN (
select max(TxnID)
from ODM_TDCS.dbo.CMD_TXN
group by CmdInstanceID)
) AS e,
dbo.cmd_definition AS a,
dbo.cmd_instance AS b,
dbo.lu_cmd AS c,
dbo.lu_mobile AS d
WHERE
a.cmddefinitionid = b.cmddefinitionid
and
a.cmdid = c.cmdid and b.mobileid = d.mobileid and
b.cmdtypeid = 2 AND
b.scheduleddate > Getdate() - 2 AND
b.CmdInstanceID = e.CmdInstanceID
Теперь из этого:
select CmdInstanceID, TxnTypeID, TxnID, StatusMsg
from ODM_TDCS.dbo.CMD_TXN
where TxnTypeID < 3
and TxnID IN (
select max(TxnID)
from ODM_TDCS.dbo.CMD_TXN
group by CmdInstanceID)
это занимает более 5 минут, но если я уберу это условие, запрос будет выполнен в
0.17 sec
.
Любая помощь или предложение ??