1

在我当前的项目中,我们遇到了一个非常奇怪的问题,即针对我们的 sql server 数据库的选择查询。

我们在部署后第一次运行查询永远不会完成。然后,如果我们停止查询并重新运行它,它会立即完成。

当我们第一次发出查询时,我们没有其他任何东西在运行,所以我看不出它是如何与死锁相关的。

有谁知道为什么会这样?

以下是供参考的查询:

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
4

1 回答 1

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
于 2013-09-26T05:31:20.540 回答