7

我了解某些数据库在 R 中具有本机支持(例如 MySQL),但您可以使用 RODBC 连接到其他数据库,例如 MS SQL Server。使用本机驱动程序与 RODBC 相比,读取/写入的速度提高了多少?还有哪些其他数据库在 R 中有本机驱动程序?阅读通常比写作快还是慢?

4

2 回答 2

2

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

将 ODBC 与 Microsoft SQL Server 一起使用

ODBC 作为本机 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 完全相同的方式与基础网络库一起工作。Microsoft SQL Server ODBC 驱动程序不依赖于 DB-Library DLL,如果客户端上甚至不存在 DB-Library,驱动程序将正常运行。

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

于 2010-01-12T03:27:25.347 回答
1
  • 这是一个经验问题,那么为什么不针对您感兴趣的组合来衡量它呢?
  • 公共代码没有隐藏,那么你为什么不计算 CRAN 有哪些其他 DB 接口呢?对于 DBI,我们有 SQLite、MySQL、Postgresql、Oracle;对于自定义数据库后端,有 Vhayu 之类的东西。
  • 有专门的论坛,那你为什么不在 r-sig-db 上问呢?
  • 最后,一旦有了 API 和需求,人们就会倾向于将两者结合起来。我已经为两个高度专业化和快速的后端编写了两个不同的(在工作中,因此未发布)包。
于 2009-07-23T13:24:46.257 回答