SQL パフォーマンス チューニング ~ パフォーマンス改善 最初の一歩 ~
パフォーマンスに関する悩み デモ まとめ 概要 シナリオ 1: インデックスの設定 シナリオ 2: 統計情報の更新 シナリオ 3: 断片化の解消 まとめ
パフォーマンスに関する悩み 開発においてパフォーマンスが向上しない → 適切なインデックスの設定 運用においてパフォーマンスが低下してきた → 適切なインデックスの設定 運用においてパフォーマンスが低下してきた → 統計情報の更新 → 断片化の解消 今回はクエリレベルでのチューニングについて説明する
デモ シナリオの流れ Management Studio からクエリを実行 下記オプションを使用して実行時の情報を確認 対処を実施 下記オプションを使用して実行時の情報を確認 SET STATISTICS IO SET STATISTICS PROFILE SET STATISTICS TIME 対処を実施 ここでデモ クラスタ化インデックスを追加する
シナリオ 1: インデックスの設定 クラスタ化インデックス未設定 (ヒープ) クラスタ化インデックスの設定 Table Scan データページ Table Scan 読み取りページ数 : 多い クラスタ化インデックスの設定 リーフノード ここでデモ クラスタ化インデックスを追加する Clustered Index Seek 読み取りページ数 : 少ない
シナリオ 1: インデックスの設定 クエリを実行 実行プランを確認 インデックスを設定 クエリを実行して効果を確認 ここでデモ クラスタ化インデックスを追加する
シナリオ 2: 統計情報の更新 古い統計情報 統計情報更新 Clustered Index Seek 読み取りページ数 : 多い Clustered Index Scan 読み取りページ数 : 少ない ここでデモ 統計情報を更新する
シナリオ 2: 統計情報の更新 統計情報の自動更新を OFF にしてデータ挿入 クエリを実行 統計情報を確認 統計情報を更新 クエリを実行して効果を確認 ここでデモ 統計情報を更新する
シナリオ 3: 断片化の解消 断片化 断片化解消 Clustered Index Scan 読み取りページ数 : 多い 読み取りページ数 : 少ない ここでデモ インデックスの再構築を行う
シナリオ 3: 断片化の解消 断片化を作成 クエリを実行 断片化情報を確認 対処策としてインデックスの再構築 クエリを実行して効果を確認 ここでデモ インデックスの再構築を行う
まとめ インデックスの設定 統計情報の更新 断片化の解消 create clustered index データベース エンジン チューニング アドバイザ 統計情報の更新 update statistics 断片化の解消 alter index reorganize alter index rebuild
参考情報 パフォーマンスの監視およびチューニングの概要 http://msdn.microsoft.com/ja-jp/library/ms189303.aspx データベース エンジン チューニング アドバイザの使用 http://msdn.microsoft.com/ja-jp/library/bb500296.aspx クエリのパフォーマンスを向上させるための統計の使用 http://msdn.microsoft.com/ja-jp/library/ms190397.aspx インデックスの再編成と再構築 http://msdn.microsoft.com/ja-jp/library/ms189858.aspx
Ihr Potenzial. Unser Antrieb.