Sql server ADO记录集getstring对于大型记录集速度较慢
我正在VBScript中使用ADO。查询很简单,只需几秒钟即可完成 然而,当我执行GetString方法时,它需要很长时间才能完成,有时甚至根本没有完成Sql server ADO记录集getstring对于大型记录集速度较慢,sql-server,vbscript,adodb,Sql Server,Vbscript,Adodb,我正在VBScript中使用ADO。查询很简单,只需几秒钟即可完成 然而,当我执行GetString方法时,它需要很长时间才能完成,有时甚至根本没有完成 Set oShell = CreateObject( "WScript.Shell" ) user = oShell.ExpandEnvironmentStrings("%UserName%") ConnectSqlServer "select top 100000 * from notic
Set oShell = CreateObject( "WScript.Shell" )
user = oShell.ExpandEnvironmentStrings("%UserName%")
ConnectSqlServer "select top 100000 * from notices FOR JSON AUTO, INCLUDE_NULL_VALUES;", "PSQL003"
Sub ConnectSqlServer(query, database)
On Error Resume Next
sConnString = "Provider=SQLOLEDB.1;Data Source= " & database & "; " & _
"Initial Catalog=VIEW;" & _
"Integrated Security=SSPI;"
MakeConnectionString = "DSN=" & sDSN & ";Uid=" & sUid & ";Pwd=" & sPwd & ";"
Dim conn
Dim rs
Dim sConnString
Dim resultString
Set conn = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")
conn.Open sConnString
conn.CommandTimeout = 0
Set rs = conn.Execute(query)
Set Errs1 = conn.Errors
For Each errLoop In Errs1
With errLoop
StrTmp = StrTmp & "Error #" & i & ":"
StrTmp = StrTmp & vbCrLf & " ADO Error #" & .Number
StrTmp = StrTmp & vbCrLf & " Description " & .Description
StrTmp = StrTmp & vbCrLf & " Source " & .Source
i = i + 1
End With
Next
Msgbox "Query Finished"
resultString = rs.GetString
Msgbox "String Created"
End Sub
因此,不要对大型记录集使用
GetString()
。当您试图将100000条结果格式化为JSON时,您期望得到什么?@Lankymart更好的选择是什么?您试图用100000行JSON格式的输出做什么?值得做的是:作为行返回仍然存在问题。我建议您分页记录集,而不是尝试在一个JSON中返回100000条记录对象。因此,不要对大型记录集使用GetString()
。当您试图将100000条结果格式化为JSON时,您期望得到什么?@Lankymart更好的选择是什么?您试图用100000行JSON格式的输出做什么?值得做的是:作为行返回仍然存在问题。我建议您分页记录集,而不是尝试在一个JSON中返回100000条记录对象