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总使用量是会变化的。

  • 相关阅读:
    PHPMailer邮件发送
    php 统计在线人数,今日访问量,总访问量
    php 首页定时生成静态页面
    jquery自动生成二维码
    php图片等比例缩放
    判断checkbox选中
    Pojo和JavaBean的区别
    Highcharts简单入门
    [转载]了解Activity工作流
    集群和分布式初探
  • 原文地址:https://www.cnblogs.com/kramer/p/3421091.html
Copyright © 2011-2022 走看看