在我目前的項目,我們有一個非常奇怪的問題與我們的SQL服務器數據庫選擇查詢。選擇查詢永遠不會完成第一次,然後當重新運行立即完成
我們第一次運行查詢後,部署它永遠不會結束。然後,如果我們停止查詢並重新運行它,它會立即結束。
當我們第一次發出查詢時,我們沒有別的東西在運行,所以我看不出它是如何與死鎖相關的。
有沒有人有任何想法,爲什麼會發生這種情況?
下面是該查詢以供參考:
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
您應該使用聯接在查詢中。這樣會更容易閱讀......不是因爲性能而這樣說 –
您是否也可以共享所涉及的表的模式?也許是一個小提琴(http://sqlfiddle.com/)? –