SQL Server

SQL Server

SQLServerは、断片化率が高くなると、SQLが実行される際、パラレル処理されなくなり、極端に処理性能が低下します

ストレージを増設する前、12TBのストレージで、10TBのDBを運用していたので、1ヵ月に1回程度、SQLServerのDB Shrinkを実行していました。その影響で、メインのテーブルとインデックスを中心に、断片化率が99%に達していまし...
SQL Server

SQLServerで、SQLがパラレル処理されない場合は、実行プランを丸ごと固定する

SQLServerは、SQL処理時間がcost threshold for parallelismの値(デフォルト5秒)を超えるような場合、1つのSelect文であっても、シリアルではなくパラレルで処理します。パラレル処理されれば1分程度で...
ASP.NET

SQLServerで、IISからのDB処理だけが遅い現象が、どうしても解決しない場合は、ヒント文を使用する

SQLServerで時々発生する、IISや関連サービスからのDB処理だけが、極端に遅くなる現象に対応する為、4つのサイクルを回して来たのですが、運用時間帯に、一部の処理で、IISや関連サービスからのDB処理だけ、極端に遅くなる現象が再発して...
SQL Server

SQLServer トレースフラグの有効性

SQLServerのDBサイズがテラバイトを超えて来ると、DB全体の統計情報を更新するだけで、1日以上かかってしまい、定期的な統計情報の更新を諦めていましたが、統計情報が更新されない事で、特定のSQLが極端に遅くなる現象が発生しました。 S...
SQL Server

SQLServerで、ジョブ名からジョブを削除するSQL

SQLServer Management Studioから、SQL Server Agent に作成したジョブを右クリックし、「DROP To」でDROP文を生成すると、JOB ID を元にしたDROP文が生成されますが、JOB ID はサ...
SQL Server

SQLServerで、インデックスと統計情報を追加しても、ストアドの処理が遅い場合

ストアドをチューニングアドバイザーに掛け、抽出されたインデックスと統計情報を追加すれば、ストアドのパフォーマンスを大幅に改善する事ができます。それは、テラバイトクラスのDBシステムでも同様です。 しかし、テラバイトクラスのDBだと、統計情報...
C#

SQLServerで、IISからのDB処理だけが遅い場合は、ストアド、ファンクションをリコンパイルする

テラバイトクラスのDBシステムを扱っていると、データ量が増えるたびに、特定のSQLが極端に遅くなることがあります。 その時に、遅くなったSQLの実行プランを確認すると、インデックススキャン(Index seek)のコストが跳ね上がり、SQL...
SQL Server

SQLServerの最新パッチ

SQLServer 2008 R2 SP2 の最新パッチがどれなのかは、このブログで確認できる。2013/2/24時点の最新パッチ(累計的な更新プログラム)はCU#5。 SQL Release Services Blog
SQL Server

6ヶ月以上使われていないインデックスを抽出するSQL

SQLServerのユーザーDBで、6ヶ月以上使われていないインデックスを抽出し削除する事で、不要なインデックスを増やさない。定期メンテナンス用のSQL。
SQL Server

SQLServerで、ユーザーDBに紐付く、データファイル、ログファイルの一覧を抽出する