我没有一定要选择哪一个的要求啊,我只是想对各种存取方法的效率有个比较,就象AMD vs Intel,3dfx vs Nviva,不是最后都要通过产品的评测数据体现它的实际效果吗?

解决方案 »

  1.   

    为什么说毫无意义?如果我开发的时候并不是只有一种数据库可用,那么肯定有一个选择的问题.比方说如果正在搞一个桌面程序,就有几种可能的选择:如果用Delphi或者C++Builder,那么就是BDE,而BDE的本地数据库也有DBF和Paradox可以选择,如果用VC或者VB,那么可以用MDB,而存取MDB也可以用ODBC,或者DAO,或者OLEDB.在这种情况下自然想知道哪种方法更高效,对不对?虽然我也知道数据库的性能比较并不是2>1那么简单,但是并不是说就不能比较啊.
      

  2.   

    我个人认为,无论使用哪一种方法,其性能都差不多。而最为关键的在于这种方法前景如何,换句话说,学它有没有价值,比如用VB吧,其实,你可以使用ODBC,或DB_lib(VBSQL),而后者其访问速度更快。但,你一定会选用后者吗?不一定,因为M$已经公开表示,它的SQL server将不支持该技术了。 至于DAO,oledb及ADO,不过是在ODBC API上又加了一些东西而已。其性能差别不大。而对于桌面数据库,我只推荐access,别的过时了。所以,你即使用dephi,最好也用ADO吧。BDE,我压根就没打算学或用。
    呵呵,其实dephi最好用的版本是3.0,BUG最小,文档也最全。而4.0出来以后,大家都评论比3。0差多了(稳定性差,文档也不全),5。0出来以后,就没人提了。加入了太多的东西,有点消化不灵了。
      

  3.   

    yangzi兄,看得出来你对MS的东西是有偏爱的.我不想说MS和其他厂商的是是非非,我也承认MS的东西确实有很多是不错的,但是我总是希望不要让Microsoft一统天下,有竞争才有进步,对于具体的技术而言,即使你说的ADO是最先进的,我也并不打算跟着MS一条道走到黑.当然我也要学MS的技术,同时我也渴望学习其他的东西,你说不打算学BDE,从我学BDE的经验来说,BDE并不能算特别优秀,我也很少用它来作实际的应用,但是BDE也有一些很优秀的思想,在MS的产品中是找不到的!
    另外你说无论哪一种方法性能都差不多,我并不赞同.就比如说ODBC和OLEDB,它们从指导思想到具体实现都有非常大的差别,你能说OLEDB只是在ODBC上面又加了一些东西吗?两个不同时代的方法,它们的性能会差不多吗?那么开发OLEDB又有何意义?
    或许我有点偏执,但是我觉得讨论数据库的性能决不会是没有意义的.就象在用户的角度来看,VC,BCB和Delphi甚至VB写的程序效率差别并不很明显,然而从程序员的角度来说,虽然个人爱好和实际需求是选择开发工具的最终决定因素,但是讨论这些开发工具的效率问题也不是毫无意义的啊.
      

  4.   

    在调用数据库的方法上面,每种方法的确有许多速度和方便上的差异。
    我们公司在新版本的医院管理系统开发的时候,我也是伤透了脑筋,也想选用好的访问途径,提高
    旧版本让我们头疼的速度问题。后来我们选用了PB +SQLSERVER ,并非是表明这样搭配好,其实我还是想用DEPHI 。我觉得连接速度以及访问速度的一点差异,在多用户特别是三十用户以上后,重要性不在这里了,而是你的程序设计思路上面了。  我们在新版本软件里,把大量的代码放在服务器上面,客户端只是浏览,录入。很少有大量的数据在客户端分析,比如;PB的一个缺陷:做交叉报表的时候要把所有满足条件的记录下载到客户端来分析,处理一个60万记录的数据集的报表,需要十几分钟,而我们在服务器端处理好后,在客户端显示,那么只需要十几秒,这是一个什么差距呢。
     还有就是对业务的熟悉程度,这个业务不是说开发工具,是指你要开发的软件的内容,那样,你的程序才有优化,提高速度的可能。 数据库的设计规划的重要性就更不提了。 所以我认为数据库引擎的速度快慢可以作为考虑,重点应考虑程序工具的考虑,我觉得PB在作界面方面太差,作到良好的计算机操作友好性也太差,不过快速开发到是可以(写类方面很友好,我写了几个类,开发界面的速度很快),可以作为软件的原始
    模型开发工具,DEPHI,VB作为工作端开发工具,VC++写类。
      

  5.   

    最快的是各数据库自带的专用接口,如informix的CLI
      

  6.   

    yk_001:你好,麻烦你能说一下你是如何实现交叉报表的,这个问题已经困扰我多时了
    我的mail:[email protected]
      

  7.   

    唉,为什么就没有人正面回答我的问题呢?我绝对同意开发效率和环境因素比数据库本身的效率更重要,我的问题也不是要费心去选哪一个数据库,事实上我绝大部分时间用的就是ACCESS数据库.但是从技术的角度来讲,我还是关心数据库的效率问题,虽然它不会对我选择哪一个数据库产生决定影响.各位如果不关心这个问题,我没有意见,但是我不希望离题太远哦.
      

  8.   

    呵呵,我知道你的意思,但数据库的调用效率不是一个绝对的问题。它与调用的语言有密切关系。比如同样是odbc,用VC写的程序访问数据可能就比VB写的程序调用速度快,你同意吗?
      

  9.   

    我不知道有没有确实的数据,不过我觉得如果是ACCESS用DAO就可以了,其他的数据库访问方式
    确实没有这个直接.
    如果你用VB或ACCESS开发ACCESS数据库当然最好,毕竟是一家公司的产品呀.
    不过如果你的产品是网络的,你可能就要考虑一下了,如果还是DAO访问,那就是文件系统了.
    你可以根据网络的形态来确定使用什么样的访问方式,RDO 还是 ADO