linux redhat & Oracle

硬解析的演示

2019-07-01  本文已影响0人  重庆思庄

硬解析的演示

    下面对上面的两种情形进行演示

    在两个不同的session中完成,一个为sys帐户的session,一个为scott账户的session,不同的session,其SQL命令行以不同的帐户名开头

    如" sys@ASMDB> "  表示使用时sys帐户的session," scott@ASMDB> "表示scott帐户的session

        sys@ASMDB> select name,class,value from v$sysstat where statistic#=331;       

        NAME                      CLASS      VALUE

        -------------------- ---------- ----------          --当前的硬解析值为569

        parse count (hard)          64        569

        scott@ASMDB> select * from emp; 

        sys@ASMDB> select name,class,value from v$sysstat where statistic#=331;   

        NAME                      CLASS      VALUE

        -------------------- ---------- ----------          --执行上一个查询后硬解析值为570,解析次数增加了一次

        parse count (hard)          64        570

        scott@ASMDB> select * from Emp;

        sys@ASMDB> select name,class,value from v$sysstat where statistic#=331;     

        NAME                      CLASS      VALUE

        -------------------- ---------- ----------          --执行上一个查询后硬解析值为571

        parse count (hard)          64        571

        scott@ASMDB> select * from EMP;

        sys@ASMDB> select name,class,value from v$sysstat where statistic#=331;     

        NAME                      CLASS      VALUE

        -------------------- ---------- ----------          --执行上一个查询后硬解析值为572

        parse count (hard)          64        572 

        scott@ASMDB> select * from emp where empno=7369;     

        sys@ASMDB> select name,class,value from v$sysstat where statistic#=331;

        NAME                      CLASS      VALUE

        -------------------- ---------- ----------          --执行上一个查询后硬解析值为573

        parse count (hard)          64        573

        scott@ASMDB> select * from emp where empno=7788;  --此处原来empno=7369,复制错误所致,现已更正为7788@20130905 

        sys@ASMDB> select name,class,value from v$sysstat where statistic#=331;

        NAME                      CLASS      VALUE

        -------------------- ---------- ----------          --执行上一个查询后硬解析值为574

        parse count (hard)          64        574

    从上面的示例中可以看出,尽管执行的语句存在细微的差别,但Oracle还是为其进行了硬解析,生成了不同的执行计划。即便是同样的SQL

    语句,而两条语句中空格的多少不一样,Oracle同样会进行硬解析。

上一篇下一篇

猜你喜欢

热点阅读