Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 将查询优化为慢人_Sql_Sql Server - Fatal编程技术网

Sql 将查询优化为慢人

Sql 将查询优化为慢人,sql,sql-server,Sql,Sql Server,4958行受影响 表“混乱”。扫描计数20,逻辑读取359816,物理读取525,预读读取4626,lob逻辑读取0,lob物理读取0,lob预读读取0。 表“工作文件”。扫描计数0,逻辑读取0,物理读取0,预读读取0,lob逻辑读取0,lob物理读取0,lob预读读取0。 表“工作台”。扫描计数0、逻辑读取0、物理读取0、预读读取0、lob逻辑读取0、lob物理读取0、lob预读读取0。不需要子查询。这样试试 select distinct m1.jobreference,m1.assid,m

4958行受影响

表“混乱”。扫描计数20,逻辑读取359816,物理读取525,预读读取4626,lob逻辑读取0,lob物理读取0,lob预读读取0。 表“工作文件”。扫描计数0,逻辑读取0,物理读取0,预读读取0,lob逻辑读取0,lob物理读取0,lob预读读取0。 表“工作台”。扫描计数0、逻辑读取0、物理读取0、预读读取0、lob逻辑读取0、lob物理读取0、lob预读读取0。不需要子查询。这样试试

select distinct m1.jobreference,m1.assid,m2.assid 
From dbo.mess m1
inner join dbo.mess m2 
    on m1.JobReference=m2.jobreference and m1.assid!=m2.assid
where 
m1.jobreference not in ( 
select Jobreference from dbo.mess where routingkey='j.asschanged')

如果确实需要删除重复项,请使用Distinct。如果您的查询不会产生重复的结果,或者您不担心重复,那么请从查询中删除不同的关键字

SELECT m1.jobreference,
       m1.assid,
       m2.assid
FROM   dbo.mess m1
       INNER JOIN PRD_Phoenix.dbo.mess m2
               ON m1.JobReference = m2.jobreference
                  AND m1.assid != m2.assid
Group By  m1.jobreference,m1.assid,m2.assid
Having count(case when m1.routingkey = 'j.asschanged' then 1 end) = 0
然后您需要考虑明显的索引是m2jobreference,assid和M1JobReference,assid


我关心的是select distinct和高基数联接的可能性。如果没有关于数据结构的更多信息,就很难提出进一步的建议。

问题是如何加快速度?需要3分钟的时间表定义和实际的XML执行计划是什么。表中有索引吗?有索引吗?创建表[dbo].[Mess][Id][int]IDENTITY1,1 NOTNULL,[JobReference][int]NOTNULL,[JobStatusId][int int]NULL,[AssId][int int int int NULL],约束[PK U消息]主键聚集[Id]ASC,带PAD_INDEX=OFF、STATISTICS_norecocomputer=OFF、IGNORE_DUP_KEY=OFF、ALLOW_ROW_LOCKS=ON、ALLOW_PAGE_LOCKS=ON、FILLFACTOR=90 ON[PRIMARY]ON[PRIMARY]text image_ON[PRIMARY]GOStrange。这种变化需要更长的时间。我想知道这张桌子上的数据是否有问题。Hmmmm…@JamesKhan-只需检查更新的查询。将执行计划发布为xml
select distinct jobreference, assid, assid2
from (select m1.jobreference, m1.assid, m2.assid as assid2,
             sum(case when m2.routingkey = 'j.asschanged' then 1 else 0 end) over (partition by m2.jobreference) as cnt
      from dbo.mess m1 inner join
           PRD_Phoenix.dbo.mess m2 
           on m1.JobReference = m2.jobreference and m1.assid <> m2.assid
     ) mm
where cnt = 0;