私は、WebアプリケーションがSQLに例外タイムアウトを与えたことに気付きました。System.Data.SqlClient.SqlException:タイムアウトがタイムアウトしました
より多くのCPUを必要とするカップルストアドプロシージャをクリーンアップして、SQL Serverサービスを再起動し、アプリケーションが速くて遅れずに作業を開始しました。 3時間後にもう一度チェックして、例外タイムアウトが切れたときよりもページを読み込めませんでした。私はサーバーをチェックしましたCPUは問題ありません。私は同じのIIS 7の下にいくつかの他のウェブサイトを持っていて、例外なしでうまく動作します。 SQL Serverサービスをもう一度やり直し、アプリケーションを再び正常に戻しました。 SQLサーバーデータベースの問題のように思えますが、トラブルシューティングの方法がわかりません。
だから私は例外が発生するたびにSQLサービスを再起動しますが、もちろんそれは最善の方法ではありません。この問題を解決するのを手伝ってください。
ここに私が得た例外の一つがあります。
メッセージ: タイプ 'System.Web.HttpUnhandledException' の例外がスローされました。ソース:System.Web Inner 例外:System.Data.UpdateException: エントリの更新中にエラーが発生しました。詳細は のInnerExceptionを参照してください。 ---> System.Data.SqlClient.SqlException: タイムアウトが切れています。 操作の完了前にタイムアウト時間 が経過したか、サーバーが応答していません( )。ステートメントは 終了しました。 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarningで System.Data.SqlClient.SqlInternalConnection.OnErrorで System.Data.SqlClient.SqlConnection.OnError(SqlExceptionが 例外、ブールbreakConnection)(SqlExceptionが 例外、ブールbreakConnection)(で System.Data.SqlClient.SqlCommand.FinishExecuteReaderでSystem.Data.SqlClient.TdsParser.Run(runBehavior runBehavior、SqlCommandオブジェクトcmdHandler、 SqlDataReaderのデータストリーム、 BulkCopySimpleResultSet bulkCopyHandler、TdsParserStateObject stateObj)でTdsParserStateObject stateObj)(SqlDataReaderの ds、Ru System.Data.SqlClient.SqlCommand.RunExecuteReaderTdsでnBehavior runBehavior、ストリング resetOptionsString)(たCommandBehavior cmdBehavior、RunBehavior runBehavior、 System.Data.SqlClient.SqlCommand.RunExecuteReader(たCommandBehavior cmdBehaviorでブールreturnStream、ブール非同期) 、 System.Data.SqlClient.SqlCommand.ExecuteNonQueryでSystem.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult 結果でrunBehavior runBehavior、 ブールreturnStream、文字列方法、 DbAsyncResult結果)、文字列methodNameの、ブール sendToPipe)() 、 System.Data.Mapping.Update.Internal.UpdateTranslatorでSystem.Data.Mapping.Update.Internal.DynamicUpdateCommand.Execute(UpdateTranslator 翻訳、EntityConnection 接続、辞書 generatedValues)。 System.DataでSystem.Data.Mapping.Update.Internal.UpdateTranslator.Updateで更新(IEntityStateManager のStateManager、IEntityAdapterアダプタ) ---内部例外スタックトレースの終わり---(IEntityStateManager のStateManager、IEntityAdapterアダプタ) BCSCDomain.Domain.DataLayer.OtherDataLayerでSystem.Data.Objects.ObjectContext.SaveChanges() でSystem.Data.Objects.ObjectContext.SaveChanges(ブール acceptChangesDuringSave)で.EntityClient.EntityAdapter.Update(IEntityStateManager entityCache) .UpdateHitCounter(Int32 hlistid、Int32 hcounterid): BuyCarandSellCar.UsedCarProfilePage.HitCoウンター() でBuyCarandSellCar.UsedCarProfilePage.Page_Load System.Web.Util.CalliHelper.EventArgFunctionCallerで(オブジェクト 送信者のEventArgs電子)(のIntPtr FP、オブジェクトOは、オブジェクトT、のEventArgs e)の System.Webので.Util.CalliEventHandlerDelegateProxy.Callback System.Web.UI.Control.LoadRecursive(AT System.Web.UI.Control.OnLoad(のEventArgs e)に(オブジェクト 送信者のEventArgs電子)) System.Webので 。 UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint、Boolean includeStagesAfterAsyncPoint)スタック トレース:a System.Web.UI.Page.ProcessRequest(ブール で System.Web.UI.Page.ProcessRequestMain(ブール includeStagesBeforeAsyncPoint、ブール のincludeStagesAfterAsyncPoint)でトン System.Web.UI.Page.HandleError(例外 E) System.Web.UI.Page.ProcessRequest(のHttpContext 文脈で System.Web.UI.Page.ProcessRequestWithNoAssert(のHttpContext コンテキスト)で System.Web.UI.Page.ProcessRequest()でincludeStagesBeforeAsyncPoint、ブール のincludeStagesAfterAsyncPoint) )at ASP.usedcarlistings_profilepage_aspx.ProcessRequest(HttpContext コンテキスト) はC:\ WINDOWS \ Microsoft.NET \ Frameworkの\ v2.0.50727の一時 ASP.NET ファイル\ルート\ 79794658 \ 835d6695 \ App_Web_kmrmpdbb.16.cs \: System.Web.HttpApplication.CallHandlerExecutionStepでライン 0。 System.Web.HttpApplication.IExecutionStep.Execute() でSystem.Web.HttpApplication.ExecuteStep(IExecutionStep ステップ、ブール& completedSynchronously)
「あなたが予想しているよりも多くの行」とはどういう意味ですか? –
私は、あなたのテーブルがどれだけ大きなものになっているかの直感的な感覚があるならば、あなたはそこで健全性チェックをすることができます。ストアドプロシージャを書くときには、テーブルが互いにどのように関係しているかを知ることができます。テーブルAへの挿入が常にテーブルBの挿入に対応することがわかっている場合は、 AとBが同じサイズであると合理的に期待するかもしれません。そうでなければ、それはバグの可能性のある指標です。 –