在进行SQL优化的过程中,会遇到谓词越界导致执行计划错误的情况,就需要确定其指定列上统计信息中的最大值和最小值是否为最新的,以下是查询转换的SQL
-
set serveroutput on
-
declare
-
a_low dba_tab_columns.low_value%type;
-
a_high dba_tab_columns.high_value%type;
-
aa NMOSDB.TFA_ALARM_CLR.EVENT_TIME%type;
-
begin
-
SELECT LOW_VALUE, HIGH_VALUE
-
into a_low, a_high
-
FROM dba_tab_columns
-
WHERE owner = 'NMOSDB' ----用户名
-
AND table_name in ('TFA_ALARM_CLR') ---表名
-
and COLUMN_NAME in (upper('EVENT_TIME'));
-
dbms_stats.convert_raw_value(a_low, aa);
-
dbms_output.put_line(''||aa);
-
dbms_stats.convert_raw_value(a_high, aa);
-
dbms_output.put_line(aa);
-
end;
-
/
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/28551528/viewspace-2125943/
,如需转载,请注明出处,否则将追究法律责任。