-1

我有一个存储过程,在 SQLServer 上运行时需要 1 秒才能运行,但在我的 VB.Net 代码中需要将近 20 秒。需要很长时间才能上线:

Adapter.Fill(ds,"TimeTable")

我做错了什么让它花这么长时间吗?

我的代码片段如下:

    SQLConn = New SqlConnection(SQLDConnString)
    cmd = New SqlCommand("SPNAME", SQLConn)
    cmd.CommandType = CommandType.StoredProcedure
    SQLConn.Open()
    cmd.Parameters.AddWithValue("@p1", p1)
    cmd.Parameters.AddWithValue("@p2", p2)
    cmd.Parameters.AddWithValue("@p3", p3)
    cmd.Parameters.AddWithValue("@p4", p4)
    adapter.SelectCommand = cmd
    adapter.Fill(ds, "TimeTable")
    DataGridView1.DataSource = ds.Tables("TimeTable")
    SQLConn.Close()
4

2 回答 2

0

如果您的列和行高度/宽度的 datagridview 属性设置为自动,则可能需要很长时间才能完成该过程。我曾经发生过这种情况,其中存储过程花费了异常大量的时间,最终成为导致它停止的属性。

于 2013-01-31T00:02:55.397 回答
0

我似乎通过在我的 SP 中声明局部变量然后将我的参数分配给这些变量来解决这个问题。

与参数嗅探有关。

于 2013-02-12T13:00:20.997 回答