网站首页 > 文章中心 > 其它

oracle监控怎么用

作者:小编 更新时间:2023-09-22 18:40:03 浏览量:300人看过

如何使用C#监控oracle数据库?

这种思路不好,实现不了.

需要换一种想法.

例如:

①C#写一个实时监控程序,Oracle写包和触发器.

整体思路是:

当某个表有变动,触发器就触发并写入数据到指定表或视图.

oracle监控怎么用-图1

一段时间后,C#监控程序调用Oracle的包,包从指定表或视图获取数据,然后将数据返回到监控端,监控端再触发特定的C#代码.

如何监控ORACLE索引使用与否

ORACLE其实提供了监控索引使用情况的功能.ALTER INDEX index_name MONITORING USAGE; 我们下面来测试验证一下吧.

创建一个表TEST作为实验测试验证的样例

CREATE TABLE TEST

(

oracle监控怎么用-图2

ID NUMBER(10),

);

CREATE INDEX IDX_TEST_ID ON TEST(ID);

INSERT INTO TEST

SELECT 1001, 'Kerry' FROM DUAL UNION ALL

COMMIT;

execute dbms_stats.gather_table_stats(ownname = 'ETL', tabname ='TEST', estimate_percent =DBMS_STATS.AUTO_SAMPLE_SIZE, method_opt = 'FOR ALL COLUMNS SIZE AUTO');启用对索引IDX_TEST_ID的监控

SQL COL TABLE_NAME FOR A10

SQL COL MONITORING FOR A10

SQL COL USED FOR A10

SQL SELECT * FROM V$OBJECT_USAGE;

SQL SET AUTOTRACE ON;

SQL SELECT * FROM TEST WHERE ID =1001;

ID NAME

---------- --------------------------------1001 Kerry

Execution Plan

-----

- 'PLAN_TABLE' is old version

Statistics

oracle监控怎么用-图3

----------------------------------------------------------1 recursive calls

0 db block gets

0 physical reads

0 redo size

0 sorts (memory)

0 sorts (disk)

①. rows processed

clip_image001

如下所示,此时索引IDX_TEST_ID依然没有被使用.

我们使用索引提示强制下面SQL使用索引IDX_TEST_IDSELECT /*+ INDEX(TEST IDX_TEST_ID) */* FROM TEST WHERE ID =1001;此时你就会发现USED的值变为了YES了.

ALTER INDEX IDX_TEST_ID NOMONITORING USAGE;执行上面命令后,在V$OBJECT_USAGE表中,就会更新表TEST记录的END_MONITORING、MONITORING的值.

如果你又启用监控索引使用情况,那么系统会更新START_MONITORING、END_MONITORING字段的值(END_MONITORING的值更新为NULL).如果删除表TEST,此时你会发现V$OBJECT_USAGE对象中关于表TEST的记录也不见了.

注意:SELECT * FROM V$OBJECT_USAGE; 只能查看当前用户下被监控的索引信息.即使sys、system用户也不能查看其它用户的信息.

在测试过程中有个小疑问,就是在准备测试环境时,如果不对表收集统计信息的话,那么即使SQL走全表扫描,你依然发现V$OBJECT_USAGE中索引被标记使用了.如下所示DROP TABLE TEST PURGE;

ALTER INDEX IDX_TEST_ID MONITORING USAGE;SQL SET AUTOTRACE ON;

SQL SELECT * FROM TEST WHERE ID =1001;

①.0 consistent gets

如果我们想在系统中监控所有的索引,那么我们可以通过下面脚本实现监控数据库所有的索引.注意我们要排除一些系统表的索引、以及LOB indexes.原因有下面两个:

*Action: None.

SET HEADING OFF;

SPOOL run_monitor.sql

SELECT

'ALTER INDEX '||OWNER||'.'||INDEX_NAME||' MONITORING USAGE;'

FROM

DBA_INDEXES

WHERE

INDEX_TYPE != 'LOB' AND OWNER NOT IN ('SYS', 'SYSMAN', 'SYSTEM', 'MDSYS', 'WMSYS', 'TSMSYS', 'DBSNMP', 'OUTLN');

SPOOL OFF;

@run_monitor.sql

此时使用下面脚本就能查出那些索引是未使用索引,当然监控索引时长非常重要,太短的话有可能导致查询出来的数据有问题,一般建议监控一周后即可,OLAP系统则需要适当延长监控的时间.

SELECT I.TABLE_OWNER,

T.TABLE_NAME,

I.INDEX_NAME,

U.USED,

U.START_MONITORING,

U.END_MONITORING

FROM USER_TABLES T

INNER JOIN USER_INDEXES I

ON T.TABLE_NAME = I.TABLE_NAME

INNER JOIN V$OBJECT_USAGE U

ON U.TABLE_NAME = I.TABLE_NAME

AND I.INDEX_NAME = U.INDEX_NAME

select *

from

(select

owner,

index_name

dba_indexes di

where

di.index_type != 'LOB'

and

owner not in ('SYS', 'SYSMAN', 'SYSTEM', 'MDSYS', 'WMSYS', 'TSMSYS', 'DBSNMP', 'OUTLN')minus

select

index_owner owner,

dba_constraints dc

index_owner not in ('SYS', 'SYSMAN', 'SYSTEM', 'MDSYS', 'WMSYS', 'TSMSYS', 'DBSNMP', 'OUTLN')minus

p.object_owner owner,

p.object_name index_name

stats$snapshot sn,

stats$sql_plan p,

stats$sql_summary st,

stats$sql_plan_usage spu

st.sql_id = spu.sql_id

spu.plan_hash_value = p.plan_hash_value

st.hash_value = p.plan_hash_value

sn.snap_id = st.snap_id

sn.dbid = st.dbid

sn.instance_number = st.instance_number

sn.snap_id = spu.snap_id

sn.dbid = spu.snap_id

sn.instance_number = spu.instance_number

sn.snap_id between begin_snap and end_snapand

p.object_type = 'INDEX'

)

/

accept idxname char prompt 'Enter Index Name: '

ttitle 'Invocation Counts for index|idxname'

dba_hist_snapshot sn,

dba_hist_sql_plan p,

dba_hist_sqlstat st

st.sql_id = p.sql_id

p.object_name = 'idxname'

group by

begin_interval_time,search_columns;

如何启动oracle监听

如何启用Oracle EBS Form监控

?在Oracle EBS上进行Form跟踪的技术方法:

Oracle EBS的一个Profile 提供此功能:

User_Profile_Option_Name = 登录:审计层(Sign-On:Audit Level)

View_Name = FND_SIGNON_AUDIT_VIEW

'无':不跟踪--A

'用户':只跟踪到哪个用户登陆

'职责':只跟踪到哪个用户以哪个职责登陆

'表单':跟踪哪个用户以哪个职责登陆后,运行哪个FORM--D

启用此Profile后,可以在FND_SIGNON_AUDIT_VIEW中查询到相关数据

通过PID或PROCESS_SPID与 v$process/v$session 关联

"登录:审计层"允许您选择审计登录至 Oracle 应用产品用户的层,并增加了四个审计层的功能:无、用户、责任和表单.?

"无"是默认值,

表示不审计登录到 Oracle 应用产品的任何用户.?

在"用户"层的审计线索:?

登录至您的系统的用户?

用户登录和退出的时间

占用的终端?

在"责任"层审计执行了"用户"层审计功能和线索:?

责任用户选择?

用户使用每个责任的时间量?

在"表单"层审计执行了"责任"层审计功能和线索:?

用户选择的表单?

用户使用每个表单的时间?

系统管理员在所有层均可进行查看、更新.?

用户无法查看或更改此预置文件选项.?

此预置文件选项在全部四个层均可查看和更新.?

层? ? ? ?是否可查看? ? ? ?是否允许更新?

站点? ? ? ?是? ? ? ?是?

应用? ? ? ?是? ? ? ?是?

责任? ? ? ?是? ? ? ?是?

用户? ? ? ?是? ? ? ?是?

此预置文件选项的内部名称为 SIGNONAUDIT:LEVEL.

标准功能的Form,都会被只要设定Profile值,都会被监控的;

但是,客制开发的Form,如果想被系统记录其使用情况和使用次数,必须写代码:

在Pre-Form(或者WHEN-NEW-FORM-INSTANCE)正确输入下面语句,就可以记录每次User登录Form的信息(登录时间,次数等)了:

例如,Form名称是:XYG_WIP_MOVE_SCH_QY

注册的模组的简称是:XYG

只要User登录这个Form,就会被记录下来,方便以后统计Form的被使用次数等信息.

逻辑是:只要在同一个权限登录一次Form,就会被记录一次.

同时,用DB工具也可以方便查看目前用户使用Form的信息.

oracle数据库事件监视器怎么用

检查实例的可用性

检查监听器的可用性

检查alert日志文件中的错误信息

在存放log文件的地方满以前清空旧的log文件

分析table和index以获得更好的性能

检查表空间的使用情况

找出无效的对象

监控用户和事务!

如何在LoadRunner中监控oracle数据库

Oracle database 10g

① 使用LR自带的监控引擎

这一步就不用说了,安装直接Setup,安装就OK了.

①.,安装完后,先配置一下Net Configuration Assistant.记住配置的服务名.

配置成功会显示:正在连接...测试成功.

查看是否登录成功.

这里我们用LR native monitors.

不需要配置Net Configuration Assistant.

今天这一节可以选择本地或者其他机器的sitescope,如果sitescope启用了aclearcase/" target="_blank" ccount的验证,也要写上相应的用户名密码.

至此就可以监控oracle了.

以上就是土嘎嘎小编为大家整理的oracle监控怎么用相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章