]追加された行はこの色です。削除された行はこの色です。.NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。パーティション分割の効果について説明する。-構成--「パーティション分割」は、テーブル上の特定の列を「パーティション分割列」として指定し、この列の範囲をキーにして、~行データを特定の「[[ファイル・グループ>#e68a346c]]」にマップされる「パーティション」に振り分ける機能である。インデックス」と呼ぶ。インデックス」は1つの論理エンティティとして扱われる。---標準的なテーブル・インデックスの設計とクエリに関連する、すべてのプロパティと機能がサポートされる。サブセットに対するアクセス性能の向上、管理の効率化を図ることができる。Serverでは、1つのテーブルに最大1000個の「パーティション」を作成できる。-効果--主に運用系性能(インデックスのデフラグ・再構築、データのアーカイブ)の向上が可能。アクセス性能(並列クエリ、スキャン局所化、テーブル結合、ロック局所化)も改善する。サブセットを管理するのに適切であるかどうかによって決定される。[#kfdc5274]「[[パーティション関数>#q05a8055]]」により指定される。キーとして使用できるデータ型の列を使用できる。上記の「パーティション関数」(partition_function_name)では、~指定の型(input_parameter_type)の「パーティション分割列」に~格納された値に基づき「パーティション分割」を行う。LEFTより、RIGHTを指定することが推奨される。列の値の4つの「パーティション」に分割される。[#v607bef2]双方の関係は以下のようになる。-「パーティション」は「[[ファイル・グループ>#e68a346c]]」を跨ぐことはできない。-1つの「パーティション」を、1つの「[[ファイル・グループ>#e68a346c]]」にマップする。-いくつかの「パーティション」を、1つの「[[ファイル・グループ>#e68a346c]]」にマップする。-すべての「パーティション」を、1つの「[[ファイル・グループ>#e68a346c]]」にマップする。[#o35d89e1]「パーティション関数」の「パーティション分割」で指定された「パーティション」と、~「[[ファイル・グループ>#e68a346c]]」のマップを指定して、「パーティション構成」を定義する。);上記の「パーティション構成」の定義では、-「パーティション関数」で分割した「パーティション」を、-リストに指定した「[[ファイル・グループ>#e68a346c]]」の順にマップする。「パーティション構成」で使用できる「パーティション関数」は1つのみ。1つの「パーティション関数」は、複数の「パーティション構成」で使用できる。テーブル」を作成する。テーブル」を作成する。インデックス」を作成する。インデックス」を作成する。ファイル・グループ#z5226928]]」が以下の性能向上を図ることができる。テーブル」に「固定」する必要がある。スキャンの効果により、範囲スキャン検索の性能が向上する。--ロック局所化の効果により、更新処理の同時実行性が向上する。スキャン、ロック局所化は「適切に設計された」OLTPアプリケーションを大きく性能向上させるものではない。テーブル」に「固定」する必要はない。ロックに直接エスカレートする。ロックにエスカレートされる。エスカレーションに~留めることで、ロック待ちを少なくし、同時実効性を向上できるようになった。インデックス」を付与しておく)。結合されるため、メモリを節約し、処理時間が短縮される。[#w082fffa]パーティション分割によって、クエリ性能が劣化するケースもあるもよう。雑記>http://engineermemo.wordpress.com/2012/04/10/%E3%83%91%E3%83%BC%E3%83%86%E3%82%A3%E3%82%B7%E3%83%A7%E3%83%8B%E3%83%B3%E3%82%B0%E5%AE%9F%E6%96%BD%E6%99%82%E3%81%AB%E3%83%91%E3%83%BC%E3%83%86%E3%82%A3%E3%82%B7%E3%83%A7%E3%83%B3%E3%82%AD%E3%83%BC/]]>パーティショニングによって読み取り数(アクセスされたパーティション数)が変わってくる(大きくなる)ケースがある。~ただし、パーティションキーを含めた検索では、読み取り数は大きくならないとなっている。グラフィカル実行プラン出力を使用して調べることができる。「パーティション」毎に可能となり、~-保守・運用中のデータ管理タスクの性能が向上したり、より簡単になったりする。-これらの機能は、24時間止められないシステムなどで特に有効となる。ウインドウ」と呼ばれる操作が可能である。-スイッチ機能を使用(例:稼働テーブルからアーカイブ・テーブルへスイッチ)。-スイッチ機能は、内部的なポインタ変更のみで完了するので、高速な処理が可能である。ウインドウ」操作は、次の手順で行われる。インデックス」~を同じ「パーティション構成」で作成。--次に(アーカイブのために)~新規作成する「パーティション」で使用する、~新規「[[ファイル・グループ>#e68a346c]]」を追加。テーブルに--新規「パーティション」で使用する「[[ファイル・グループ>#e68a346c]]」を指定。--「パーティション」境界を追加し、新規「パーティション」を分割作成。-稼動テーブルからアーカイブテーブルに、最も古い「パーティション」のデータをスイッチ。--稼動テーブルへ、スイッチした「パーティション」が対象となるデータ挿入を禁止する制約を追加。--「パーティション」が増えてきたら、「パーティション」境界を消去して「パーティション」をマージする。ウインドウ」操作の注意点を纏める。-スイッチ操作は、同じ「[[ファイル・グループ>#e68a346c]]」に属した「パーティション」同士で行う。テーブルの「パーティション」と「[[ファイル・グループ>#e68a346c]]」の対応を、~まったく同じにするか、双方とも1つの「[[ファイル・グループ>#e68a346c]]」のみで「パーティション分割」する。テーブルの「パーティション」と「[[ファイル・グループ>#e68a346c]]」の対応を~"まったく"同じにし、複数の「[[ファイル・グループ>#e68a346c]]」で実装することを推奨する。テーブル」は、同じデータ圧縮設定にしておく。テーブル」に「固定」しておく。詳細は、[[自習書>#y2c7a50a]]を参照。[#m25ec4d1]-並列クエリは、クエリ実行だけでなく、デフラグや再構築のインデックス操作にも適用される。テーブル」に「固定」しておく。INDEXステートメントのREBUILD、REORGANIZEに「パーティション番号」を指定して使用する。INDEXDEFRAGと同じ機能。DBREINDEXについては「パーティション番号」を指定する引数が存在しない。-パーティション分割は、テーブルだけでなく、インデックスにも適用できる。インデックス」と呼ぶ。テーブル」を必要としない。インデックス」を実装できる。テーブル」に「固定」する。テーブル」に「固定」する動作をとる。テーブル」に「固定」する必要がある。インデックス(一意性制約)を保証する必要がある。ウインドウ)>#v9b43c08]]」が可能になる。テーブル」に「固定」~することにより、「[[併置結合によるテーブル結合>#xc94981e]]」が可能になる。テーブル」の「パーティション構成」から独立して実装できる。インデックス」の作成についての考慮事項について、以下に纏める。インデックス(一意性制約)でない~「クラスタ化インデックス」を「パーティション分割」する場合、~クラスタ化キーに「[[パーティション分割列>#i717ecca]]」を指定しないことも可能である。Server(のGUI)は、~既定でクラスタ化キーの一覧に「パーティション分割列」を追加する。インデックス(一意性制約)でない~「非クラスタ化インデックス」を「パーティション分割」する場合、~キーに「[[パーティション分割列>#i717ecca]]」を指定しないことも可能である。インデックス#oe7890bb]]として「[[パーティション分割列>#i717ecca]]」を追加する。テーブル」上にインデックスを作成する際、-並べ替えテーブルは、始めに「パーティション」毎に、メモリ上に作成される。-次に、「パーティション」毎に、「[[ファイル・グループ>#e68a346c]]」のファイル上に作成される。インデックス」の作成を実行する場合、--並べ替えテーブルは、メモリ上に一つずつ作成されるのでメモリの消費を抑えることができる。テーブル」に「固定」されない各種インデックスの作成を実行する場合、--並べ替えテーブルは複数同時に作成されるのでメモリの消費が多くなる。テーブル」に「固定」されない各種インデックスを作成するには、~4,000ページを同時に並べ替えることができる32MBのメモリを消費する。テーブル」に「固定」されない各種インデックスの作成を実行する場合、~メモリの要件がさらに高くなる場合がある。16,000ページ分の、128MBのメモリを消費する。キャッシュの枯渇や、ページングの発生などに起因して、~インデックス作成の性能が低下する場合がある。オプションを使用して、~「並列処理」のスレッドを減らすことができる。FUNCTIONの削除はできないようです。(Transact-SQL)~https://msdn.microsoft.com/ja-jp/library/ms187759.aspx>パーティション関数を削除できるのは、対象となるパーティション関数が、現在どのパーティション構成でも使用されていない場合のみです。テーブルのパーティション関数を変更します。インデックスとして再構築しても同じ結果を得られます。上記(1)or(2)でのみ、削除可能なもよう。