這裏是做一個直接的比較一些PowerShell的代碼:
OLE-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
SQLCLIENT:
$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
因此,對於這種類型的臨時查詢,我更喜歡Ole-DB,因爲我只需調整連接字符串以從Oracle數據庫中提取數據。
現在值得注意的是,根據我的前兩句話,微軟現在不贊成使用Ole來支持Odbc – 2011-12-24 02:49:37