zoukankan      html  css  js  c++  java
  • oralce sql 缓存查询及删除

    --缓存查询语句 V$SQLAREA 视图记录sql 执行情况(加载次数/用时/Id....)

    常用字段

    ADDRESS:SQL语句在SGA中的地址。 

    这两列被用于鉴别SQL语句,有时,两条不同的语句可能hash值相同。这时候,必须连同ADDRESS一同使用来确认SQL语句。 
    PARSING_USER_ID:为语句解析第一条CURSOR的用户 
    VERSION_COUNT:语句cursor的数量 
    KEPT_VERSIONS: 
    SHARABLE_MEMORY:cursor使用的共享内存总数 
    PERSISTENT_MEMORY:cursor使用的常驻内存总数 
    RUNTIME_MEMORY:cursor使用的运行时内存总数。 
    SQL_TEXT:SQL语句的文本(最大只能保存该语句的前1000个字符)。 
    MODULE,ACTION:使用了DBMS_APPLICATION_INFO时session解析第一条cursor时的信息 
    SQL_FULLTEXT :完整的sql语句
    SELECT ADDRESS,HASH_VALUE,SQL_FULLTEXT FROM V$SQLAREA

    查看某条sql 缓存记录 eg:

    SELECT ADDRESS,HASH_VALUE,SQL_FULLTEXT,ELAPSED_TIME FROM V$SQLAREA  WHERE sql_fulltext like '%from template_data_temp t%';

     --清除某条记录 

    参数1:ADDRESS
    参数2:HASH_VALUE
    参数3:c

    第三个参数'C'表示PURGE的对象是CURSOR(游标),不过实际上这里可以使用除了P(PROCEDURE/FUNCTION/PACKAGE)、T(TYPE)、R(TRIGGER)和Q(SEQUENCE)的任何值。
        使用这种方法,就可以精确的将一个SQL从共享池中删除,从而使得Oracle为这个SQL重新生成执行计划。这种方法只针对单个SQL语句,使得解决问题的同时不会造成任何的误伤。

    exec sys.dbms_shared_pool.purge('0000000061B5EAD0,772411230','c');

    --清空所有计划缓存   生产环境服务器负载较大时 慎用 同时删除清空所有缓存可能造成服务器压力过大

    ALTER SYSTEM FLUSH SHARED_POOL
  • 相关阅读:
    python系列十二:python3模块
    python系列十一:python3数据结构
    python系列十:python3函数
    python系列九:python3迭代器和生成器
    python系列八:Python3条件控制&循环语句
    python系列七:Python3字典dict
    python系列六:Python3元组tuple
    Linux Ubuntu 安装SSH服务
    Linux Ubuntu 查看IP
    Linux 基础命令
  • 原文地址:https://www.cnblogs.com/wangfl/p/14710183.html
Copyright © 2011-2022 走看看