选择查询永远不会第一次完成,然后在重新运行时立即完成

时间:2013-09-26 05:27:51

标签: sql-server

在我当前的项目中,我们对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

1 个答案:

答案 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