• v$sql,v$sqlarea,v$sqltext有什么区别?


    1、查一下这些视图的定义你就能理解,它们的源都是一个。
    SELECT view_definition FROM v$fixed_view_definition        WHERE view_name='GV$SQL';
    SELECT view_definition FROM v$fixed_view_definition        WHERE view_name='GV$SQL_AREA';

    2、实际上最模糊的是v$sql与v$sqlarea,区别与联系除biti说的还有:

    a、v$sql_area相当于是按INST_ID, KGLNAOBJ, KGLHDPAR, KGLNAHSH, KGLNATIM, GLOBTS0,GLOBT19, KGLOBTS1, KGLOBT20,DECODE(KGLOBT33, 1, 'Y', 'N'),KGLHDCLT这些列的自v$sql的group by,也就是说v$sql的每一行表示的是每一个sql语句的一个versiion,而v$sqlarea存放的是相同语句不同version一个汇总。

    b、 v$sql与v$sqlarea的源都是一个:X$KGLCURSOR

    c、实际调优中建议使用v$sql,相对来说比v$sqlarea快,而且还不会产生share pool latch的争用。

    3、因v$sql及v$sqlarea存放着统计信息在调优时使用居多,但其sql是不全的,如果想获得完整的sql就要用v$sqltext了。

  • 相关阅读:
    正则表达式 \n和\r
    【转】单循环赛赛程安排算法研究
    Iterator效率
    Map获取键值
    PL/SQL语法详解(pdf)
    Iterator模式
    测试js函数的静态页面
    【转】java的一些基本概念
    Oracle 11g用户解锁
    oracle官方文档
  • 原文地址:https://www.cnblogs.com/weaver1/p/2493796.html
Copyright © 2020-2023  润新知