删除语句的性能/解释计划

问题描述 投票:0回答:0

如何检查删除语句的性能计划,因为解释计划没有显示成本/基数(仅显示选择语句)

或者有没有其他方法可以检查 Oracle 中 delete 语句的性能?

使用“Where exists”检查删除

声明 FTCode VARCHAR (20) := 'XI-9873'; 开始 从表 1 t1 中删除 WHERE EXISTS(从 t1 中选择 1,其中 t1.ftcode = FTCode);

DELETE FROM table2 t2    
WHERE EXISTS (select 1 from t2 Where t2.ftcodet2 = FTCode) ;

结束;

使用 Count(*) 删除

声明 FTCode VARCHAR (20) := 'XI-9873'; FT_COUNT NUMBER := 0; 开始 选择计数 (*) 进入 FT_COUNT 从表 1 t1 其中 t1.ftcode = FTCode;

IF FT_COUNT > 0
THEN
    DELETE FROM table1 t1
    WHERE t1.ftcode = FTCode;  
END IF;

FT_COUNT := 0;

SELECT COUNT (*)
  INTO FT_COUNT
  FROM table2 t2
 WHERE t2. ftcodet2 = FTCode;

IF FT_COUNT > 0
THEN
    DELETE FROM table2 t2
    WHERE t2. ftcodet2 = FTCode;
END IF;

结束;

oracle sql-execution-plan
© www.soinside.com 2019 - 2024. All rights reserved.