SE の雑記

SQL Server の情報をメインに Microsoft 製品の勉強内容を日々投稿

Archive for the ‘SQL Server’ Category

TABLESAMPLE と TOP 句を組み合わせる場合の注意点

leave a comment

以前、TABLESAMPLE 句のデータ取得はどのように動作しているか という投稿をしました。

この TABLESAMPLE と TOP 句を組み合わせる場合の注意点について少し書いてみたいと思います。

Read the rest of this entry »

Written by Masayuki.Ozawa

4月 20th, 2012 at 6:48 pm

Posted in SQL Server

Tagged with

SQL Server 2012 のデッドロック情報の取得について

leave a comment

SQL Server 2008 R2 まではデッドロックが発生した際の情報取得として、トレースフラグ (1204 / 1222) を設定していました。
SQL Server 技術情報 – デッドロックの解決方法
デッドロックの検出と終了
デッドロック調査用の情報採取

SQL Server 2012 では拡張イベントでデッドロックの情報取得がデフォルトで設定されています。

今回は SQL Server 2012 のデッドロック情報の取得について見ていきたいと思います。

Read the rest of this entry »

Written by Masayuki.Ozawa

4月 19th, 2012 at 2:48 pm

Posted in SQL Server

Tagged with ,

統計情報の更新状況の確認

leave a comment

SQL Server のクエリの実行状況に影響する要素として統計情報があります。
統計情報はテーブル内のデータのサンプリングとなり、この情報を使用してどのようなクエリの実行プランを使用すればよいのかを決定していきます。

本番環境と開発環境で実行時間に差が出る、タイミングによって実行時間に差が出る場合、

  1. インデックスの断片化状態の確認
  2. 統計情報の更新状況の確認
  3. 使用されているプランの確認

をすることがあるかと思います。

Read the rest of this entry »

Written by Masayuki.Ozawa

4月 19th, 2012 at 11:52 am

Posted in SQL Server

Tagged with

拡張イベントを使用した待ち時間の多いクエリの取得

leave a comment

SQL Server で実行時に待ち時間の多いクエリを取得する場合、プロファイラや SQL Trace で Duration の多いクエリを取得することがあると思います。
image

SQL Server 2012 は拡張イベントを SSMS から設定できるようになっており、この拡張イベントを使用することでも待ち時間の多いクエリを取得することができます。

今回の投稿では拡張イベントを使用した待ち時間の多いクエリの取得についてまとめていきたいと思います。

Read the rest of this entry »

Written by Masayuki.Ozawa

4月 18th, 2012 at 11:34 pm

Posted in SQL Server

Tagged with ,

SQL Server 2000 のデータベースを SQL Server 2012 に移行

3 comments

SQL Server 2012 では互換性レベルのサポートが [SQL Server 2005 (90)] ~ [SQL Server 2012 (110)] に変更となりました。
image
そのため、SQL Server 2000 の互換性レベルである [SQL Server 2000 (80)] はサポートされなくなっています。
環境によっては SQL Server 2000 のデータベースを最新の 2012 に移行する必要が出てくると思います。

今回の投稿ではデータベースを移行するためのシンプルな方法についてまとめていきたいと思います。

Read the rest of this entry »

Written by Masayuki.Ozawa

4月 18th, 2012 at 10:00 pm

SQL Server 2012 をスリップストリームインストール

4 comments

先日、SQL Server 2012 CU1 の提供が開始されました。

SQL Server 2008 以降はスリップストリームインストールが実装されているので、インストール時に修正プログラムを適用することができます。
SQL Server 2012 のインストールでの製品の更新プログラム

英語の情報だと SQL Server 2012 – CUs are Inevitable (T-SQL Tuesday #29) に既にまとめられていますね。

Read the rest of this entry »

Written by Masayuki.Ozawa

4月 17th, 2012 at 8:16 pm

Posted in SQL Server

Tagged with ,

SQL Server の断片化発生の 2 種類のパターン

leave a comment

SQL Server のデータストレージはデータの追加 / 更新のトレンドによっては断片化が発生し、読み取りの効率が低下していきます。

今回の投稿では断片化が発生する 2 種類のパターンを見ていきたいと思います。

Read the rest of this entry »

Written by Masayuki.Ozawa

4月 16th, 2012 at 10:42 pm

Posted in SQL Server

Tagged with

SQL Server 2012 CU1 の提供が開始されました

one comment

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] は使用できるが非推奨のようです。

Written by Masayuki.Ozawa

4月 13th, 2012 at 5:36 pm

Posted in SQL Server

Tagged with ,

SSMS でストアドプロシージャを実行した際の Cache Miss の発生

leave a comment

SSMS でストアドのコンパイル発生の状況を確認していたところ、実行のたびにパフォーマンスモニタ上でコンパイルが発生していました。

初回の実行時にコンパイルイベントが発生しプランが生成され、2 回目以降はコンパイルイベントが発生していないのは確認をしていたのですが、パフォーマンスモニタのコンパイルに関しては実行のたびにカウンタがあがっている状態でした。

この挙動について少しまとめてみたいと思います。

今回の投稿では以下の情報を参考にさせていただいています。
Cache Miss in Profiler… Continued from another thread..
SQL Server の compile ロックが発生したブロックの説明

Read the rest of this entry »

Written by Masayuki.Ozawa

4月 10th, 2012 at 8:46 pm

Posted in SQL Server

Tagged with

パーティショニング実施時にパーティションキーの有無による検索効率の違い

leave a comment

パーティショニングをしているときにパーティションキーを WHERE に含めている場合の検索効率の違いについてまとめてみたいと思います。

Read the rest of this entry »

Written by Masayuki.Ozawa

4月 10th, 2012 at 3:16 pm

Posted in SQL Server

Tagged with