小编pra*_*gan的帖子

交换SELECT语句时,Oracle JOIN操作性能会发生变化

在研究Oracle查询解析和性能时,我遇到了以下行为.我使用了以下查询,

SELECT 1 
FROM USER_PROCEDURES 
WHERE OBJECT_NAME = SUBSTR( UPPER('Client_Sys.Clear_Info' ), 1, INSTR( UPPER('Client_Sys.Clear_Info'), '.' ) - 1 ) 
AND PROCEDURE_NAME = SUBSTR( UPPER('Client_Sys.Clear_Info' ), INSTR( UPPER('Client_Sys.Clear_Info' ),'.' ) + 1 ) 
UNION 
SELECT 1 
FROM USER_OBJECTS 
WHERE OBJECT_NAME = UPPER('Client_Sys.Clear_Info') 
AND OBJECT_TYPE = 'PROCEDURE';
Run Code Online (Sandbox Code Playgroud)

上述查询的解释计划如下,

在此输入图像描述

现在我将查询更改为以下格式[交换SELECT语句],

SELECT 1 
FROM USER_OBJECTS 
WHERE OBJECT_NAME = UPPER('Client_Sys.Clear_Info') 
AND OBJECT_TYPE = 'PROCEDURE'
UNION 
SELECT 1 
FROM USER_PROCEDURES 
WHERE OBJECT_NAME = SUBSTR( UPPER('Client_Sys.Clear_Info' ), 1, INSTR( UPPER('Client_Sys.Clear_Info'), '.' ) - 1 ) 
AND PROCEDURE_NAME …
Run Code Online (Sandbox Code Playgroud)

sql oracle join sql-execution-plan

4
推荐指数
1
解决办法
610
查看次数

标签 统计

join ×1

oracle ×1

sql ×1

sql-execution-plan ×1