本机与ODBC数据库连接

时间:2009-07-23 02:48:01

标签: database r odbc

据我所知,某些数据库在R(例如MySQL)中具有本机支持,但您可以使用RODBC连接到其他数据库,如MS SQL Server。使用本机驱动程序与RODBC进行读/写操作可以提高多少速度? R中有哪些其他DB有本机驱动程序?阅读速度是否比一般写作更快或更慢?

2 个答案:

答案 0 :(得分:2)

如果您对SQL Server特别感兴趣,下面的参考文章有点过时,但我想它可能仍然存在。

Using ODBC with Microsoft SQL Server

  

ODBC作为Native API的性能

     

关于ODBC的一直谣言是它本身比原生DBMS API慢。这种推理基于以下假设:必须将ODBC驱动程序实现为本机DBMS API上的额外层,将来自应用程序的ODBC语句转换为本机DBMS API函数和SQL语法。与将应用程序直接调用到本机API相比,此转换工作增加了额外的处理。对于通过本机DBMS API实现的某些ODBC驱动程序,这种假设是正确的,但Microsoft SQL Server ODBC驱动程序不是以这种方式实现的。

     

Microsoft SQL Server ODBC驱动程序是DB-Library的功能替代品。 SQL Server ODBC驱动程序以与DB-Library DLL完全相同的方式使用底层Net-Libraries。 Microsoft SQL Server ODBC驱动程序不依赖于DB-Library DLL,如果客户端上没有DB-Library,驱动程序将正常运行。

     

Microsoft的测试表明,基于ODBC和基于DB-Library的SQL Server应用程序的性能大致相等。

答案 1 :(得分:1)

  • 这是一个经验问题,那么为什么不为你感兴趣的组合测量呢?
  • 公共代码没有隐藏,那你为什么不算一下CRAN的其他数据库接口呢?仅对于DBI,我们有SQLite,MySQL,Postgresql,Oracle;对于自定义数据库后端,有像Vhayu这样的东西。
  • 存在专业论坛,为什么不问r-sig-db?
  • 最后,只要有API并且需要人们倾向于将两者结合起来。我已经为两个高度专业化和快速后端编写了两个不同的(工作中未发布的)软件包。