增加share_pool_size,该参数是库高速缓存和数据字典的告诉缓存,该参数越大,将大大减少ORALCE进行重新分析语法的工作量和管理自身的时间。

解决方案 »

  1.   

    数据库优化的几个步骤是:1、优化设计
    2、优化应用
    3、优化内存
    4、优化I/O
    5、优化争用
    6、优化操作系统其中最有效的办法是优化应用。
    优化应用就是要保证程序中用到的SQL语句是最优的,
    查询所需的数据时访问尽量少的数据块。优化SQL语句
    可以使用Explain plan语句或SQL Trace工具。要注意通过建立索引提高访问性能。另外,如果对一个表做了大量的insert、update、delete操作,
    时间长了表段中会有大量的碎片,浪费了存储空间而且会影响
    查询的速度,所以要定期重建表和相关的索引。这可以使用
    imp和dmp工具实现。bzszp(SongZip)的方法是对内存优化,也是有效的。设置share_pool_size
    的原则是:命中率高于90%,重载率低于1%。
      

  2.   

    增加share_pool_size,该参数是库高速缓存和数据字典的告诉缓存,该参数越大,将大大减少ORALCE进行重新分析语法的工作量和管理自身的时间这个说法是不正确的
    应该是有个适当的度,关键在于程序写的好(程序不好多大都不顶用)
    这个过大反而会导致cpu使用过高,而导致性能严重下降建议先研究sql优化,然后在研究系统优化
    没有死的教条的!
      

  3.   

    最近我用动态绑定的方法解决了一个困饶公司一年的问题,
    优化后其中一个过程的时间从1个小时降为4分钟,更使我
    坚信80%的性能问题都是不良的sql引起的.
      

  4.   

    我想你要从以下几方面查看一下:
    1.表的索引建的是否合理。
    2.表的关联是否很多。
    3.sql语句是否优化。
    4.表空间设置是否合理,如:回滚表空间是否太小,临时表空间是否太小。
      

  5.   

    jlandzpa(ORA-00600) (  ) 
    兄台,有机会向你请教呀。
      

  6.   

    dyn_insert := 'insert into '||table_name||' select * from zdsc_';
    dyn_insert := dyn_insert||ps_dishi||'_'||table_name;
    dyn_insert := dyn_insert||' where rowid = chartorowid(:ps_rowid)';
    cursor_handle_insert := dbms_sql.open_cursor;
    dbms_sql.parse(cursor_handle_insert,dyn_insert,dbms_sql.v7);
    dbms_sql.bind_variable(cursor_handle_insert,'ps_rowid',ps_rowid);
    cnt_insert := dbms_sql.execute(cursor_handle_insert);
    dbms_sql.close_cursor(cursor_handle_insert);
    exception
      when dup_val_on_index then
        dbms_sql.close_cursor(cursor_handle_insert);
    ...................oracle的文档有很多例子。