-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プロパティがautoに設定されている場合、手順を完了するのに長い時間がかかる可能性があります。これは一度発生しましたが、ストアドプロシージャに異常に長い時間がかかり、そのプロパティがストールの原因になりました。

于 2013-01-31T00:02:55.397 に答える
0

SPでローカル変数を宣言し、パラメーターをこれらの変数に割り当てることで、これに対する修正を見つけたようです。

パラメータスニッフィングと関係があります。

于 2013-02-12T13:00:20.997 に答える