查看: 4460|回复: 8

急!如何找出访问最频繁的表?

[复制链接]
论坛徽章:
1
授权会员
日期:2005-10-30 17:05:33
跳转到指定楼层
1#
发表于 2002-3-7 11:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
老板有令:找出数据库中访问最频繁的表,找出访问时间最长的表!
各位帮帮忙,有没有什么好方法可以得到以上数据?感激不尽!
论坛徽章:
15
ITPUB元老
日期:2005-02-28 12:57:002012新春纪念徽章
日期:2012-02-13 15:10:582012新春纪念徽章
日期:2012-02-13 15:10:582012新春纪念徽章
日期:2012-02-13 15:10:582012新春纪念徽章
日期:2012-02-13 15:10:58管理团队成员
日期:2011-05-07 01:45:082011新春纪念徽章
日期:2011-01-25 15:42:562011新春纪念徽章
日期:2011-01-25 15:42:332011新春纪念徽章
日期:2011-01-25 15:42:152011新春纪念徽章
日期:2011-01-25 15:41:50
2#
发表于 2002-3-7 16:16 | 只看该作者

我也想知道.

Help!!

使用道具 举报

回复
论坛徽章:
15
ITPUB元老
日期:2005-02-28 12:57:002012新春纪念徽章
日期:2012-02-13 15:10:582012新春纪念徽章
日期:2012-02-13 15:10:582012新春纪念徽章
日期:2012-02-13 15:10:582012新春纪念徽章
日期:2012-02-13 15:10:58管理团队成员
日期:2011-05-07 01:45:082011新春纪念徽章
日期:2011-01-25 15:42:562011新春纪念徽章
日期:2011-01-25 15:42:332011新春纪念徽章
日期:2011-01-25 15:42:152011新春纪念徽章
日期:2011-01-25 15:41:50
3#
发表于 2002-3-8 09:07 | 只看该作者

请使用数据库的审计功能!

请使用数据库的审计功能!

使用道具 举报

回复
论坛徽章:
1
授权会员
日期:2005-10-30 17:05:33
4#
 楼主| 发表于 2002-3-8 09:09 | 只看该作者

高手们,看过来!

有没有人可以帮帮我们难兄难弟?

使用道具 举报

回复
论坛徽章:
15
ITPUB元老
日期:2005-02-28 12:57:002012新春纪念徽章
日期:2012-02-13 15:10:582012新春纪念徽章
日期:2012-02-13 15:10:582012新春纪念徽章
日期:2012-02-13 15:10:582012新春纪念徽章
日期:2012-02-13 15:10:58管理团队成员
日期:2011-05-07 01:45:082011新春纪念徽章
日期:2011-01-25 15:42:562011新春纪念徽章
日期:2011-01-25 15:42:332011新春纪念徽章
日期:2011-01-25 15:42:152011新春纪念徽章
日期:2011-01-25 15:41:50
5#
发表于 2002-3-8 09:18 | 只看该作者

设置好审计后统计数据字典!

dba_audit_object

使用道具 举报

回复
论坛徽章:
3
ITPUB元老
日期:2005-02-28 12:57:00授权会员
日期:2005-10-30 17:05:33会员2006贡献徽章
日期:2006-04-17 13:46:34
6#
发表于 2002-3-8 09:24 | 只看该作者
最占系统资源的SQL:

select         b.sql_text,
        a.buffer_gets,
        a.executions,
        a.buffer_gets/decode(a.executions , 0 , 1 , a.executions),
        c.username
from         V$sqlarea a,
        v$sqltext_with_newlines b,
        dba_users c
where a.parsing_user_id = c.user_id
and a.address = b.address
order by a.buffer_gets desc , b.piece
  



select         b.sql_text,
        a.disk_reads,
        a.executions,
        a.disk_reads/decode(a.executions , 0 , 1 , a.executions),
        c.username
from         v$sqlarea a,
        v$sqltext_with_newlines b,
        dba_users c
where a.parsing_user_id = c.user_id
and a.address = b.address
order by a.disk_reads desc , b.piece

使用道具 举报

回复
论坛徽章:
92
2011新春纪念徽章
日期:2011-01-25 15:42:33咸鸭蛋
日期:2012-03-19 10:46:00版主1段
日期:2012-05-15 15:24:11奥运会纪念徽章:排球
日期:2012-08-29 07:02:50奥运会纪念徽章:跳水
日期:2012-09-26 06:44:27ITPUB 11周年纪念徽章
日期:2012-09-28 17:34:42ITPUB 11周年纪念徽章
日期:2012-10-09 18:03:32奥运会纪念徽章:击剑
日期:2012-10-12 07:20:332013年新春福章
日期:2013-02-25 14:51:242012新春纪念徽章
日期:2012-02-13 15:13:20
7#
发表于 2002-3-8 09:35 | 只看该作者

这样可以,查看某个owner所属的表使用频率

set echo off feed off ver off pages 0
spool auon.sql
select 'audit select on '||owner||'.'||object_name|| ' by access;'
from dba_objects where object_type in('VIEW','TABLE') and owner in('ZHANGBIN')
spool off
set echo on feed on ver on
用上边的代码生成audit统计命令。
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
select 表的运行时间
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
set echo off feed off ver off pages 0
spool noauon.sql
select 'noaudit select on '||owner||'.'||object_name|| ' ;'
from dba_objects where object_type in('VIEW','TABLE') and owner in('ZHANGBIN')
spool off
set echo on feed on ver on
用上边的代码关闭audit统计
2》清理统计信息。       统计信息存储与DBA_AUDIT_OBJECT,,,
                        一般只有owner和obj_name有用
create  table aud_summary(obj_name varchar2(30),owner varchar2(30),hits number);

insert into aud_summary
         select obj_name,owner,count(*) from dba_audit_object group by obj_name,owner;
3>audit太多后会导致空间变大,应该及时清除
delete * from sys.aud$;
4>分析统计信息:select *from aud_summary;

使用道具 举报

回复
论坛徽章:
92
2011新春纪念徽章
日期:2011-01-25 15:42:33咸鸭蛋
日期:2012-03-19 10:46:00版主1段
日期:2012-05-15 15:24:11奥运会纪念徽章:排球
日期:2012-08-29 07:02:50奥运会纪念徽章:跳水
日期:2012-09-26 06:44:27ITPUB 11周年纪念徽章
日期:2012-09-28 17:34:42ITPUB 11周年纪念徽章
日期:2012-10-09 18:03:32奥运会纪念徽章:击剑
日期:2012-10-12 07:20:332013年新春福章
日期:2013-02-25 14:51:242012新春纪念徽章
日期:2012-02-13 15:13:20
8#
发表于 2002-3-8 09:43 | 只看该作者

这样可以,查看某个owner所属的表使用频率

set echo off feed off ver off pages 0
spool auon.sql
select 'audit select on '||owner||'.'||object_name|| ' by access;'
from dba_objects where object_type in('VIEW','TABLE') and owner in('ZHANGBIN')
spool off
set echo on feed on ver on
用上边的代码生成audit统计命令。
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
select 表的运行时间
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
set echo off feed off ver off pages 0
spool noauon.sql
select 'noaudit select on '||owner||'.'||object_name|| ' ;'
from dba_objects where object_type in('VIEW','TABLE') and owner in('ZHANGBIN')
spool off
set echo on feed on ver on
用上边的代码关闭audit统计
2》清理统计信息。       统计信息存储与DBA_AUDIT_OBJECT,,,
                        一般只有owner和obj_name有用
create  table aud_summary(obj_name varchar2(30),owner varchar2(30),hits number);

insert into aud_summary
         select obj_name,owner,count(*) from dba_audit_object group by obj_name,owner;
3>audit太多后会导致空间变大,应该及时清除
delete * from sys.aud$;
4>分析统计信息:select *from aud_summary;

使用道具 举报

回复
论坛徽章:
15
ITPUB元老
日期:2005-02-28 12:57:002012新春纪念徽章
日期:2012-02-13 15:10:582012新春纪念徽章
日期:2012-02-13 15:10:582012新春纪念徽章
日期:2012-02-13 15:10:582012新春纪念徽章
日期:2012-02-13 15:10:58管理团队成员
日期:2011-05-07 01:45:082011新春纪念徽章
日期:2011-01-25 15:42:562011新春纪念徽章
日期:2011-01-25 15:42:332011新春纪念徽章
日期:2011-01-25 15:42:152011新春纪念徽章
日期:2011-01-25 15:41:50
9#
发表于 2002-3-8 09:54 | 只看该作者

试一下!

SELECT aud.obj_name, COUNT(*) NUM
FROM dba_audit_trail aud,all_objects obj
WHERE aud.obj_name=obj.object_name
GROUP BY aud.obj_name;

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表