在我当前的项目中,我们对sql server数据库的select查询有一个非常奇怪的问题。
我们第一次在部署后运行查询永远不会完成。然后,如果我们停止查询并重新运行它,它会立即完成。
我们第一次发出查询时没有其他任何东西在运行,所以我看不出它是如何与死锁相关的。
有没有人知道为什么会这样?
以下是参考查询:
SELECT KontoplanKommuneAar.fk_kontoplankommune_id_kontoplankommune,
KontoplanKommuneAar.kontoplankommuneaarid,
KontoplanKommuneAar.fk_kontoplanindividuel_id_kontoplanindividuel,
KontoplanKommuneAar.sys_kommuneid,
KontoplanKommuneAar.sys_extractdate,
KontoplanKommuneAar.sys_batchdate
FROM (SELECT kka.fk_kontoplankommune_id_kontoplankommune,
kka.kontoplankommuneaarid,
kka.fk_kontoplanindividuel_id_kontoplanindividuel,
kka.sys_kommuneid,
kka.sys_batchdate,
kka.sys_rowid,
kka.sys_extractdate
FROM edw.dbo.kontoplankommuneaar kka
WHERE kka.kontoplankommuneaarid != -1
AND ( kka.kontoplankommuneaarid IN (SELECT
fk_kontoplankommuneaar_id_kontoplankommuneaar
FROM
kontoplanposteringsummaaned)
OR kka.kontoplankommuneaarid IN (SELECT
fk_kontoplankommuneaar_id_kontoplankommuneaar
FROM
kontoplanbudgetvedtaget)
OR kka.kontoplankommuneaarid IN (SELECT
fk_kontoplankommuneaar_id_kontoplankommuneaar
FROM
kontoplankorrigeringbudget) )) KontoplanKommuneAar
ORDER BY KontoplanKommuneAar.fk_kontoplankommune_id_kontoplankommune
答案 0 :(得分:0)
试试这个 -
SELECT kka.fk_kontoplankommune_id_kontoplankommune
, kka.kontoplankommuneaarid
, kka.fk_kontoplanindividuel_id_kontoplanindividuel
, kka.sys_kommuneid
, kka.sys_batchdate
, kka.sys_extractdate
FROM dbo.kontoplankommuneaar kka
WHERE kka.kontoplankommuneaarid != -1
AND kka.kontoplankommuneaarid IN
(
SELECT fk_kontoplankommuneaar_id_kontoplankommuneaar
FROM dbo.kontoplanposteringsummaaned
UNION
SELECT fk_kontoplankommuneaar_id_kontoplankommuneaar
FROM dbo.kontoplanbudgetvedtaget
UNION
SELECT fk_kontoplankommuneaar_id_kontoplankommuneaar
FROM dbo.kontoplankorrigeringbudget
)
ORDER BY kka.fk_kontoplankommune_id_kontoplankommune