2009-07-23 80 views
6

據我所知,一些數據庫在R(如MySQL的)的原生支持,但你可以連接到使用其他RODBC像DB的MS SQL服務器。與本地驅動程序相比RODBC讀取/寫入的速度提高多少?還有哪些數據庫在R中有本地驅動程序?閱讀速度比寫作速度還是慢一些?本土VS ODBC數據庫連接

回答

1
  • 這是一個經驗問題,那麼爲什麼不測量它對你感興趣的組合呢?
  • 公共代碼不被隱藏的,所以你爲什麼不指望什麼其他DB接口CRAN了?對於單獨的DBI,我們有SQLite,MySQL,Postgresql,Oracle;對於自定義數據庫後端,有像Vhayu這樣的東西。
  • 專門論壇的存在,所以你爲什麼不問在R-SIG-DB?
  • 最後,只要有一個API和需要人們傾向於結合這兩者。我已經寫了兩個不同的(在工作,因此未發行)包到兩個高度專業化和快速的後端。
+0

好點的經驗問題,但我無法測試他們所有。如果其他人有切換數據庫引擎的經驗和證據,我會切換。 – 2009-07-23 19:21:56

+0

您可以選擇將本機與ODBC進行比較(比如說,使用MySQL或PostgreSQL;而不是MS SQL,只能使用ODBC)。因此,模擬你之後的測試用例的類型並查看它的行爲。 – 2009-07-23 19:35:36

2

如果您對SQL Server特別感興趣,下面的引用有點過時,但我想它可能仍然成立。

Using ODBC with Microsoft SQL Server

ODBC的性能作爲原生API

一個有關ODBC的傳言之一是,它本質上是比原來的DBMS API慢。這個推理是基於這樣的假設:必須將ODBC驅動程序作爲本地DBMS API的額外層實現,將來自應用程序的ODBC語句轉換爲本地DBMS API函數和SQL語法。與直接向本地API調用應用程序相比,此翻譯工作增加了額外處理。對於通過本地DBMS API實現的某些ODBC驅動程序,這種假設是正確的,但Microsoft SQL Server ODBC驅動程序不是以這種方式實現的。

微軟SQL Server ODBC驅動程序是一個功能替代的DB-Library的。 SQL Server ODBC驅動程序與底層網絡庫的工作方式與DB-Library DLL完全相同。 Microsoft SQL Server ODBC驅動程序不依賴DB-Library DLL,如果DB-Library甚至不存在於客戶端上,則驅動程序將正常運行。

微軟的測試已經表明,基於ODBC和基於數據庫的庫SQL Server應用程序的性能基本相當。

相關問題