当前位置:  数据库>oracle

禁用Oracle 11g的统计数据自动收集功能

    来源: 互联网  发布时间:2017-05-09

    本文导语: 数据库报错GATHER_STATS_JOB encountered errors.  Check the trace file.Errors in file /opt/Oracle/diag/rdbms/dbserver1/dbserver1/trace/dbserver1_j003_10544.trc:ORA-20011: Approximate NDV failed: ORA-01476: divisor is equal to zero 环境ORACLE 11G R2RedHat 5.3 FOR 64 BIT 解决网上给出的结...

数据库报错
GATHER_STATS_JOB encountered errors.  Check the trace file.
Errors in file /opt/Oracle/diag/rdbms/dbserver1/dbserver1/trace/dbserver1_j003_10544.trc:
ORA-20011: Approximate NDV failed: ORA-01476: divisor is equal to zero


环境
ORACLE 11G R2
RedHat 5.3 FOR 64 BIT


解决
网上给出的结论是BUG。
Bug No: 6040840
Filed 09-MAY-2007 Updated 10-MAY-2007
Product Oracle Server - Enterprise Edition Product Version  9.2.0.8
Platform. AIX5L Based Systems (64-bit) Platform. Version No Data
Database Version 9.2.0.8 Affects Platforms  Generic
Severity Severe Loss of Service Status Duplicate Bug. To Filer
Base Bug 5645718 Fixed in Product Version No Data


Problem statement:
DBMS_STATS.GATHER_TABLE_STATS FAILS WITH ORA-1476.
WORKAROUND: ----------- n/a . RELATED BUGS: ------------- Bug#5645718.


不过我的数据库版本是11G,应该不是这个BUG。
检查日志发现:
*** 2012-09-29 06:00:16.870
GATHER_STATS_JOB: GATHER_TABLE_STATS('"MIS"','"T_SALES_ORDER_ITEM"','""', ...)
ORA-20011: Approximate NDV failed: ORA-01476: divisor is equal to zero


检查T_SALES_ORDER_ITEM表发现该表select的时候也报错:
ORA-01476: divisor is equal to zero


查看表结构:
CREATE TABLE T_SALES_ORDER_ITEM
(
  ID            NUMBER(18)                    NOT NULL,
  ......
  PREPAY_RATE    NUMBER GENERATED ALWAYS AS (ROUND(TO_NUMBER(TO_CHAR("PREPAYMONEY"))*100/("PRICE"*"QUANTITY"),2))
  ......


最后 select price,quantity from T_SALES_ORDER_ITEM发现price有等于0的值!!!问题并不难解决,发现问题才是至关重要的。
修改PREPAY_RATE列,添加decode判断函数:
 PREPAY_RATE    NUMBER GENERATED ALWAYS AS (DECODE("PRICE",0,0,ROUND(TO_NUMBER(TO_CHAR("PREPAYMONEY"))*100/("PRICE"*"QUANTITY"),2)))


    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • vs2010下禁用vmware的方法以及解决vmware插件导致vs2010变慢的问题
  • 我想知道怎么在提交表单里不禁用html禁用js
  • php5中当浏览器禁用cookie时保持会话session的方法
  • jquery的attr方法禁用表单元素禁用输入内容
  • jquery控制按钮的禁用与启用 禁用右键等
  • jQuery 禁用右键菜单的简单代码
  • Linux下如何禁用某个硬件设备
  • 如何禁用声卡
  • sql server 禁用与启用触发器的语句
  • asp.net 禁用viewstate(web.config中配置)的方法
  • 可否禁用JFram的最小化('-')和最大化('口')?
  • 如何在redhat Linux9中禁用usb接口
  • squid 如何禁用过滤activeX控件
  • ubuntu11.04,无线网络已禁用,怎么启用?
  • Jquery禁用所有select标签的值的方法
  • jQuery 禁用右键菜单的简单代码 iis7站长之家
  • C# WebBrowser控件禁用超链接、右键菜单和快捷键的方法
  • jquery禁用右键示例
  • sql server 代理(已禁用代理xp)的解决方法
  • sqlserver 禁用触发器和启用触发器的语句
  • 有什么办法在linux下禁用某个接口吗?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,