Sql 2行停止选择查询运行

Sql 2行停止选择查询运行,sql,oracle,Sql,Oracle,在Oracle SQL中运行此查询时 SELECT ImportRef.GL_SL_LINK_ID, ImportRef.GL_SL_LINK_TABLE, Combos.Segment5 FROM GL_IMPORT_REFERENCES ImportRef JOIN GL.GL_JE_LINES GLLines ON GLLines.JE_HEADER_ID = ImportRef.JE_HEADER_ID AND GLLines.JE_LINE_NUM

在Oracle SQL中运行此查询时

SELECT 
       ImportRef.GL_SL_LINK_ID, ImportRef.GL_SL_LINK_TABLE, Combos.Segment5
FROM GL_IMPORT_REFERENCES ImportRef
JOIN GL.GL_JE_LINES GLLines
     ON GLLines.JE_HEADER_ID = ImportRef.JE_HEADER_ID 
     AND GLLines.JE_LINE_NUM = ImportRef.JE_LINE_NUM
JOIN GL.GL_CODE_COMBINATIONS Combos
     ON Combos.CODE_COMBINATION_ID = GLLines.CODE_COMBINATION_ID
JOIN XLA.XLA_AE_LINES XLAL
     ON ImportRef.GL_SL_LINK_ID = XLAL.GL_SL_LINK_ID
     AND ImportRef.GL_SL_LINK_TABLE = XLAL.GL_SL_LINK_TABLE
WHERE
     Combos.Segment1 = '310'
     AND GLLines.PERIOD_NAME IN ('10-13')
     AND ImportRef.GL_SL_LINK_ID != 352258267
     AND ImportRef.GL_SL_LINK_ID != 248391353
ORDER BY GL_SL_LINK_ID;
它在几秒钟内运行并返回44000行

如果我移除了

     AND ImportRef.GL_SL_LINK_ID != 352258267
     AND ImportRef.GL_SL_LINK_ID != 248391353
它被卡住了,需要很长时间才能跑完,我不得不放弃。看着表中的这些行,我看不出它们有什么特别之处。你知道为什么两个看似随机的行会对查询产生如此大的影响吗

答复意见

我最初是通过SQL Server中的OPENQUERY运行查询的,它将行返回到这些行,然后作为一个测试被“卡住”,我只是排除了下一条记录,然后它突然工作了

XLA_AE_线上有一个索引XLAL as

关于GL_SL_LINK_ID和GL_SL_LINK_表

回应西蒙·克林格

快速查询

Operation               Object Name         Rows    Bytes   Cost                                 SELECT STATEMENT Optimizer Mode=ALL_ROWS               27 K        1410564                                 SORT ORDER BY                               27 K    1 M 1410564                              
    NESTED LOOPS                            27 K    1 M 1410078                              
      NESTED LOOPS                          22 K    1 M 117603                               
        NESTED LOOPS                            8 K 317 K   64956                                
          TABLE ACCESS BY INDEX ROWID   GL.GL_CODE_COMBINATIONS     7 K 119 K   349                              
            INDEX RANGE SCAN        GL.GL_CODE_COMBINATIONS_N1  7 K     23                               
          TABLE ACCESS BY INDEX ROWID   GL.GL_JE_LINES          1   23  10                               
            INDEX RANGE SCAN        GL.GL_JE_LINES_N1       19      3                                
        TABLE ACCESS BY INDEX ROWID GL.GL_IMPORT_REFERENCES     3   63  8                                
          INDEX RANGE SCAN      GL.GL_IMPORT_REFERENCES_N1  23      3                                
      PARTITION LIST ALL                        1   14  57       
        INDEX RANGE SCAN        XLA.XLA_AE_LINES_N4     1   14  57
慢查询

操作对象名称行字节成本

SELECT STATEMENT Optimizer Mode=ALL_ROWS                74 K        2630601                                 
  SORT ORDER BY                             74 K    5 M 2630601                                 
    HASH JOIN                               74 K    5 M 2629290                                 
      NESTED LOOPS                                               
        NESTED LOOPS                            59 K    3 M 117602                                   
          NESTED LOOPS                          8 K 317 K   64956                                
            TABLE ACCESS BY INDEX ROWID GL.GL_CODE_COMBINATIONS     7 K 119 K   349                                  
              INDEX RANGE SCAN      GL.GL_CODE_COMBINATIONS_N1  7 K     23                                   
            TABLE ACCESS BY INDEX ROWID GL.GL_JE_LINES          1   23      10                                   
              INDEX RANGE SCAN      GL.GL_JE_LINES_N1       19          3                                
          INDEX RANGE SCAN      GL.GL_IMPORT_REFERENCES_N1  23          3                                
        TABLE ACCESS BY INDEX ROWID GL.GL_IMPORT_REFERENCES 7   147     8                                
      PARTITION LIST ALL                        355 M   4G  1999069                         
        INDEX FULL SCAN                 XLA.XLA_AE_LINES_N4     355 M   4G  1999069 

最大的区别似乎是在最后从范围扫描切换到完全扫描我可以理解为什么这会减慢速度,但不确定为什么会这样变化,有什么想法吗?

在44000行中,您如何确定这两行是问题行?向我们展示您的数据库模式。GL_SL_LINK_ID是主键或索引?我能想到的是,在XLA_AE_行中有许多行用于这些ID。我不知道,你为什么要和那张桌子坐在一起;我没有看到它在任何限制中或在您的实际选择中返回?我检查了那些ID,两者都只返回一条记录。我写的实际查询还有很多,我只是把它减少到最小,以突出我的问题。请提供快速和慢速查询的执行计划。在那里你应该看到发生了什么。