暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 对象 _ 增长 _ 趋势函数

askTom 2018-10-09
321

问题描述

嗨,

我正在尝试使用下面的脚本来分析表消耗的数据,因为我正在计划datawarehouse的存储容量。使用此值 (对于每个表),我将能够计划18个月的数据。
我正在编写一个脚本来监视特定时间点的数据库使用情况。
参考:https://docs.oracle.com/database/121/ARPLS/d_space.htm#ARPLS68110

感谢您是否可以帮助编写脚本

SET SERVEROUTPUT ON

SET VERIFY OFF

DECLARE

v_object_owner           VARCHAR2(30) := UPPER('&1');,

   v_object_name              VARCHAR2(30)  := UPPER('&2');,

   v_object_type              VARCHAR2(30)  := UPPER('&3');,

   v_partition_name           VARCHAR2(30) DEFAULT NULL,

   v_start_time                TIMESTAMP DEFAULT NULL,

   v_end_time                 TIMESTAMP DEFAULT NULL,

   v_interval                 DSINTERVAL_UNCONSTRAINED DEFAULT NULL,

   v_skip_interpolated       VARCHAR2(30) DEFAULT 'FALSE',

   v_timeout_seconds          NUMBER DEFAULT NULL,

   v_single_datapoint_flag    VARCHAR2(30) DEFAULT 'TRUE') ,

v_timepoint TIMESTAMP,

  v_space_usage NUMBER,

  v_space_alloc NUMBER,

  v_quality VARCHAR(20))

 

DBMS_SPACE.OBJECT_GROWTH_TREND (

   object_owner =>v_ object_owner          ,

   object_name       =>v_object_name                 ,

   object_type       => v_ object_type     ,

   partition_name => v_partition_name         ,

   start_time => v_start_time             ,

   end_time  => v_end_time              ,

   interval => v_intercal              ,

   skip_interpolated => v_skip_interpolated     ,

   timeout_seconds => v_timeout_seconds     ,

   single_datapoint_flag => v_single_datapoint_flag) ;

RETURN object_growth_trend_table PIPELINED; 

 

DBMS_OUTPUT.PUT_LINE('object_name                    :' || v_object_name );

DBMS_OUTPUT.PUT_LINE('object_type                    :' || v_object_type);

DBMS_OUTPUT.PUT_LINE('object_owner             :' || v_object_owner);

DBMS_OUTPUT.PUT_LINE('start time             :' || v_start_time );

DBMS_OUTPUT.PUT_LINE('end_time             :' || v_end_time );

DBMS_OUTPUT.PUT_LINE('The time at which the statistic was recorded             :' || v_timepoint);

DBMS_OUTPUT.PUT_LINE('The space used by data             :' || v_space_usage);

DBMS_OUTPUT.PUT_LINE('The size of segment including overhead and unused space            :' || v_space_alloc);

 

TYPE object_growth_trend_row IS RECORD(

  timepoint TIMESTAMP,

  space_usage NUMBER,

  space_alloc NUMBER,

  quality VARCHAR(20));

END;

/
复制


谢谢,

罗山

专家解答

你会很高兴知道它比这容易得多。

这是一个流水线函数,所以你可以像表一样查询它

SQL> select *
  2  from
  3  DBMS_SPACE.OBJECT_GROWTH_TREND (
  4     object_owner=>'SCOTT',
  5     object_name=>'EMP',
  6     object_type=>'TABLE');

TIMEPOINT                                                                   SPACE_USAGE SPACE_ALLOC QUALITY
--------------------------------------------------------------------------- ----------- ----------- ----------
10-SEP-18 02.16.51.356000 PM                                                       8192       65536 GOOD
复制


这里的流水线函数教程

https://livesql.oracle.com/apex/livesql/file/tutorial_GS1U5KY647O601AZ0CGDQTKJX.html

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论