SQL パフォーマンス チューニング ~ パフォーマンス改善 最初の一歩 ~ 概要 パフォーマンスに関する悩み デモ シナリオ 1: インデックスの設定 シナリオ 2: 統計情報の更新 シナリオ 3: 断片化の解消 まとめ パフォーマンスに関する悩み 開発においてパフォーマンスが向上しない → 適切なインデックスの設定 運用においてパフォーマンスが低下してきた → 統計情報の更新 → 断片化の解消 デモ シナリオの流れ Management Studio からクエリを実行 下記オプションを使用して実行時の情報を確認 SET STATISTICS IO SET STATISTICS PROFILE SET STATISTICS TIME 対処を実施 シナリオ 1: インデックスの設定 クラスタ化インデックス未設定 (ヒープ) Table Scan 読み取りページ数 : 多い データページ クラスタ化インデックスの設定 Clustered Index Seek 読み取りページ数 : 少ない リーフノード シナリオ 1: インデックスの設定 1. クエリを実行 2. 実行プランを確認 3. インデックスを設定 4. クエリを実行して効果を確認 シナリオ 2: 統計情報の更新 古い統計情報 Clustered Index Seek 読み取りページ数 : 多い 統計情報更新 Clustered Index Scan 読み取りページ数 : 少ない シナリオ 2: 統計情報の更新 1. 統計情報の自動更新を OFF にしてデータ挿入 2. クエリを実行 3. 統計情報を確認 4. 統計情報を更新 5. クエリを実行して効果を確認 シナリオ 3: 断片化の解消 断片化 Clustered Index Scan 読み取りページ数 : 多い 断片化解消 Clustered Index Scan 読み取りページ数 : 少ない シナリオ 3: 断片化の解消 1. 断片化を作成 2. クエリを実行 3. 断片化情報を確認 4. 対処策としてインデックスの再構築 5. クエリを実行して効果を確認 まとめ インデックスの設定 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
© Copyright 2025 ExpyDoc