7

一部のデータベースは R (MySQL など) でネイティブにサポートされていますが、RODBC を使用して MS SQL Server などの他の DB に接続できることは理解しています。ネイティブ ドライバーと RODBC を使用した場合、読み取り/書き込みの速度はどの程度向上しますか? R のネイティブ ドライバーを備えている他の DB はありますか? 一般的に、読むことは書くことよりも速いですか、それとも遅いですか?

4

2 に答える 2

2

特に SQL Server に興味がある場合、以下のリファレンスは少し古くなっていますが、おそらくまだ有効であると思います。

Microsoft SQL Server での ODBC の使用

ネイティブ API としての ODBC のパフォーマンス

ODBC に関する根強いうわさの 1 つは、ODBC はネイティブの DBMS API より本質的に遅いというものです。この推論は、アプリケーションからの ODBC ステートメントをネイティブ DBMS API 関数と SQL 構文に変換して、ODBC ドライバーをネイティブ DBMS API 上の追加レイヤーとして実装する必要があるという前提に基づいています。この変換作業により、アプリケーションがネイティブ 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 ベースの SQL Server アプリケーションと DB-Library ベースの SQL Server アプリケーションのパフォーマンスはほぼ同等であることが示されています。

于 2010-01-12T03:27:25.347 に答える
1
  • これは経験的な質問ですが、興味のある組み合わせについて測定してみませんか?
  • 公開コードは隠されていないので、CRANが持っている他のDBインターフェースを数えてみませんか?DBIだけでも、SQLite、MySQL、Postgresql、Oracleがあります。カスタムdbバックエンドには、Vhayuのようなものがあります。
  • 専門のフォーラムがありますので、r-sig-dbで聞いてみませんか?
  • 最後に、APIがあり、必要になるとすぐに、人々は2つを組み合わせる傾向があります。私は2つの異なる(作業中の、したがってリリースされていない)パッケージを2つの高度に専門化された高速バックエンドに書き込みました。
于 2009-07-23T13:24:46.257 に答える