zoukankan      html  css  js  c++  java
  • natural join 以及 v$statname , v$sessstat

    oracle natural join是一个比较方便的用法。如果两个表的某些字段名称相同,类型相同,natural join就会把他们做等值连接。比如下面我们知道这两个视图的结构如下:

    SQL> desc v$sesstat
     Name                                        Null?    Type
     ------------------------------------------- -------- ------------------------------
     SID                                                  NUMBER
     STATISTIC#                                           NUMBER
     VALUE                                                NUMBER
    
    SQL> desc v$statname
     Name                                        Null?    Type
     ------------------------------------------- -------- ------------------------------
     STATISTIC#                                           NUMBER
     NAME                                                 VARCHAR2(64)
     CLASS                                                NUMBER
     STAT_ID                                              NUMBER

    它们的statistic# 也就是统计信息id 这个字段名字和类型都相同,所以如果用 natural join 就可以如下:

    select sum(value) from v$statname natural join v$sesstat where name='session pga memory';

    这个查询也等价于

    select sum(value) from v$statname a join v$sesstat b on a.STATISTIC#=b.STATISTIC# where name='session pga memory';

    但是要注意的是这两个查询返回的值略有不同,因为这个查询返回PGA总使用量。而pga总使用量是会变化的。

  • 相关阅读:
    信息检索笔记
    北大课程(变态心理学)
    My life
    Excel小技巧(随机点名)
    Flask基础
    CTF
    GDB
    LD_PRELOAD
    AFL-数据变异
    AFL入门
  • 原文地址:https://www.cnblogs.com/kramer/p/3421091.html
Copyright © 2011-2022 走看看