您当前的位置: 首页 > 数据库教程 > Oracle教程 > 如何找出引起ORA-1652的SQL

如何找出引起ORA-1652的SQL

作者:不详 来源:网络 发布时间: 2014-09-01 11:37 点击:
Wed Aug 20 17:16:37 2008 ORA-1652: unable to extend temp segment by 128 in tablespace DBA_TEMP 要解决这个问题,我们首先要导致这个问题的SQL,可能方法有几种: 1、设置events alter system set events '1652 trace name errorstack level 1'; 这种方法有一定局

如何找出引起ORA-1652的SQL

  Wed Aug 20 17:16:37 2008

  ORA-1652: unable to extend temp segment by 128 in tablespace DBA_TEMP

  要解决这个问题,我们首先要导致这个问题的SQL,可能方法有几种:

  1、设置events

  alter system set events '1652 trace name errorstack level 1';

  这种方法有一定局限:

  1)它不能获取已发生的1652的错误信息,只能对以后出现1652错误时生成一个trace文件;

  2)用events,不清楚会对数据库有什么不好的影响。

  2、查询V$SQL视图:

  如select * from v$sql order by direct_writes/executions desc;

  这种方法的局限性是:

  1)因为很难知道V$SQL视图中的SQL执行时间,难以确认具体是那个SQL导致错误的

  2)引起问题的SQL极有可能已经被age out了

  3、 生成错误发生时的awr、statspack报表,从报表中的SQL ordered by Reads部分找出SQL

  这种方法更不可靠,因为:

  1) SQL ordered by Reads读写的不一定是临时表空间

  2) awr/statspack报表是根据物理读的总量排序的,如果导致问题的SQL执行次数少,那也是不会出现在这些报表中的。

  4、查询awr相关视图

  对于10G来说,这种方法是最可行、最准确的。

  SELECT DISTINCT TO_CHAR(SUBSTR(b.sql_text,1,4000))

  FROM sys.WRH$_SQLTEXT b

  WHERE b.sql_id IN

  (SELECT sql_id

  FROM

  (SELECT a.sql_id

  FROM sys.WRH$_SQLSTAT a

  WHERE a.parsing_schema_name NOT IN ('SYS')

  AND a.executions_total >0

  AND a.direct_writes_total >0

  AND a.SNAP_ID IN

  (SELECT SNAP_ID

  FROM sys.WRM$_SNAPSHOT

  WHERE to_date('2008:08:20 17:20:08','yyyy:mm:dd hh24:mi:ss') BETWEEN begin_interval_time AND end_interval_time

  )

  ORDER BY a.direct_writes_total/ a.executions_total DESC

  )

  WHERE rownum<=10

  );

  基本上,结果中的第一句只要不是insert /*+ append */之类的语句,那么它就极有可能是导致ORA-1652的SQL。

  如果是9i,用statspack,也可以用类似的SQL从statspack视图查到需要的结果。
分享到:
本文"如何找出引起ORA-1652的SQL"由远航站长收集整理而来,仅供大家学习与参考使用。更多网站制作教程尽在远航站长站。
顶一下
(0)
0%
踩一下
(0)
0%
[点击 次] [返回上一页] [打印]
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
关于本站 - 联系我们 - 网站声明 - 友情连接- 网站地图 - 站点地图 - 返回顶部
Copyright © 2007-2013 www.yhzhan.com(远航站长). All Rights Reserved .
远航站长:为中小站长提供最佳的学习与交流平台,提供网页制作与网站编程等各类网站制作教程.
官方QQ:445490277 网站群:26680406 网站备案号:豫ICP备07500620号-4