性能劣化に対する一時対応として「断片化を解消」するのが「バッドノウハウ」であると認識されているのであればSQL Serverに限らずOracleDBやDB2でも性能劣化に対する対応として「バッドノウハウ」が出回っている状況なので他のフォーラムでも啓蒙すべきではないでしょうか。(何も断片化については私だけが回答しているわけでもありません), また、断片化の解消が「バッドノウハウ」であり「根本原因を解消するためにアプリを改修する」が正解であれば非現実的なシステムも多いのではないでしょうか。(そもそも改修する権利もない可能性もある)
もし私を含めた他者の回答に疑問を持つのであれば、質問者様へ間違いのない「グッドノウハウ」を回答して頂ければと思います。, 質問者さんが問題ないと判断されている以上、それを前提に回答するしかないと思います。「サポート」がどういう立場の方なのかも気になるところですが…。, なるほどパフォーマンスの指標値には現れなくても30秒タイムアウトするような経験がおありということで理解しました。ちなみにその際の原因はどのようなものだったのでしょうか? 質問者さんも同じ問題にあたっている可能性もありますし、参考までにお聞かせいただけたら幸いです。, 改修する権利がないのであれば悩む必要はなく受け入れるだけのことかと思います。以降、改修する権利がある前提で。, 盲目的な断片化解消(ALTER INDEX REORGANIZEやALTER INDEX REBUILDの実行)を危惧してのコメントでした。断片化が原因であれば断片化を引き起こすクエリを改善すべきですし、それを変更できないのであれば断片化を緩和させるFILL FACTORを設定したり手立てはあると思います。そこまで含めての断片化解消という意味でしたら誤解していました、すみません。, いくつか質問を頂いておりますので1つだけ回答しますが、まず私が回答をする前提を書かせて頂きます。, 先ほども記載しましたが「質問者様が原因を突き止めるために必要な情報が見つかることが最優先事項」としているだけで、あえて不毛なやり取りを開始する必要性に疑問があります。(せめて質問者様も含めるなどすべき)
google_ad_height = 280; 接続のタイムアウト ADO SqlConnection.ConnectionTimeout プロパティー (ADO.Net) 規定値15秒 0は制限無し., このプロパティーはReadOnlyなので設定はできない. 設定はConnectionStringで接続時におこなう., 例: ConnectionString = "Data Source=(local);Database=test;Integrated Security=SSPI;Connection Timeout=30;", 参考:SqlConnection.ConnectionString プロパティ (MSDN), このConnectionTimeoutは接続のタイムアウトなので,コマンド実行のタイムアウトとは関係ない.コマンド実行のタイムアウトは↓., 2. ASP.NET C#
インデックスの有無や抽出するデータ量によって、データの取り出し方に効率・非効率があるためです。
Microsoft Azure Synapse Analytics (æ§ç§° SQL Data Warehouse), Microsoft Azure Synapse Analytics (formerly SQL Data Warehouse), 以åã®ãã¼ã¸ã§ã³ã®ããã¥ã¡ã³ã. This is the default behavior that is already set at the beginning of each connection. こういったタイムアウト問題では、私の場合は対象のSQL文を特定して実行計画を確認します。
CREATE DATABASEãALTER DATABASEãããã³ DROP DATABASE ã¹ãã¼ãã¡ã³ãã§ã¯ãSET LOCK_TIMEOUT ã®è¨å®ã¯ç¡è¦ããã¾ãã.
以下の環境で開発を行っています。
The READPAST locking hint provides an alternative to this SET option. SQL Server Management Studio でテーブルのデザインを変更したときのタイムアウト [ツール]-[オプション]-[デザイナ]-[テーブルおよびデーターベースデザイナ]-[トランザクションがタイムアウトするまでの時間] で設定する. 規定値30秒. 具体的な原因ですと、守秘義務に抵触する可能性があるのですが、そもそもデータベースの種類が異なるので参考にはならないでしょう。
お客様の許可なしに外部サービスに投稿することはございませんのでご安心ください。. SQL Server Management Studio でテーブルのデザインを変更したときのタイムアウト [ツール]-[オプション]-[デザイナ]-[テーブルおよびデーターベースデザイナ]-[トランザクションがタイムアウトするまでの時間] で設定する. 規定値30秒, 参考:http://support.microsoft.com/kb/915849/ja. それこそ、佐祐理様のおっしゃるロックの話やログ周りの話であれば性能面としては異常がない(異常な変化に見えない)事もあるでしょう。
col1・・・char(10),PK col2・・・char(2),PK col3・・・char(2),PK col4・・ … エラーテーブルを修正できません。タイムアウトの時間切れです。操作が完了する前にタイムアウト期間を過ぎたか、またはサーバが応答していません。解決方法SQL Server Management Studioを開いて、「ツール」→「オプション」を 明らかに私の回答が技術的に間違っており、不利益に直結する原因になるのであれば指摘頂く事が正しい在り方であるのは間違いないです。, 今回は質問者様の「テーブル」に関する質問に対して、影響が出ている可能性のある事項を書いたまでで、これ以上蛇足である情報を長々と書くつもりもありません。, >質問者さんも同じ問題にあたっている可能性もありますし、参考までにお聞かせいただけたら幸いです。
>タイムアウトがハードウェアのリソースやコネクションの競合などではなくて、テーブルロックにより発生しているという結論はどうやって導き出しましたか?
もちろん、物理的な読込が大量に発生する場合はI/Oなどに変化がある事が多いでしょう。
>良いのでしょうか。
OSやデータベース自体にパフォーマンスの問題が発生していなかったのであれば、排他制御によるロックが発生していたと考えるのが自然です。ロックは説明するまでもないかと思いますが、データベースの整合性を保つために他の処理を待たせることであり、「待つ」という行為そのものはデータベースにとって正常な動作です。30秒以上待たされたことによりタイムアウトが発生したとしても、これもデータベースとしては指示された通りに正常動作したと言えます。, 30秒以上待たせたことによりタイムアウトが発生したというのが不本意な動作だとすればそれは指示ミス、アプリケーション側の問題です。データベースへの指示、つまりクエリ内容を見直す必要があります。まずはSQL Server Profilerにてどのようなロックが発生していたのか(もしくは発生していなかったのか)を確認してください。, 個人的な経験から回答したいと思います。
そしてその点について質問文では「OSやデータベース自体のパフォーマンスに問題がでていた事は確認できていない」と言及されているわけですが、どうお考えでしょうか?, 根本の原因を特定せず、断片化解消で一時的に回復できたとしても、完治しておらず再発するだけであり、また「断片化を解消するとなぜか回復する」というバッドノウハウが出回ってしまうことも危惧しています。, 佐祐理様