ADO.NETにてDB(SQLサーバ)へアクセスする方法が複数あり、どのアクセス方法が高速にアクセス可能か検証いたしましたので備忘のため掲載。
検証には以下の接続方法で試しました。
・OLEDB for SQLserver 経由
・SqlClient経由
・ODBC for SQL Server 経由
◆弊社アプリの特定の処理を行い、結果以下の順に早くなりました。
(検証にばらつきがあったため最大値と最小値にて判定)
1.SqlClient
処理時間 20~30秒
2.OLEDB for SQLserver
処理時間 22~32秒
3.ODBC for SQL Server
処理時間 20~34秒
なんとなくSqlClientが速い感じでしたが、それぞれあまり差がありません。
もしかしたら誤差の範囲なのかもしれません。
参考)
■SqlClientでの接続ソースコード
Dim adapter As New SqlClient.SqlDataAdapter
adapter.SelectCommand = New SqlClient.SqlCommand((SQL構文), New SqlClient.SqlConnection((接続文字列))
adapter.Fill(DataSet, (datasetテーブル名))
接続文字列
Data Source=(IPアドレス,ポート番号);Initial Catalog=(データベース名);User ID=(接続ID);Password=(パスワード)
■ODBC for SQL Server での接続ソースコード
Dim adapter As New Odbc.OdbcDataAdapter
adapter.SelectCommand = New Odbc.OdbcCommand((SQL構文), New Odbc.OdbcConnection((接続文字列))
adapter.Fill(DataSet, (datasetテーブル名))
接続文字列
Driver={SQL Server};server=(IPアドレス,ポート番号);database=(データベース名);uid=(接続ID);pwd=(パスワード)
by Roku
検証には以下の接続方法で試しました。
・OLEDB for SQLserver 経由
・SqlClient経由
・ODBC for SQL Server 経由
◆弊社アプリの特定の処理を行い、結果以下の順に早くなりました。
(検証にばらつきがあったため最大値と最小値にて判定)
1.SqlClient
処理時間 20~30秒
2.OLEDB for SQLserver
処理時間 22~32秒
3.ODBC for SQL Server
処理時間 20~34秒
なんとなくSqlClientが速い感じでしたが、それぞれあまり差がありません。
もしかしたら誤差の範囲なのかもしれません。
参考)
■SqlClientでの接続ソースコード
Dim adapter As New SqlClient.SqlDataAdapter
adapter.SelectCommand = New SqlClient.SqlCommand((SQL構文), New SqlClient.SqlConnection((接続文字列))
adapter.Fill(DataSet, (datasetテーブル名))
接続文字列
Data Source=(IPアドレス,ポート番号);Initial Catalog=(データベース名);User ID=(接続ID);Password=(パスワード)
■ODBC for SQL Server での接続ソースコード
Dim adapter As New Odbc.OdbcDataAdapter
adapter.SelectCommand = New Odbc.OdbcCommand((SQL構文), New Odbc.OdbcConnection((接続文字列))
adapter.Fill(DataSet, (datasetテーブル名))
接続文字列
Driver={SQL Server};server=(IPアドレス,ポート番号);database=(データベース名);uid=(接続ID);pwd=(パスワード)
by Roku