2020年01月30日
MSOLEDBSQL SQLOLEDB SQLNCLI プロバイダー
Microsoft OLE DB Driver for SQL Server (MSOLEDBSQL)
2017年4月にSQL Server Native Client (SQLNCLI) が非推奨となり、
新しい開発作業には、Microsoft OLE DB Driver for SQL Server (MSOLEDBSQL)を使用しなければならなくなりました。
このMSOLEDBSQLは、Windows 付属の SQLOLEDB OLE DB プロバイダー(SQLOLEDB)とは別物です。
Windows付属の SQLOLEDB OLE DB プロバイダーはもともとメンテナンスモードとなっており、
MSOLEDBSQLを利用する場合は、OLE DB Driver for SQL Server (MSOLEDBSQL) をダウンロードしてインストールする必要があります。
なお、2019年10月時点ではバージョン18.3.0.0が公開されています。
Microsoft OLE DB Driver for SQL Server
インストール時の注意点として、
必ず管理者特権でログオンしてインストールする必要があります。
アプリケーションに組み込んで利用する場合の接続文字列は以下のようになります。
Provider=MSOLEDBSQL;Server=myServerAddress;Database=myDataBase;UID=myUsername;PWD=myPassword;
また、SQL Server 2005 (9.x) 以降の機能を必要としない場合には、
接続文字列に DataTypeCompatibility=80 を指定することで、
SQL Server 2005 (9.x) の機能しか使用しないようになります。
Provider=MSOLEDBSQL;DataTypeCompatibility=80;Server=myServerAddress;Database=myDataBase;UID=myUsername;PWD=myPassword;
Microsoft OLE DB Driver 18.3.0 for SQL ServerがサポートされるOSは、
Windows Server 2016、Windows 10、Windows Server 2012 R2、Windows Server 2012、Windows 8.1、Windows Server 2019です。
ネイティブ コード API を使用するアプリケーションが Microsoft SQL Server 2012、SQL Server 2014、SQL Server 2016, SQL Server 2017、
Analytics Platform System、Azure SQL Database、および Azure SQL Data Warehouse に接続するためのランタイム サポートを含む、
単一のダイナミック リンク ライブラリ (DLL) です。(Microsoftサイトの直訳なので、少し意味が分かり難いです。)
当方で試したところ、SQL Server 2005、SQL Server 2008 R2 でも利用可能でした。
SQL Server Native Client と Microsoft OLE DB Driver for SQL Server の速度比較
Microsoftが推奨しないという訳なので、MSOLEDBSQLを利用するしか仕方が無いのですが、
念のため、これまで利用していたSQL Server Native Client との速度差がどれ位なのか調べてみました。
調査はDelphi製アプリケーションを作成し、
SQLOLEDB、SQLNCLI11.0、MSOLEDBSQLを用いて、
SQL Server 2008 R2データベースに対して、
1000行、2000行、5000行、10000行、20000行のレコード操作(SELECT、DELETE、INSERT)を各5回行う方式を取りました。、
速度単位はミリ秒(1000分の1秒)です。
調査結果
SQLNCLI>MSOLEDBSQL>SQLOLEDB の順となり、
SQLOLEDBの速度が極端に遅いことがわかります。
MSOLEDBSQLとSQL Server Native Clientだと、
わずかながら、SQL Server Native Clientの方が速いようです。
まとめ
OLE DB Driver は3つの世代があり、
SQLNCLI(SNAC)、SQLOLEDB、MSOLEDBSQLの
どれを利用すればいいのかわかりにくいのが現状です。
特に、突然非推奨になったり、非推奨が取り消されたりと、
これも混乱を招く原因となっています。
さらに、Microsoftによる情報公開もしばらく経たないと出てこないので、これにも注意が必要です。
再度整理すると、
2017年4月に非推奨となったのが、
Microsoft OLE DB Provider for SQL Server (SQLOLEDB) と
SQL Server Native Client OLE DB プロバイダー (SQLNCLI) です。
新しい開発には利用しないようにしてください。
2018年にOLE DBの非推奨が取り消しとなりリリースされたのが、
Microsoft OLE DB Driver for SQL Server (MSOLEDBSQL) です。
その為、Microsoft OLE DB Driver for SQL Server (MSOLEDBSQL) が
今後最新の機能として更新されます。
従って、これまで SQLOLEDBやSQLNCLIを利用していたアプリは、
MSOLEDBSQLに対応していくしかなさそうです。
また、MSOLEDBSQLはWindowsに付属していないので、
別途ダウンロード&インストールを行う必要があります。
以下のMicrosoftのドキュメントサイトに情報が掲載されているので、必ず確認するようにしてください。
Microsoft OLE DB Driver for SQL Server
【このカテゴリーの最新記事】
-
no image
-
no image