我的操作系统是Windows Server 2003 SP2
电脑是2007年8月份买的 DELL1520笔记本
CPU T7100
内存 2G数据库是Oracle 11g 安装时选的企业版11g安装好后有5个服务Oracle VSS Writer Service
OracleDBConsole
OracleJobScheduler
OracleOraDb11g_home!TNSListener
OracleService服务都启动时CPU占用率在50%左右,内存占用在600-800MB之间
关闭OracleDBConsole后CPU占用率几乎为0%,内存占用在400MB左右,但数据库操作一切正常
(必须先启动OracleDBConsole在关闭才能正常操作数据库,如果OracleDBConsole始终不启动,无法连接数据库)为什么启动OracleDBConsole后即使什么都不做,CPU使用率也会那么高?有什么解决办法吗?该怎么优化?触发器问题假如我为breaker表建立触发器
create or replace trigger trg_insert
before insert
on breaker
beginend提示:
Warning: 执行完毕, 但带有警告
trigger trg_insert Compiled.
(触发器中写不写语句都会有这样的提示)再向breaker表插入数据时总是提示:触发器 'FKA.TRG_INSERT' 无效且未通过重新验证 (fka是我的用户名)
这个怎么办,我已经发愁很久了

解决方案 »

  1.   

    只要OracleServiceSID这个服务启动了,就会占用500M左右的内存,所有的oracle服务你可以改成手动,需要用的时候再去手动启动,不用就停掉触发器 'FKA.TRG_INSERT' 无效且未通过重新验证报这个错的话,还是说明触发器存在问题
      

  2.   


    begin end plsql块里不能是空语句,要有至少一句,而且end后需要一个;至于你说的性能,我的机器也是如此,dbconsole也是比较占资源的程序,我一般都是用到什么启动什么。
      

  3.   

    oracle 11g在安装的时候有个内存配置选项的, 本机安装做测试时我觉得最小内存就可以了. 或者安装完后重新设置一下初始化参数. 此外,你可以不用控制台服务,关掉服务,只要
    OracleOraDb11g_home!TNSListener 
    OracleService 
    这两个服务, 然后登陆SQL*PLUS来管理数据库,不要通过WEB控制台.这样会少用些CPU和内存.至于触发器问题,很明显你的触发器有编译语法错误,当然执行不了. 
      

  4.   

    alter system set max_sga=
    alter system set PGA_AGGREGATE_TARGET=但是11g好像有个新参数,直接控制sga+pga的总大小。你查查看。
      

  5.   


    10g的话修改sga_target参数的值,比如 alter system set sga_target=500M scope=spfile;如果设置的值小于sga_max_size的话,可以把scope改为both,直接生效。