小编tec*_*rer的帖子

查询性能

为什么

SELECT Barraportfolioname
FROM   portfolio
WHERE  id IN (SELECT DISTINCT i1.portfolioid
              FROM   Import i1
                     LEFT OUTER JOIN Import i2
                       ON i1.PortfolioID = i2.PortfolioID
                          AND i2.ImportSetID = 82
              WHERE  i1.ImportSetID = 83
                     AND i2.ID IS NULL)  
Run Code Online (Sandbox Code Playgroud)

需要 0 秒,而以下查询需要 5 秒。

SELECT DISTINCT p.BarraPortfolioName AS name
FROM   Import i1
       INNER JOIN Portfolio p
         ON p.ID = i1.PortfolioID
       LEFT OUTER JOIN Import i2
         ON i1.PortfolioID = i2.PortfolioID
            AND i2.ImportSetID = 82
WHERE  i1.ImportSetID = 83
       AND i2.ID IS NULL;  
Run Code Online (Sandbox Code Playgroud)

我正在使用 SQL Server。这两个表在查询中使用的所有列上都有索引,即portfolioid、id、importsetid。 …

performance sql-server query

7
推荐指数
2
解决办法
330
查看次数

标签 统计

performance ×1

query ×1

sql-server ×1