SQL Server 2005

SQL Server 2005

SQLServerで、バックアップ先のアーカイブテーブルにあって、本テーブルに無いデータを抽出するSQL

複数列をキーにしている場合、IN()は使えないのでexistsを使う。 where not exists ()の中で「SELECT *」を指定していますがあまり意味はなく、アーカイブテーブルと本テーブルのテーブル定義が違っていてもexis...
SQL Server 2005

データの上昇角度を求めるSQL

ビッグデータシステムなど、大量のデータを解析する場合、JAVAやC#では計算元のデータを読込むだけで膨大な時間がかかってしまうので、最近では数十テラのデータであってもDBにインポートしてから、SQLで分析するのが主流になっています。以下は、...
SQL Server 2005

SQLServer で統計情報を固定する

DB処理で最適なインデックスが使われないという、Oracle DBでよく問題になるDBチューニングテーマ。 統計情報を固定することで解決する手法は、SQLServer ではできないと思い込んでいましたが、SQLServer にもありました、...
SQL Server 2005

SQLServer のトランザクションログは肥大化する

SQLServerのトランザクションログは、使われていない領域をうまく再利用してくれないのか、SQLServer 2008、SQLServer 2012 とバージョンを問わず、徐々に、どこまでも拡張していきます。 レポート⇒標準レポート⇒デ...
SQL Server 2005

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

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

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

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

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

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

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

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

SQLServerの最新パッチ

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

SQLServer で TO_CHAR と同じことをするには

SQLServer で TO_CHAR と同じことをするには、CONVERTを使います。 int型の「販売金額」を、小数点付きの文字列で返す場合に、CONVERTを使うと以下のようになります。   SELECT CONVERT(VARCHA...
タイトルとURLをコピーしました