ORACLE程序对象及工具

PRODURCE和FUNCTION的区别:

相同点:
1.一次编译,多次执行。
2.语法结构类似,都带有传入传出参数。
不同点:
1.如果只返回一个参数选择函数,返回多个选择存储过程(存储过程可以返回参数,结果集,函数只能返回值或者表对象)
2.函数功能性比较强,复杂的功能处理实现不了,存储过程却可以。
3.函数里面不能用临时表,只能用表变量,而存储过程基本都可以。
4.存储过程不能使用RETRUN,而函数必须使用RETURN返回
5.执行方式略有不同,存储过程的执行方式有两种(1.使用EXECUTE;2.使用BEGIN和END)函数除了
存储过程的两种方式,还可以当做表达试使用,例如放在SELECT中(SELECT F1() FROM DUAL;)
最大的区别就是 存储过程不返回数据,函数可以返回数据。

SQLPROFILE
SQL PROFILE就是为某条SQL语句提供除了系统统计信息、对象(表和索引等)统计信息之外的其它信息,比如运行环境、额外的更准确的统计信息,以帮助优化器为SQL语句选择更适合的执行计划。
SQL PROFILE最大的优点是在不修改SQL语句和会话执行环境的情况下去优化SQL的执行效率,适合无法在应用程序中修改SQL时。

SQLTRACE

SQL_TRACE是ORACLE提供的一个非常好的跟踪工具,主要用来检查数据库的异常情况,通过跟踪数据库的活动,找到有问题的语句。

概述:
SQL_TRACE是ORACLE的一个非常强大的工具。打开SQL_TRACE就可以逐步捕获任何一个会话的数据库活动,或者捕获整个数据库的活动,并将数据库活动记录成跟踪文件。每次使用完之后需要关闭跟踪,否则会降低系统的性能。

AWR&STATSPACK

AWR(AUTOMATIC WORKLOAD REPOSITORY)报告是ORACLE 10G之后推出的重要性能诊断工具。AWR是作为STATSPACK报告的一种有力延伸。借助AWR,我们可以方便的对ORACLE数据库的特定工作时间段进行性能分析评价,最终达到发现瓶颈调优的目标。作为DBA,手工生成AWR报告是工作基本功之一。

AWR(AUTOMATIC WORKLOAD REPOSITORY) 是一个 ORACLE 的内置工具,它采集与性能相关的统计数据,并从那些统计数据中导出性能量度,以跟踪潜在的问题。
ORACLE 建议用户用这个取代 STATSPACK。

优于STATSPACK的内容:
1、数据库安装是自己安装该工具,无需另外安装。
2、考虑统计信息收集的清理问题,在默认情况下保留一周的统计信息。
3、AWR报表增加了HTML的可选格式。

在10GR2中,AWR报表实际上是STATPACK报表的延伸,当然10GR2中还是保留了STATPACK,并且STATPACK也增加了对STREAM_POOL的监控,AWR与STATPACK的区别就是AWR的快照的收集与维护更加自动化,默认的保留七天的快照,并且可以通过DBMS_WORKLOAD_REPOSITORY表修改快照的收集频率与快照的保留时间,DBA要干预的已经很少了,比STATPACK维护更简单。

生成HTML文件:
1.用管理员身份登录数据库
2.利用SPOOL在服务器目录下生成对应的REPORT文件记录服务器的操作和命令,SPOOL /TMP/AA.HTML REP
3.这时在数据库执行任何操作都会写入到这个AA.HTML中。
4.如果选择不记录,可以使用SPOOL OFF关闭。

会话:
1.查看目前系统已连接的会话状态,但是通过V S E S S I O N 这 个 数 据 字 典 , 是 只 能 查 看 到 当 前 的 状 态 , 查 看 不 到 那 些 正 在 等 待 的 连 接 状 态 的 会 话 。 D E S C V SESSION这个数据字典,是 只能查看到当前的状态,查看不到那些正在等待的连接状态的会话。 DESC V SESSIONDESCVSESSION;

2.通过V S E S S I O N W A I T 这 个 数 据 字 典 可 以 查 看 目 前 系 统 正 在 等 待 的 会 话 D E S C V SESSION_WAIT这个数据字典可以查看目前系统正在等待的会话 DESC V SESSIONWAITDESCVSESSION_WAIT;

3.通过以上两个数据字典只能看到当前数据库的会话状态,如果想要查看数据库
活动之前的会话是查看不到的,如果要做系统排查和检测这是远远不够的。
但是在ORACLE10G之后,多个一个新的数据字典,V S E S S I O N W A I T H I S T O R Y , 简 称 为 A H ( 活 跃 会 话 历 史 ) 这 张 表 存 放 的 是 数 据 库 活 动 期 间 一 段 时 间 内 的 会 话 状 态 的 一 些 记 录 , 不 止 当 下 还 能 查 看 一 段 时 间 范 围 内 的 会 话 , 但 是 这 张 表 和 第 一 第 二 点 两 张 数 据 字 典 表 有 同 样 的 弊 端 , 就 是 他 们 都 是 存 放 在 内 存 当 中 的 , 如 果 数 据 库 实 例 关 闭 的 时 候 , 那 相 对 应 的 三 份 数 据 字 典 的 数 据 也 会 随 之 消 失 。 D E S C V SESSION_WAIT_HISTORY,简称为AH(活跃会话历史) 这张表存放的是数据库活动期间一段时间内的会话状态的一些记录,不止当下还能查看一段时间范围内的会话, 但是这张表和第一第二点两张数据字典表有同样的弊端,就是他们都是存放在内存当中的,如果数据库实例 关闭的时候,那相对应的三份数据字典的数据也会随之消失。 DESC V SESSIONWAITHISTORY,AHDESCVSESSION_WAIT_HISTORY;

–AWR(自动工作量档案库),作用是可以把数据库过去的数据或者负载情况以报表的形式存放在硬盘里面。
表和字段—AWR—>SYSAUX

快照、基线

–快照:会将数据库当时那一时刻的使用情况保存在硬盘中,但并不是每时每刻的进行记录保存。

–基线:两点一线,会将所保存的快照组成连贯性保存在硬盘SYSAUX这个数据字典里,基线是
某个时段内生成的一组快照,按照统计学对这些快照进行了分组,以便获得一组随时间变化的基线值,可以以任何时段快照采样来做基线.
在ORACLE 11G中系统已经默认创建MOVING WINDOW BASELINE这个基线了。

–快照由MMON(可管理监视器),数据库默认每隔60分钟自动做一次快照,快照记录的信息是
SGA的信息,存放在硬盘里,在硬盘里默认保留8天,而MMON作为AWR进程,它会有个快照的收集级别(BACSIC,TYPICAL,ALL),数据库默认收集级别都是为TYPICAL。
BACSIC:只会收集最基本的信息,信息量少。
TYPICAL:收集一定的信息,信息量中
ALL:收集全部信息,不管啥都会记录,垃圾信息也会,信息量大。

手动生成数据库快照:
1.用管理员身份登录数据库
2.执行EXEC DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT,不用等待60分钟执行,
可以随时手动生成快照。

创建一个AWR基线

EXEC DBMS_WORKLOAD_REPOSITORY.CREATE_BASELINE(START_SHAP_ID,END_SNAP_ID,BASELINE_NAME);

–AWR程序核心是DBMS_WORKLOAD_REPOSITORY包

–AWR报告生成脚本
@?/RDBMS/ADMIN/AWRRPT 本实例

@?/RDBMS/ADMIN/AWRRPTI RAC中选择实例号

@?/RDBMS/ADMIN/AWRDDRPT AWR比对报告

@?/RDBMS/ADMIN/AWRGRPT RAC 全局AWR

自动生成AWR HTML报告:

HTTP://WWW.ORACLE-BASE.COM/DBA/10G/GENERATE_MULTIPLE_AWR_REPORTS.SQL

如何想获取快照内的信息(生成AWR报告):
1.用管理员身份登录数据库。
2.执行@?/RDBMS/ADMIN/AWRRPT.SQL(这是个数据库自带的脚本)
3.执行完脚本后,会要求输入REPORT_TYPE的值:(这里是要选择报表的类型是HTML还是TEXT,
如果是要选择HTML直接拍回车下一步,因为默认的就是HTML,要选择TEXT另行输入)
4.第二部分会要求输入NUM_DAYS的值:(这里是要输入查看的天数,可以直接选择回车即可,就会
显示所有快照的天数)
5.第三部分这里我们可以看到所有的快照生成时间以及数量,结合上面所提到的基线,我们可以从
指定的时间范围内进行查看,例如有1、2、3、4、5个快照ID,我只要看3到5之间的快照记录情况,
在要求输入BEGIN_SNAP的值:3,要求输入END_SNAP的值:5,这样报表就会只会生成这段时间
范围内的数据库情况。
6.第四部分输入REPORT_NAME的值:(AWR报表的名字,可以为XXX.HTML)
7.就会开始生成AWR报告,出现REPORT WRITTEN TO XXX.HTML表示已经生成完毕。
8.报告会保存在~目录下。

也可以通过EM生成AWR报告,
通过图形化界面形式会比较简单。

以上所生成的报告是基于ORACLE11G的新特性加入的默认创建的MOVING WINDOW BASELINE基线
去进行AWR报告生成的,也可以通过EM或者命令行的方式另外生成新的基线去记录按时间或者按快照范围
内的系统负载情况报告,这个DBA_HIST_BASELINE表记录了系统目前的基线信息。

通过DBA_HIST_WR_CONTROL表可以查看实例的ID,每次快照的记录时间,快照的保存周期,快照的收集级别。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值