以前、TABLESAMPLE 句のデータ取得はどのように動作しているか という投稿をしました。
この TABLESAMPLE と TOP 句を組み合わせる場合の注意点について少し書いてみたいと思います。
SQL Server の情報をメインに Microsoft 製品の勉強内容を日々投稿
以前、TABLESAMPLE 句のデータ取得はどのように動作しているか という投稿をしました。
この TABLESAMPLE と TOP 句を組み合わせる場合の注意点について少し書いてみたいと思います。
SQL Server 2008 R2 まではデッドロックが発生した際の情報取得として、トレースフラグ (1204 / 1222) を設定していました。
SQL Server 技術情報 – デッドロックの解決方法
デッドロックの検出と終了
デッドロック調査用の情報採取
SQL Server 2012 では拡張イベントでデッドロックの情報取得がデフォルトで設定されています。
今回は SQL Server 2012 のデッドロック情報の取得について見ていきたいと思います。
SQL Server のクエリの実行状況に影響する要素として統計情報があります。
統計情報はテーブル内のデータのサンプリングとなり、この情報を使用してどのようなクエリの実行プランを使用すればよいのかを決定していきます。
本番環境と開発環境で実行時間に差が出る、タイミングによって実行時間に差が出る場合、
をすることがあるかと思います。
先日、SQL Server 2012 CU1 の提供が開始されました。
SQL Server 2008 以降はスリップストリームインストールが実装されているので、インストール時に修正プログラムを適用することができます。
SQL Server 2012 のインストールでの製品の更新プログラム
英語の情報だと SQL Server 2012 – CUs are Inevitable (T-SQL Tuesday #29) に既にまとめられていますね。
SQL Server のデータストレージはデータの追加 / 更新のトレンドによっては断片化が発生し、読み取りの効率が低下していきます。
今回の投稿では断片化が発生する 2 種類のパターンを見ていきたいと思います。
SQL Server 2012 CU1 の提供が開始されました。
Cumulative update package 1 for SQL Server 2012
以下の KB も公開されましたので、定期的に見ておくとよさそうですね。
The SQL Server 2012 builds that were released after SQL Server 2012 was released
SQL Server 2012 はスリップストリームインストールが可能ですので、インストール時に修正プログラムを合わせて適用したい場合にはこちらが参考になります。
SQL Server 2012 のインストールでの製品の更新プログラム
SQL Server 2012 では 2008 R2 までのオプションと異なり、[UpdateSource] が推奨されていますので従来までと修正プログラムの指定が変わっています。
SQL Server 2012 の非推奨 SQL Server 機能 によると従来までの [PCUSource] [CUSource] は使用できるが非推奨のようです。
SSMS でストアドのコンパイル発生の状況を確認していたところ、実行のたびにパフォーマンスモニタ上でコンパイルが発生していました。
初回の実行時にコンパイルイベントが発生しプランが生成され、2 回目以降はコンパイルイベントが発生していないのは確認をしていたのですが、パフォーマンスモニタのコンパイルに関しては実行のたびにカウンタがあがっている状態でした。
この挙動について少しまとめてみたいと思います。
今回の投稿では以下の情報を参考にさせていただいています。
Cache Miss in Profiler… Continued from another thread..
SQL Server の compile ロックが発生したブロックの説明
パーティショニングをしているときにパーティションキーを WHERE に含めている場合の検索効率の違いについてまとめてみたいと思います。