大小写,空格,注释会导致不同的SQL ID吗?答案是会。

参考了Ask Tom中的2篇文章中的实验:

Getting SQL ids for a a sqltextTwo identical queries with same parameter values have different execution plans …

以下6个SQL语句:

select /* this */* from dual;

-- 注释不同

select /* that */* from dual;

-- 大写的FROM

select /* this */* FROM dual;

-- 大写首字母From

select /* that */* From dual;

-- from之前加了多个空格

select /* this */* from dual;

-- from之前加了多一个Tab

select /* that */* from dual;

查询SQL ID,其结果是6个不同的ID:

select sql_id, sql_text from v$sql

where ( sql_text like '%this%' or sql_text like '%that%' );

SQL_ID SQL_TEXT

3n5uv2khs5hrz select /* this */* from dual

gqrwquv0utrb7 select /* this */* from dual

cd8h6juhw5wkk select /* that */* from dual

dp4qdmznukfmx select /* this */* FROM dual

3q6usz444fzcx select /* that */* From dual

764k7wbm77d1c select /* that */* from dual