SqlServer OrmLite 方言を使用した Nuget 経由の ServiceStack 3.9.69
パラメータ化されたストアド プロシージャを実行しようとしていますが、コンパイル モードが に設定されていると異常に遅くなりますdebug
。遅い方法は次のConvertToList
とおりです。
Dim result = Db.Exec(Of List(Of Dto.FieldSample))(
Function(cmd)
cmd.CommandType = CommandType.StoredProcedure
cmd.CommandText = "up_GetFieldSample"
cmd.Parameters.Add(New SqlClient.SqlParameter("@uploadID", uploadId))
Dim reader = cmd.ExecuteReader()
Dim converted = reader.ConvertToList(Of Dto.FieldSample)()
Return converted
End Function)
(利用可能な拡張機能があることは知ってい.SqlList
ますが、最初に同じ結果で試してみました。Exec
問題がどこにあるかをよりよく理解するために切り替えました)
ストアド プロシージャは、非デバッグ モードで実行すると 2 ~ 3 秒で戻りますが、デバッグ モードでは 15 ~ 20 秒です。デバッグコンパイルにはトレースなどが含まれることが多いことは理解していますが、実際に何がそんなに遅いのかを理解しようとしています。
debug
クエリの実行に時間がかかる原因となっているコンパイルで何が起こっていますか?