我在.net 中原来是使用sql server数据库的,操作都很快。后来做了一下移植到oracle9i,开始的时候是用微软的oracleclient来访问oracle ,但是很快发现执行select操作时,速度奇慢。后来换成oracle公司自带的驱动程序UDP,但是经过测试还是慢。后来再用微软的oledb来访问oracle,速度比前面两种方式都快,但是同样的sql语句,在.net下用oledb和在vb下用oledb执行,发现.net下始终比vb下执行的要慢(慢10倍左右)。   不知道为什么.net 下操作oracle怎么这么慢?,如果是 .net框架自身的问题,那不是就没办法了。oracle数据库那边可以优化吗?
  

解决方案 »

  1.   

    请问你Sqlserver数据库是怎么移植到Oracle的?能说说吗?谢谢!
      

  2.   

    表是用DTS导入的,存储过程重写。
      

  3.   

    以前做程序开发的时候就喜欢用微软的oledb, 
    --但是同样的sql语句,在.net下用oledb和在vb下用oledb执行你的应用层写的是一样的吗?  如果是同一个SQL的话, 我参数一样,查询出来的记录数也相同的话, 相差该不会这么大的.
      

  4.   

    SQL完全一致。
    只是在VB里是用ado的recordset填充数据,在.net中是用ado.net的dataset填充数据,发现两者的速度相差很大。后来我怀疑是dataset(adapter.fill()方法)的问题,就尝试先用datareader读出数据,然后逐条往dataset里的表中增加数据,但发现速度还是很慢。
      

  5.   

    试试看使用odp.net的associative array加上stored procedure