直接比較するためのPowerShellコードを次に示します。
オレ DB:
$ConnectionString = "server=localhost;database=MyDatabase;trusted_connection=yes;Provider=SQLNCLI10;"
$sql = "SELECT * FROM BigTable"
$conn = New-Object System.Data.OleDb.OleDbConnection($ConnectionString)
$conn.open()
$cmd = New-Object system.Data.OleDb.OleDbCommand($sql,$conn)
#$cmd.CommandTimeout = $timeout
$da = New-Object system.Data.OleDb.OleDbDataAdapter($cmd)
$dt = New-Object system.Data.datatable
[GC]::Collect()
$start = get-date
[void]$da.fill($dt)
$now = get-date
[int]($now - $start).Milliseconds
$conn.close()
#$dt
SQL クライアント:
$ConnectionString = "Data Source=localhost;Initial Catalog=MyDatabase;Integrated Security=True"
$sql = "SELECT * FROM BigTable"
$conn=new-object System.Data.SQLClient.SQLConnection($ConnectionString)
$conn.Open()
$cmd=new-object System.Data.SQLClient.SQLCommand($sql,$conn)
# $cmd.CommandTimeout=$timeout
$dt = New-Object system.Data.datatable
$da=New-Object System.Data.SQLClient.SQLDataAdapter($cmd)
[GC]::Collect()
$start = get-date
[void]$da.fill($dt)
$now = get-date
[int]($now - $start).Milliseconds
$conn.close()
#$dt
私は得た
Ole-DB : SQL-Client
538 - 839
767 - 456
592 - 678
その結果、このタイプのアドホック クエリでは、接続文字列を調整して Oracle データベースからデータを取得するだけでよいため、Ole-DB を好みます。