这个问题源自于我的项目
项目具体内容就不说了主要是做数据分析处理方面的 
其中主要逻辑为导入TXT文件到数据库的某临时物理表 对数据进行处理后插入到主表中。
我们JAVA组开发人员给出的清单性能时间为
130W条单头数据+290W条单身数据存在于TXT中
工作:解析TXT文件+导入ORACLE数据库(环境为LINUX,JAVA+ORACLE)
耗时:
130W单头解析+导入数据库最终所耗时间为3分46秒(取AVG)TXT文件大小127MB
290W单身解析+导入数据库最终所耗时间为12分钟左右(取AVG) 单身文件列数多,数据量较大897MB
数据处理:调用存储过程处理 所耗时间1小时20分钟左右(并且经常报错,No more data to read from socket)GOOGLE BAIDU ORACLE论坛看遍了 没解决这个问题....我用C#+MS-SQL还原了以上2种表 以及数据解析程序和导入程序
自己亲身测试还原以上所有功能 所耗时间统计
130W条单头数据+290W条单身数据存在于TXT中
工作:解析TXT文件+导入ORACLE数据库(环境为Windwos,C#+MS-SQL)
耗时:
130W单头解析+导入数据库最终所耗时间为41秒(取AVG)TXT文件大小127MB
290W单身解析+导入数据库最终所耗时间为3分22秒 单身文件列数多,数据量较大897MB
数据处理:业务太复杂 不想写MS-SQL做业务了 为了给大家直观的看下数据处理的效率 我用MS-SQL的manager studio和PL-SQL工具 进行了一个非常简单的查询
查询语句如下
MS-SQL 脚本
SELECT TOP 12 * FROM 
(
SELECT *,COUNT(td.IPCard) OVER (PARTITION BY td.IPCard) AS CountIPCard FROM tmp_Datas td
) AS Query1 ORDER BY Query1.CountIPCard DESCORACLE脚本(注意这里的*在我的IDE PL/SQL Developer中直接执行 是只看12条数据的意思!!查看所有条需要点查询框上面的显示所有数据的按钮,用过的人都知道 我就不拿出来现了)
SELECT * FROM
(
SELECT tph.*,COUNT(tph.policy_holder_id) OVER (PARTITION BY tph.policy_holder_id) AS CountIPCard FROM temp_policy_holder tph
) Act ORDER BY Act.countipcard DESC以上2个一模一样的查询(2表都没建索引)时间分别为
MS-SQL: 22.943
ORACLE:29.156
差了7秒啊 大哥
以上都用数据说话!
难道ORACLE很强大 而是我不会用????

解决方案 »

  1.   

    持保留意见。
    不一定是oracle的问题
      

  2.   

    一个是JAVA+ORACLE,一个是C#+MS-SQL,这个好像不能说明问题吧
      

  3.   

    顺便再说一句
    各自用的环境是不一样的 
    ORACLE+JAVA的环境在一起 配置为8核心+16GB内存
    我MS-SQL+C#的环境也是在一起 配置为2核心+1GB内存
    谢谢大家看完 下班先闪了 回家继续看
      

  4.   

    看最后一个测试
    oracle 和MS-SQL 的over partition by 语句是一模一样的 性能差7秒 130W数据量
      

  5.   

    嗯用几种不同的数据量测试下,比如ms-sql的,数据量极大时就会慢下来
      

  6.   

    130W数据量不算大,oracle适合进行海量数据查询,130W的测试数据是在将ms-sql的优势发挥了,而oracle则没能发挥
      

  7.   

    恩~ 其实我想说的就是
    JAVA以前是SUN的 和ORACLE不是一家公司的东西 做数据解析+导入数据到ORACLE中的效率远远不及 是一家公司(提供了很好的支持)C#解析数据导入到MS-SQL中。
    至于后面的查询 我是觉得不是很直观 100W ORACLE缺失输的很丢脸 希望明天ORACLE能雄起下 见证奇迹明天继续~~~
      

  8.   

     ORACLE的版本是?有尝试在最新版本下的 数据 观察吗|? 数据说话是为了事实来证明,这是最关键的,当然要在客观的基础上。是不是我们忽略了什么|?
      

  9.   

    才130W啊    你搞了3亿试试...  Oracle 性能如果安装你这么说的话。  还会有市场吗?脑子反向思维下。别自己一根筋..
      

  10.   

    恩 谢谢大家的关注 准备结贴了~ 
    总结一下:
    1.做数据处理,特别是想今后想向数据处理这个方向发展的同志们千万要记住,凡事要以数据说话。要从实际出发考虑问题 不要想当然的一定就认为ORACLE的性能各个方面是所有数据库性能中最好的,我带着这样的怀疑才做这样的测试,当然确实有点标题党的意思,其实为了不是争论哪个数据库好,而是为了更多的了解我们所使用的工具
    2.出于个人的偏见,以及部分对数据库日常的经验积累来看,ORACLE的市场卖点恰恰不是它的性能,而是ORACLE的安全策略,也就是它的安全性,130W数量级输给MS-SQL 输了也就输了 毕竟二者在解释OVER Partition BY 以及编写日志的策略 包括实现分组的策略各有不同。所以必然产生性能上的差别。
    3.开玩笑说一句 回复二楼的同志~,鄙视ORACLE版的人气,和这版没法比- -#...