本机与ODBC数据库连接

JD *_*ong 6 database odbc r

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

Bob*_*ght 5

如果您对 SQL Server 特别感兴趣,下面的参考资料有点过时,但我想它可能仍然适用。

\n

将 ODBC 与 Microsoft SQL Server 结合使用

\n
\n

ODBC 作为本机 API 的性能

\n

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

\n

Microsoft SQL Server ODBC 驱动程序是 DB-Library 的功能替代品。SQL Server ODBC 驱动程序与底层 Net-Libraries 的工作方式与 DB-Library DLL 完全相同。Microsoft SQL Server ODBC 驱动程序不依赖于 DB-Library DLL,即使客户端上不存在 DB-Library,该驱动程序也能正常运行。

\n

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

\n
\n


Dir*_*tel 2

  • 这是一个经验问题,那么为什么不针对您感兴趣的组合来衡量它呢?
  • 公共代码并没有被隐藏,所以为什么不统计一下 CRAN 还有哪些其他 DB 接口呢?仅就 DBI 而言,我们有 SQLite、MySQL、Postgresql、Oracle;对于自定义数据库后端,有 Vhayu 之类的东西。
  • 存在专门的论坛,所以为什么不在 r-sig-db 上提问呢?
  • 最后,一旦有 API 和需求,人们就会倾向于将两者结合起来。我已经为两个高度专业化且快速的后端编写了两个不同的(工作中的,因此未发布的)包。