ブログランキング・にほんブログ村へ
PVアクセスランキング にほんブログ村
子豚のココのお勧め商品 - にほんブログ村

■おすすめの商品
防災グッズ
Evopow ポータブル電源 ソーラーパネル セット リン酸鉄リチウム 1024Wh 出力1000W (瞬間最大2000W)とソーラーパネル 100W ポータブルバッテリー 22% 純正弦波 車中泊 防災 キャンプ 家庭用 アウトドア用
最新記事
写真ギャラリー
検索
カテゴリアーカイブ
タグクラウド
最新コメント
リンク集
RSS取得

広告

posted by fanblog

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秒)です。


調査結果



速度比較001.JPG


速度比較グラフ.JPG


平均速度比較グラフ.JPG



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


Build a Mobile Site
スマートフォン版を閲覧 | PC版を閲覧
Share by: