DOBON.NETプログラミング道掲示板
(現在 過去ログ1 を表示中)

[ 最新記事及び返信フォームをトピックトップへ ]

■33199 / inTopicNo.1)  ExecuteNonQueryでTimeoutになる
  
□投稿者/ cb400s2000 一般人(1回)-(2016/01/01(Fri) 21:58:38)
  • アイコン環境/言語:[VB.net2010] 
    分類:[.NET] 

    VB.net2010+SQLServerExpressを使用しています。

    SQLCommandのExecuteNonQueryを使用して、ストアドプロシージャを
    実行しようとしています。

    しかし、SQLServerManagementStudioで同じストアドプロシージャを
    実行すると、1秒もかからず終了するものが、VB.net上では
    Timeoutのため、エラーとなってしまいます。

    コードは以下のようになっています。

    Dim retBool As Boolean = False
    Dim Cnt As Integer = 0


    Using Cn As New SqlConnection(設定内に接続文字列を登録)
    Using Cmd As New SqlCommand

    With Cmd
    .Connection = Cn
    .CommandType = CommandType.StoredProcedure
    .CommandText = "ストアド名"
        .Parameters.Add("@startdate",
                  SqlDbType.SmallDateTime).Value = 初日
    .Parameters.Add("@enddate",
                  SqlDbType.SmallDateTime).Value = 最終日
    End With

    If Cn.State = ConnectionState.Closed Then
    Cn.Open()

    End If

    Cnt = Cmd.ExecuteNonQuery   → ここでエラー(Timeout)になる

    Cn.Close()



    End Using
    End Using

    設定に登録してある接続文字列も、テスト接続にて接続できることは
    確認をしております。

    他のコードでも、ExecuteNonQueryを使用しているのですが、今回のような
    ことは起きておりません。

    1日かけて、いろいろと調べてはいるのですが、どうにも手がかりすら
    見つかりません。
    何か、アドバイスがあれば、是非ともお願いします。
引用返信 削除キー/
■33200 / inTopicNo.2)  Re[1]: ExecuteNonQueryでTimeoutになる
□投稿者/ もりお 一般人(1回)-(2016/01/01(Fri) 23:42:21)
  • アイコンNo33199に返信(cb400s2000さんの記事)

    他のコードでは問題なく、Open()も通過してるので接続は問題なさそうですね。
    ストアドプロシージャに依存してるのかしら。

    こんなの見つけました。

    ADO.Netからのストアド実行処理が極端に遅い
    http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=38608&forum=7&start=8

    SQL Server Management Studioでストアドを実行するときと、
    プログラムでストアドを実行するときは実行プランが異なって
    プログラムでストアドを実行するとき遅くなることがありますよってことみたいですね。

    リンク先では、SET ARITHABORT ONを実行することで改善できたようです。
    お試しになってみてはいかがでしょうか。
引用返信 削除キー/
■33201 / inTopicNo.3)  Re[2]: ExecuteNonQueryでTimeoutになる
□投稿者/ cb400s2000 一般人(2回)-(2016/01/02(Sat) 19:23:19)
  • アイコンこんばんは。

    早速のご回答ありがとうございます。

    ご紹介いただいたページの内容を参考にしたところ、
    Management Studioで実行するときと同じように
    特段、遅くなることもなく実行できました。

    本当にありがとうございました。
解決み!
引用返信 削除キー/



トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

Mode/  Pass/


- Child Tree -