SQL 的查询语句效率问题
看ORACLE文档,说在执行相同多次的SQL语句中
WHERE= :变量 比WHERE= 常量 执行效率较高。
如一个系统中多次调用一个SQL语句查询
1)WHERE= :变量
Select id from table_name where id=:var1
执行了3次,分别传递给变量 :var1 的值为A,B,C
ORACLE 对于这个SQL语句的执行计划就分析1次。
2)WHERE= 常量
select id from table_name where id=A;
select id from table_name where id=B;
select id from table_name where id=C;
ORACLE 对于这个SQL语句的执行计划分析3次
故第一个效率比第二个执行效率高(是否正确 ?)
问题
1) ORACLE 分析一个SQL的执行计划到底需要多少资源?如何来计算?
2) 如何可以具体测试比较出这两个SQL语句的执行效率差距?
3) 第二种SQL语句是否在大批量查询时候会成浪费很多CPU, MEMORY ?