CheckSpacePutLine

CREATE OR REPLACE PROCEDURE CheckSpacePutLine
IS

used number;
free number;
total number;
hit number;
pins number;
reloads number;
lib number;
smem number;
sdisk number;
para varchar2(2000);
pbytes number;
err number;
application date;
BEGIN

 select sum(usedmb),sum(freemb),sum(totalmb)
 into used,free,total
 from
 (
  select usedmb,freemb,totalmb
   from ts_used_free
   where to_char(check_date,'yyyymmdd')=to_char(sysdate,'yyyymmdd')
 );
 SELECT 1 - (phy.value / (cur.value + con.value))
 into Hit FROM v$sysstat cur, v$sysstat con, v$sysstat phy
 WHERE cur.name = 'db block gets' AND con.name = 'consistent gets'
 AND phy.name = 'physical reads';

 select sum(pins) "Total Pins", sum(reloads) "Total Reloads",
     sum(reloads)/sum(pins) *100 libcache
     into pins,reloads,lib
     from v$librarycache;


 SELECT  value  into smem
  FROM v$sysstat WHERE name IN ('sorts (memory)');
 SELECT  value  into sdisk
  FROM v$sysstat WHERE name IN ('sorts (disk)');


 select bytes  into pbytes
 from v$sgastat where pool='shared pool' and name ='free memory';


 select count(*) into err
  from alert_tab  WHERE text LIKE '%ORA-%' ;

 select max(log_date) into application from eport.application_log ;

 para := 'Used '||' '
 || to_char(used) || ' ' || ' Free' ||' '
 || to_char(free) || ' ' || ' Total'||' '
 || to_char(total)|| ' ' ||' bufferHitis '||''
 || to_char(hit)||' ' ||' SharePool'||' '
 || to_char(lib)||' ' || 'MemSort'||''||to_char(smem)||' DiskSort'||' '
 || to_char(sdisk) ||' '||' '
 || 'SharePoolFreebs:'||' '||to_char(pbytes)  ||''
 || 'Terrs'||' '|| to_char(err) || ' ' || 'The Last Ap Err occured in' || to_char(application);

 dbms_output.put_line(para);

END;
/


CREATE OR REPLACE PROCEDURE "INSERT_TS" is
begin

insert into ts_used_free
select
 sysdate    "check_date",
 tablespace_name   "Tablespace",
 (totalspace - freespace) "UsedMB",
 freespace   "FreeMB",
 totalspace   "TotalMB",
 round (100*(freespace/totalspace))
      "PCT FREE"
from
 (
 select
  tablespace_name,
  round(sum(bytes)/1048576 ) totalspace
 from
  dba_data_files
 group by
 tablespace_name
 ) ,
 (
 select
  tablespace_name   tbname,
  round(sum(bytes)/1048576) freespace
 from
  dba_free_space
 group by
  tablespace_name
)
where
 tablespace_name = tbname;

end;
/

SQL> desc ts_used_free;
 名称                                      是否为空? 类型
 ----------------------------------------- -------- ----------------------------
 CHECK_DATE                                         DATE
 TABLESPACE                                         VARCHAR2(30)
 USEDMB                                             NUMBER
 FREEMB                                             NUMBER
 TOTALMB                                            NUMBER
 PCTFREE                                            NUMBER

SQL>


CREATE TABLE TS_USED_FREE
(
  CHECK_DATE  DATE,
  TABLESPACE  VARCHAR2(30 BYTE),
  USEDMB      NUMBER,
  FREEMB      NUMBER,
  TOTALMB     NUMBER,
  "PCTFREE"   NUMBER
)
TABLESPACE SYSTEM
PCTUSED    40
PCTFREE    10
INITRANS   1
MAXTRANS   255
STORAGE    (
            INITIAL          64K
            MINEXTENTS       1
            MAXEXTENTS       2147483645
            PCTINCREASE      0
            FREELISTS        1
            FREELIST GROUPS  1
            BUFFER_POOL      DEFAULT
           )
LOGGING
NOCACHE
NOPARALLEL;


CREATE SYNONYM EPORT.TS_USED_FREE FOR TS_USED_FREE;


GRANT SELECT ON  TS_USED_FREE TO PUBLIC;

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9408/viewspace-102279/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/9408/viewspace-102279/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值