web-dev-qa-db-ja.com

ODBCドライバーのドライバーの違い

Windows 10 64ビットプロを使用して、SQL Server 2016のデータベースにシステムDSN(64ビット)をセットアップしていました。データソースをセットアップするドライバーを選択するように求められましたが、次の選択肢があります。

  • SQL Server用のODBCドライバー13
  • SQLサーバー
  • SQL Server Native Client 11.0
  • SQL ServerネイティブクライアントRDA 11.0

これらすべてのドライバーでデータソースをセットアップできるように思えました。次に、速度と効率の面でどちらを選択する必要がありますか?それらの違いは何ですか?

おかげで、

ジェイソン

23
Jason

SQL Server用のODBCドライバー

ODBCは、C、C++、PHP、Pythonなど、SQL Serverに接続するためのその他のもので作成されたアプリケーション用の主要なネイティブデータアクセスAPIです。

データ統合シナリオで広く使用されています。

また、Windows上でアプリケーションを開発し、Linuxに展開する場合にも推奨されます。

SQL Server

SQL ServerドライバーのフルネームはSQL Server ODBC Driverです。SQL2000以降の古いドライバーです。これを使用してSQL Server 2016に接続できますが、新しいサーバーにアクセスすることはできません。 SQL Server 2016の機能

SQL Server Native Client

SQL Server Native Clientには、SQL OLE DBプロバイダーとSQL ODBCドライバーの両方が含まれ、SQL Serverへのネイティブ接続をサポートし、SQL Server 2016のすべての機能をサポートします。 Windows環境で最高です

SQL Server Native Client RDA

Microsoft SQL Server Compact 3.5のリモートデータアクセス(RDA)により、アプリケーションはリモートSQL Serverデータベーステーブルのデータにアクセスできます。

また、SQL Server Compact 3.5でそのデータを保存、読み取り、更新してから、元のSQL Serverテーブルを更新することもできます。

RDAは将来のリリースで削除されるため、使用しないでください。

したがって、上記の基準に基づいてSQLドライバーを選択します。

30
M.Hassan

Microsoft ODBC SQL Server用ドライバー (MSODBCSQL)

このドライバーは、SQL Server Native Clientの後継として 2013年に発表 でした。最新のSQL Serverバージョン(2016および2017で13)と共にインストールされます。 スタンドアロンインストーラー もあります。 Microsoft SQL Serverのドライバー履歴 ODBC用の「SQL Server」および「SQL Server Native Client」よりもこのドライバーを優先することをお勧めします。 「SQL Server Native Client」に追加された機能:ドライバー対応の接続プーリング、接続の復元力、および非同期実行(ポーリング)。 Microsoft ODBC SQL Server Teamブログのドライバー で現在の開発をフォローできます。

Driver={ODBC Driver XX for SQL Server}(インストール済みバージョンの場合はXXシステム要件、インストール、およびドライバーファイル を参照してください。)

SQL Server Native Client (SQLNCLI)

SQL Server 2005で導入され、SQL Serverに同梱されています(また sqlncli.msi from SQL Server機能パック )。 「SQL Server」に追加された機能:複数のアクティブな結果セット(MARS)、ユーザー定義データ型(UDT)、クエリ通知、スナップショット分離、およびXMLデータ型のサポート。

Driver={SQL Server Native Client}(SQL Server 2005)
Driver={SQL Server Native Client 10.0}(SQL Server 2008)
Driver={SQL Server Native Client 11.0}(SQL Server 2012以降)

SQL Server Native Client RDA

リモートデータアクセス(RDA)は、SQL Server Compactの機能であり、「リモートのSQL Serverデータベーステーブルのデータにアプリケーションがアクセスできるようにします」。多くのドキュメントは見つかりませんが、このドライバーはCompact Editionでのレプリケーションシナリオをサポートすることを目的としていたようです。

SQL Server(SQLSRV32)

Microsoft Data Access Components(MDAC) (現在はWindows Data Access Components(WDAC)と呼ばれる)に含まれています。このドライバーは、Windows(98およびNT 4.0以降)でデフォルトで使用可能です。

Driver={SQL Server}

3
Kevinoid

SQL ServerネイティブクライアントとODBC用の.NET Frameworkデータプロバイダー

SQL Serverネイティブクライアントの最後のバージョンでは、Microsoft®SQLServer®2012ネイティブクライアントはSQL Serverネイティブクライアント11.0とも呼ばれているようです。 SQL Server 2014以降の新機能をサポートしていません

SNAC 11は、透過ネットワークIP解決、常に暗号化、Azure AD認証、一括コピー、テーブル値パラメーターなど、SQL Server 2012の一部として利用できなかったSQL Server 2014およびSQL Server 2016でリリースされた機能をサポートしないことに注意してください。

https://blogs.msdn.Microsoft.com/sqlreleaseservices/snac-lifecycle-explained/

SQL Server 2014以降の新機能を利用するには、Microsoft®ODBC SQL Server用のドライバー11または13を使用する必要があります

2
user3200692

インストールしたドライバーを確認するには、powershell(32/64ビット-使用するドライバーアーキテクチャに応じて)を起動して実行します

[〜#〜] oledb [〜#〜]

(New-Object System.Data.OleDb.OleDbEnumerator).GetElements() | select SOURCES_NAME, SOURCES_DESCRIPTION

[〜#〜] odbc [〜#〜]

Get-OdbcDriver | select Name,Platform

概要

https://docs.Microsoft.com/en-us/sql/connect/connect-history#odbc

SQL Server用のMicrosoft ODBCドライバーには、3つの異なる世代があります。

  • 最初の「SQL Server」ODBCドライバーは、Windowsデータアクセスコンポーネントの一部として引き続き出荷されます。 このドライバを新しい開発に使用することは推奨されません。
  • SQL Server 2005以降、SQL「Server Native Client 10.x/11.x/12.x」にはODBCインターフェイスが含まれており、SQL Server 2005とともにSQL Serverに同梱されているODBCドライバーです。 2012. このドライバを新規開発に使用することは推奨されません。
  • SQL Server 2012以降、SQL Server用のMicrosoft ODBCドライバーは、最新のサーバー機能で更新されますのドライバーです。

SQLサーバー

これは、MDACパッケージ( https://support.Microsoft.com/en-us/help/899456 )からの古いもので、現在(XP/2003以降)Windows-OSに付属しています。 https://docs.Microsoft.com/en-us/sql/connect/connect-history#mdacwdac-releases

https://docs.Microsoft.com/en-us/sql/relational-databases/native-client/applications/updating-an-application-to-sql-server-native-client-from-mdac

... Windows Vista以降、データアクセスコンポーネントはWindowsデータアクセスコンポーネント(Windows DAC)と呼ばれるようになりました。どちらもSQL Serverデータベースへのネイティブデータアクセスを提供しますが、SQL Server Native ClientはSQL Server 2005の新機能を公開するように特別に設計された(9.x)であると同時に、以前のバージョン。


SQL Serverネイティブクライアント

https://docs.Microsoft.com/en-us/sql/connect/connect-history#odbc

SQL Server Native Clientは、OLE DBとODBCの両方に使用されるスタンドアロンライブラリです。 SQL Server Native Client(多くの場合SNACと略されます)は、SQL Server 2005〜2012に含まれていました。SQLServer Native Clientは、新しいSQL Server 2012からSQL Server 2012に導入された機能 =。 (Microsoft/Windows Data Access Componentsは、SQL Serverのこれらの新機能については更新されません。)SQL Server 2012以降の新機能については、SQL Server Native Clientは更新されません。 SQL ServerのMicrosoft ODBCドライバーまたはSQL ServerのMicrosoft OLE DBドライバーに切り替えて、今後、新しいSQL Server機能を活用したい場合は


SQL ServerネイティブクライアントRDA

.NET Compact Framework 3.5に付属


SQL Server用のODBCドライバー

https://docs.Microsoft.com/en-us/sql/connect/connect-history#odbc

SQL Server 2012以降、SQL Server用のプライマリODBCドライバーは、SQL Server用のMicrosoft ODBCドライバーとして開発およびリリースされました。


MSOLEDBSQL-SQL Server用のMicrosoft OLE DBドライバー

このドライバーは 非推奨 以降でした 非推奨

https://docs.Microsoft.com/en-us/sql/connect/oledb/oledb-driver-for-sql-server#3-Microsoft-ole-db-driver-for-sql-server- msoledbsql

新しいOLE DBプロバイダーは、Microsoft OLE DB Driver for SQL Server(MSOLEDBSQL)と呼ばれます。 新しいプロバイダーは今後の最新のサーバー機能で更新されます。既存のアプリケーションでSQL Server用の新しいMicrosoft OLE DBドライバーを使用するには、接続文字列をSQLOLEDBまたはSQLNCLIからMSOLEDBSQLへ。 https://blogs.msdn.Microsoft.com/sqlnativeclient/2018/03/30/released-Microsoft-ole-db-driver-for-sql-server/


概要

将来性のあるドライバーを使用してみてください。

1
Bernhard