100万条不算大啊,关键是看什么样的查询,有无表与表的关联等等。
如果是一张单独的表,
select * from tablename where id=1之类的语句,
那么不做任何配置就能达到你的要求。但是如果有表与表之间的关联,有跨表查询等,就要具体问题具体分析了。

解决方案 »

  1.   

    100万条数据是不大,除了记录数,还有一个重要指标就是平均行大小,
    是多少?
    如果想要达到好的性能,又没有表关联的情况下。200ms是没有问题的。
    要注意以下情况。
    一、合理的索引
    二、表分析
    三、比较大的data buffer。
      

  2.   

    我们的数据库也差不多的要求,不过一直没有达标,这一年多一直在寻找方法,不过可以肯定的是
    1 经常修改和查询的表不要放大的字符类型,数字修改和查询消耗时间短的多
    2 data buffer大一点
    3 索引对where查询非常重要。
      

  3.   

    我想要视具体情况,在硬件性能满足情况下(配置不算太低,主流机型)
    1.Oracle的SGA设置2.SQL语句的优化3.合理索引
      

  4.   

    对ORACLE来讲,100万条的记录实在不是什么问题,关键还是建库的合理性。楼上几位说的都不错,我的经验是:
    1、索引不能太多,要有一个限定的值(ORACLE性能管理的书上可能有说明)
    2、尽量不要有关联
    3、少一些触发器(尤其是UPDATE)
      

  5.   

    if you can use cluster table and index , the speed will be up
      

  6.   

    其实楼上已经说的很好了,几点建议:
    1 优化SGA
      增大data buffer的大小,提高命中率,以增加查询响应速度2 若表的修改不是很频繁,或相对静态时增加索引 
      考虑对选择度底的几个字段增加位图索引,尤其是where后面的字段;
      为充分利用索引,在对索引字段操作时不加函数,如substr等,避免索引失效3 若表修改较频繁,加索引时,会导致update等操作延时、产生索引碎片等  
      这种情况下,需要考虑数据的顺序存放问题,使用全表扫描4 若表的size过大,可以考虑使用分区表
      

  7.   

    使用OCI或者Pro*C/C++进行访问
    我做过测试,速度很快
    我更倾向于用OCI,支持面向对象
      

  8.   

    不过使用mmdb比oracle性能更好 :)
      

  9.   

    性能的问题很复杂的。
    如果操作系统或者硬件很差的话,ORACLE怎么调也是效果不明显。ORACLE本身的调优是主要包括内存和外存两部分内存主要是调整初始化参数
    外存主要是减少I/O
      

  10.   

    这样的量oracle实现起来不难,关键的因素只有一个:你的硬件配置。
      

  11.   

    最主要的是sql语句要优化好,建立好表的索引,也可以建立物化视图。
      

  12.   

    如果有条件,将数据文件,控制文件,日至文件等各系统文件分放在不同的物理硬盘(不是逻辑分区)上,这样的效果也能提高很多,当然SGA等系统参数也要优化配置
      

  13.   

    如果在unix平台上,建议用裸盘。在大数据量重负载的情况下,可以将i/o性能提高很多.
      

  14.   

    我想说的是既然你做的是企业解决方案,那么你就必须首先考虑你的整体环境问题,多个单独运行最快的单元组合在一起并不一定是最快和效率最高的。在ORACLE数据库系统调优的问题上ORACLE也是主张首先调整数据库系统运行的系统环境以最大程度的有利于ORACLE数据库系统的运行,还有一个很重要的就是最初硬件服务器的因素,这些每个都是单独的一个很重要的问题,需要DBA、OCP、SA等人集体解决。在数据库系统设计的时候要考虑建表的问题,表结构的合理程度能够使表连接降低到最小的程度,及时响应程序;程序脚本的编写也很重要,软件开发人员在编写SQL和PL/SQL脚本的时候要注意优化,对于ORACLE数据库那两种优化策略要理解清楚。
      

  15.   

    建议查oracle性能优化的文档,查完以后大家再讨论比较好。
      

  16.   

    影响数据库性能的最重要的因素是逻辑设计,可以设计两张完全相同的表(仅表名不同),一张表用于实时,这张表数据量一定要小,比如仅保持一天的数据,另外一张表保存历史数据设一个数据库任务每天把新数据写到历史表里,同时创建一个view union all以供数据查询、更新等。
      

  17.   

    to javanew(我是java新手):兄弟我孤陋寡闻,MMDB是什么东东?哪个公司有产品?to All:
    多谢大家指教,获益非浅。^_^
      

  18.   

    千万不要忘记db_block_size,把它设为至少8k,16k更好,这样你的数据库的操作效率会大大提高,50倍?我的情况是这样的:)
      

  19.   

    问题太大了点,你的要求涉及到了几乎performance tunning的所有部分。你可以从硬件、初始参数、sql语句(可以考虑用除了rule以外的解释计划,9i可以做函数的index等等)。其中SQL的调整是最重要的和最现实的。
      

  20.   

    100万条的记录不是多大啊,关键还是建库的合理性。
    经验
    1、合理使用索引
    2、调整SGA
    3、扩大会回滚段
      

  21.   

    前面说的都对,但我还想说:对ORACLE100万记录不大,但服务器也很重要.操作复杂用存储过程能提高效率
      

  22.   

    大家对oracle说的很多,提醒一下:
    其实在性能调整的时候,优先考虑的是你的应用的结构,以及你具体的sql语句的合理性,不要忘记这一点。
      

  23.   

    XML?
    难道偶的眼睛花了?????????
    特大型数据集您打算用XML处理?????????????????
      

  24.   

    100万条的记录大惊小怪的,想必是小鸟!
    关键还是建库的合理性,
    分别建:
    SYSTEM、INDEX、USERS、ROLLBACK、TEMP、
    SYNONYM、BACKUP 
    TABLESPACE经验:
    1、合理使用索引
    2、调整SGA
    3、扩大会回滚段
    4、db_block_size,把它设为至少8k,16k更好,这样你的数据库的操作效率会大大提高。
    5、尽量用索引查询
    6、内存开大点(按G算)
    7、机器性能主流配置
    8、换8i
    9、采用硬盘阵列
    10、增加TABLE的INCREA PCT以上是对付1亿条以上数据的记录的,你只需参考几项。--N年的OARCLE DBA,目前失业中。
      

  25.   

    安装oracle的服务器 一定要只做数据库服务
    不要再做其他服务器 不然其性能大大降低
    我就遇到过  更改和查询 对索引的要求正好相反 注意取舍
    查询最慢的就是表的连接 和 排序解决连接问题可以合并表 增加冗余数据  换句话说 以浪费存储空间来提高性能
    排序问题  有时适当的可以提到前端排序我处理过一个表 记录是近 1 千万条  就是从这几方面入手
      

  26.   

    想查询性能好,还不如MySQL呢,100万条记录是吗?
    在我这台不算太好的PC上用:
    SELECT * FROM USER WHERE ID=123456;
    平均只要30ms左右。
      

  27.   

    赞同以上各位意见 我也发表个人的一点看法:
      
    主要是 尽量覆盖索引查询,避免使用?Hash和多表关联的数据操作,问题焦点还是在SQL查询数据在Cache中的命中率,要提高他 就会大大的提升效率,方法很多,将Size增大等等, 还有就是事务提交的方式或频率进行必要修改,在能保证系统不CoreDown的安全时限的临界点处 提交事务(主要是你所提及的修改操作) 这样数据库物理I/O 就会节约很大时间碎片了!
    谢谢!!
      

  28.   

    不经常update,insert分析数据表,建立分区