問題タブ [command-timeout]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 非常に長い挿入クエリ中に SQL Server ログ ファイルを使用できない
Visual Studio 15 から、SQL Server への挿入クエリを実行しています。これはコンソール アプリケーションです。アプリケーションは複数のファイルから読み取り、1 回の実行で 200,000 近くのレコードを入力します。その間、ファイルの新しいフォルダーに対して接続が閉じられ、開かれるため、各フォルダーは 50,000 を超える (または少ない) エントリを提供します。設定myconn.CommandTimeout=0
したので、実行を続け、SQLプロパティの自動終了がオフに設定されています。アプリケーションとSQLサーバーの両方が同じマシン上にあります。
Db "my db name" ログは利用できません
その後、クエリが停止します。中断せずに非常に多くのレコードを入力する方法を教えてください。情報が不足している場合はお知らせください。
元のエラー出力:
未処理の例外: System.Data.SqlClient.SqlException: データベース 'paklaw' のログは利用できません。関連するエラー メッセージについては、イベント ログを確認してください。エラーを解決し、データベースを再起動します。現在のコマンドで重大なエラーが発生しました。結果がある場合は、破棄する必要があります。System.Data.SqlClient.SqlConnection.OnError で (SqlException 例外、ブール値の breakConnection、アクション
1 wrapCloseInAction) at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action
1 wrapCloseInAction) で System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady) System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString) で System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task 、Boolean asyncWrite、SqlDataReader ds、Boolean describeParameterEncryptionRequest) を System.Data.SqlClient.SqlCommand に設定します。RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource1 completion, Int32 timeout, Task& task, Boolean asyncWrite) at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource
filereadproj.Program.sqlfunc(SqlConnection conn, Int32 bi, String br, Int32 sI, String sV, Int32 で System.Data.SqlClient.SqlCommand.ExecuteNonQuery() s2I、String s2V、Int32 tsI、String tsV、String fn、String of、Boolean ke) in C:\Users\Saif-ul-Islam\Documents\Visual Studio 2015\Projects\filereadproj\filereadproj\Program.cs:line 730 C:\Users\Saif-ul-Islam\Documents\Visual Studio 2015\Projects\filereadproj\filereadproj\Program.cs:line 139 の filereadproj.Program.Main(String[] args) で
command-timeout - C# CommandTimeout Using ステートメントの問題
私はうまく機能したメソッドを持っていますが、今ではクエリが変更されており、これが実行されるクライアント マシンの一部が少し能力不足であるという事実を考慮して、CommandTimeout を追加する必要があります。私が抱えている問題は、CommandTimeout の追加が機能しないため、行を使用することです。
プログラム自体は、毎晩 SFTP サーバーからクエリを取得し、クライアント DB に対してクエリを実行し、結果をファイルに書き込み、結果を SFTP サーバーに送り返します。
クライアント マシンでのクエリ (読み取り専用アクセス) の効率を改善できないため、この方法に固執しています。
sql-server - SqlCommand.ComandTimeout 効果なし
ストアド プロシージャの実行に使用している SqlCommand の CommandTimeout プロパティで問題が発生しています。
コードはかなり単純です。このコードは CommandTimeout を指定していなかったため、デフォルトの 30 秒を使用していました。この手順には (常にではありませんが) 30 秒以上かかることがあるようです。
不思議なことに、今朝、別の失敗メールが自動的に届きました。
「タイムアウトが発生しました。操作が完了する前にタイムアウト期間が経過したか、サーバーが応答していません。」
ログをチェックして、「手順の開始」ログと「手順の失敗」ログの間の経過時間を確認しましたが、基本的には 30 秒です。以下の画像は、コマンド実行開始から約30秒後に失敗したことを示しています。
ここで何が起きてるの?私はほとんどの同様の SO の質問と MSDN フォーラムを読み込もうとしましたが、これまでのところ役に立ちませんでした。