[[Open棟梁Project>http://opentouryo.osscons.jp/]] - [[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]] -[[戻る>SQL Server]] * 目次 [#kd0f1dc8] #contents *概要 [#jae2fdc4] ディスクI/Oを減らす系の作業が多い。 *メンテナンス プラン [#xb19bf31] -メンテナンス プランの作成~ https://msdn.microsoft.com/ja-jp/library/ms187658.aspx **[[インデックスの再構築・デフラグ]] [#sb4ace54] **[[空ページを削除し、データ ファイルを圧縮>データ ファイルの圧縮と拡張#we445ebc]] [#na2be50f] **[[インデックス統計を更新>SQL Server のオプティマイザ]] [#q5eac4ed] **内部一貫性チェック [#c49b9a80] SQL Serverでは、「DBCC CHECKDB」ステートメントを使用して、~ 指定されたDB内の、すべてのDBオブジェクトの割り当てと構造的整合性を~ チェック、修復することができる。 ***DBCC CHECKDB [#f38ddf88] -オンラインでの実行 --「DBCC CHECKDB」ステートメントは、スキーマ ロックを保持する。 --スキーマ ロックとのロックの互換性から、~ オンライン操作(DMLステートメント)は許可されるが、~ DDLステートメントは許可されないので注意する。 -処理の負荷 --「DBCC CHECKDB」ステートメントは、CPU とディスクに大きな負担がかかる。 --まず、チェックする「データ ページ」が、メモリに読み込まれなければならない。 --その上、tempdbを使用してデータを並べ替える。 --また、ログの読み取りが終了するまで~ 「トランザクション ログ」の切り捨てをブロックするため、~ 「DBCC CHECKDB」ステートメントの実行中にトランザクションを~ 活発に実行すると、「トランザクション ログ」が増大し続ける。 -このため、サーバの負荷が軽い時間帯に、~ 「DBCC CHECKDB」ステートメントを実行することが推奨される。 -オンライン処理の性能に影響を与えないための推奨事項 --システムの使用率が低いときに実行する。 --他のディスク I/O 操作を実行していないことを確認する。 --tempdb を別のディスク システム、または高速なディスク サブシステムに配置する。 --tempdb が拡張できるように、ドライブに十分な空き領域を用意する。 --オプション ---「ESTIMATE ONLY」オプション~ tempdbに必要な空き領域のサイズを見積もる。 ---「NO_INFOMSGS」オプション~ 処理量とtempdbの使用率を減らす。 ---「PHYSICAL_ONLY」オプション~ チェック内容を、DBの物理的一貫性のみの~ 低オーバー ヘッド チェックに変更する。 **[[バックアップ>SQL Server のバックアップ]] [#yc2872f4] *データ圧縮 [#r4ac03f9] パーティション毎、異なる圧縮オプションを使用できる。 -ページ圧縮 -行圧縮 --プレフィックスの圧縮 --辞書の圧縮 ディスクI/Oを減らすが、CPU時間は増える。 *チューニング [#s2c9104c] ディスク・コントローラのI/O性能をフル活用する。 **RAID、ディスク・レイアウトなど。 [#gc789add] -[[RAID]] -[[ディスク・レイアウト>SQL Server のファイルの配置]] **[[ファイル・グループに分割・配置>SQL Server のファイル・グループ]] [#gf4e58ac] **[[データのパーティション分割>SQL Server パーティション分割]] [#afa2fd98] **[[インデックス見直し>SQL Server 問題の分析方法#b2d9fa8c]] [#s8051ed7] **[[スパース列>https://msdn.microsoft.com/ja-jp/library/Cc280604.aspx]]として設定 [#c0ed1001] *監視 [#q2b80ad8] 問題を監視する。 -定常的 --[[サーバーの監視]] --[[ログの監視>SQL Server のログ]] --[[SQLプロファイラ(SQLトレース)]] --データベースのサイズの監視(アーカイブなど) -[[インシデント>SQL Server#i20a1481]] --[[SQL Server 問題の分析方法]] --.etc *その他 [#scbff02a] -[[SQL Server パーティション分割]]~ 並列クエリによる性能向上も可能だが、主に保守・運用時時のデータ・メンテナンス性能に効果を発揮。 -シャーディング --オンライン性能向上であれば、分割キーによるシャーディングを検討。 --データベース シャーディングの基本~ https://msdn.microsoft.com/ja-jp/library/azure/dn764982.aspx