今天在看服务器里执行了的语句历史看到其中一句
INSERT INTO ACCOUNTS(ACCOUNTS_ID, ACCOUNTS_CODE) VALUES (:p1, :p2)不太明白这是什么形式,我怎么可以知道:p1 :p2的具体值呢?谢谢

解决方案 »

  1.   

    这个是share_pool_size里面的内容,为了避免同样的语句多次解析,oracle把相同的语句使用绑定变量的形式。以后执行同样的语句就只要接受变量就行了。。这个也和cursor_shared有关
      

  2.   

    SQL使用绑定变量就象生产产品先做一个模具,利用模具可以快速生产成品,而不需要每次都要重头打造。
    SQL执行主要分主三步,分析、执行、取数,其中分析要消耗很CPU时间来查找最佳的执行SQL的计划。
    使用绑定变量后,对于相同的语句第二次就不用再分析了。只需要导入不同的常量就行了。大大加快了执行。
      

  3.   

    这是绑定变量;
    :p1,:p2在每次执行时的值都可能不同。
    所以,你没办法知道这个值是什么?
    除非,你针对具体的session设置10046跟踪事件,level设置为8或者12。