简体   繁体   English

SQL Server 2008 R2 查询

[英]SQL Server 2008 R2 query

I'm running the following query, but it is taking too long.我正在运行以下查询,但花费的时间太长。 Is there a way to make it faster or change the way the query is written?有没有办法让它更快或改变查询的编写方式?

Please help.请帮忙。

SELECT *
FROM   ProductGroupLocUpdate WITH (nolock)
WHERE  CmStatusFlag > 2
       AND EngineID IN ( 0, 1 )
       AND NOT EXISTS (SELECT DISTINCT APGV.LocationID
                       FROM CM_ST_ActiveProductGroupsView AS APGV WITH(nolock)
                       WHERE APGV.LocationID = ProductGroupLocUpdate.Locationid);

Try rewriting the query with a join尝试使用连接重写查询

SELECT PGLU.* from ProductGroupLocUpdate PGLU WITH (NOLOCK) 
LEFT JOIN CM_ST_ActiveProductGroupsView APGV WITH (NOLOCK) 
        ON PGLU.LocationId = APGV.LocationID
WHERE APGV.LocationID IS NULL AND CmStatusFlag>2 AND EngineID IN (0,1)

Depending on how much data is in your table, check add indexes to LocationId (in both tables), CmStatusFlag and EngineID根据表中有多少数据,检查添加索引到 LocationId(在两个表中)、CmStatusFlag 和 EngineID

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM