Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2931934
  • 博文数量: 639
  • 博客积分: 1860
  • 博客等级: 上尉
  • 技术积分: 6965
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-07 08:51
个人简介

偶尔有空上来看看

文章分类

全部博文(639)

文章存档

2022年(133)

2021年(238)

2020年(115)

2019年(11)

2018年(9)

2017年(9)

2016年(17)

2015年(7)

2014年(4)

2013年(1)

2012年(11)

2011年(27)

2010年(35)

2009年(11)

2008年(11)

分类: Oracle

2022-11-12 18:19:14

开心时刻

一个传说中的库特别慢
看了看等待,发现Failed Logon Delay事件居前
其实不重要,非要查个明白的话,那就
  1. SELECT username, to_char(timestamp,'mm-dd hh24:mi:ss') datetime, action_name, priv_used, obj_name, ses_actions
  2. FROM sys.dba_audit_trail
  3. WHERE timestamp>sysdate-1AND action_name = 'LOGON'
  4. ORDER BY username;


  5. SELECT audit_type,
  6.          os_username,
  7.          userhost,
  8.          terminal,
  9.          dbusername,
  10.          dbproxy_username,
  11.          client_program_name,
  12.          to_char(event_timestamp,
  13.         'mm-dd hh24:mi:ss') datetime, action_name, return_code, unified_audit_policies
  14. FROM unified_audit_trail
  15. WHERE event_timestamp>sysdate-1
  16.         AND action_name = 'LOGON'
  17.         AND return_code is NOT null
  18. ORDER BY dbusername;
或者
  1. col ntimestamp# for a30 heading "Timestamp"
  2. col userid for a6 heading "Username"
  3. col userhost for a15 heading "Machine"
  4. col spare1 for a10 heading "OS User"
  5. col comment$text for a80 heading "Details"

  6. select ntimestamp#, userid, userhost, spare1, comment$text,returncode 
  7. from sys.aud$ where returncode=1017 or returncode=28000;
如果关闭审计,那么就不会看到真凶,解决办法可以直接设置初始化参数:
  1. event="28401 trace name context forever, level 1" # disable logon delay.
前戏结束(详见 Doc ID 2724913.1)

收集统计信息技巧
如果因为某种原因(报错、提高效率。。。)收集全库(用户)统计信息时排除掉其他用户的表,可以这样:
  1. EXECUTE DBMS_STATS.LOCK_TABLE_STATS ('owner name', 'table name');
  2. EXEC DBMS_STATS.gather_database_stats;
  3. EXECUTE DBMS_STATS.UNLOCK_TABLE_STATS ('owner name', 'table name');
正题来了,收集方法如下:

  1. exec dbms_stats.gather_database_stats(estimate_percent => 20, degree => 32, cascade => TRUE, gather_sys=> FALSE);

对参数不了解可以
  1. select dbms_stats.get_prefs('CASCADE') pref_cascade from dual;
  2. select dbms_stats.get_prefs('estimate_percent') pref_cascade from dual;



随着产品成熟,后期会倾向于越来越简单
exec dbms_stats.gather_database_stats 即可

深入一下:默认采样百分比多少,我这可是4T大库,要等多久?
终于可以引用这个:It depends on

先说明百分比,这个比较清晰:



  1. https://blogs.oracle.com/optimizer/post/how-does-auto-sample-size-work-in-oracle-database-12c