パーティション テーブルとパーティション インデックスの作成Create Partitioned Tables and Indexes

適用対象: ○SQL Server ○Azure SQL Database XAzure SQL Data Warehouse XParallel Data WarehouseAPPLIES TO: yesSQL Server yesAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

SQL Server 2017SQL Server 2017 では、 SQL Server Management StudioSQL Server Management Studio または Transact-SQLTransact-SQLを使用して、パーティション テーブルまたはパーティション インデックスを作成できます。You can create a partitioned table or index in SQL Server 2017SQL Server 2017 by using SQL Server Management StudioSQL Server Management Studio or Transact-SQLTransact-SQL. パーティション テーブルとパーティション インデックスのデータは、データベース内の複数のファイル グループに分散できるように、行方向に複数の単位に分割されています。The data in partitioned tables and indexes is horizontally divided into units that can be spread across more than one filegroup in a database. パーティション分割により、大規模なテーブルとインデックスの管理の可能性と拡張性が向上します。Partitioning can make large tables and indexes more manageable and scalable.

一般に、パーティション テーブルまたはパーティション インデックスの作成は、次の 4 つの操作で構成されます。Creating a partitioned table or index typically happens in four parts:

  1. ファイル グループと、パーティション構成で指定されたパーティションを保持する対応するファイルを作成します。Create a filegroup or filegroups and corresponding files that will hold the partitions specified by the partition scheme.

  2. テーブルまたはインデックスの行を指定された列の値に基づいてパーティションにマップするパーティション関数を作成します。Create a partition function that maps the rows of a table or index into partitions based on the values of a specified column.

  3. パーティション テーブルまたはパーティション インデックスのパーティションを新しいファイル グループにマップするパーティション構成を作成します。Create a partition scheme that maps the partitions of a partitioned table or index to the new filegroups.

  4. テーブルまたはインデックスを作成または変更し、格納場所としてそのパーティション構成を指定します。Create or modify a table or index and specify the partition scheme as the storage location.

このトピックの内容In This Topic

はじめにBefore You Begin

制限事項と制約事項Limitations and Restrictions

  • パーティション関数および構成のスコープは、それが作成されたデータベースに制限されます。The scope of a partition function and scheme is limited to the database in which they have been created. データベース内では、パーティション関数は他の関数とは別の名前空間に配置されます。Within the database, partition functions reside in a separate namespace from other functions.

  • パーティション関数内のいずれかの行に null 値を持つパーティション分割列がある場合、これらの行は左端のパーティションに割り当てられます。If any rows within a partition function have partitioning columns with null values, these rows are allocated to the left-most partition. ただし、NULL が境界値として指定され、RIGHT が指定されている場合、NULL 値は左端のパーティションを空にしたまま 2 番目のパーティションに配置されます。However, if NULL is specified as a boundary value and RIGHT is indicated, the left-most partition remains empty and NULL values are placed in the second partition.

セキュリティSecurity

PermissionsPermissions

パーティション テーブルを作成するには、データベースでの CREATE TABLE 権限と、テーブルを作成する構成に対する ALTER 権限が必要です。Creating a partitioned table requires CREATE TABLE permission in the database and ALTER permission on the schema in which the table is being created. パーティション インデックスを作成するには、インデックスを作成するテーブルまたはビューに対する ALTER 権限が必要です。Creating a partitioned index requires ALTER permission on the table or view where the index is being created. パーティション テーブルまたはパーティション インデックスを作成するには、次の追加の権限のいずれかが必要です。Creating either a partitioned table or index requires any one of the following additional permissions:

  • ALTER ANY DATASPACE 権限。ALTER ANY DATASPACE permission. この権限は、既定では sysadmin 固定サーバー ロール、 db_owner 固定データベース ロール、および db_ddladmin 固定データベース ロールのメンバーに与えられています。This permission defaults to members of the sysadmin fixed server role and the db_owner and db_ddladmin fixed database roles.

  • パーティション関数およびパーティション構成を作成するデータベースに対する CONTROL 権限または ALTER 権限。CONTROL or ALTER permission on the database in which the partition function and partition scheme are being created.

  • パーティション関数およびパーティション構成を作成するデータベースのサーバーに対する CONTROL SERVER 権限または ALTER ANY DATABASE 権限。CONTROL SERVER or ALTER ANY DATABASE permission on the server of the database in which the partition function and partition scheme are being created.

SQL Server Management Studio の使用Using SQL Server Management Studio

次の手順を実行して、1 つまたは複数のファイル グループ、対応するファイルと、およびテーブルを作成します。Follow the steps in this procedure to create one or more filegroups, corresponding files, and a table. これらのオブジェクトは、次の手順でパーティション テーブルを作成するときに参照します。You will reference these objects in the next procedure when you create the partitioned table.

パーティション テーブルの新しいファイル グループを作成するにはTo create new filegroups for a partitioned table

  1. オブジェクト エクスプローラーで、パーティション テーブルを作成するデータベースを右クリックし、 [プロパティ] を選択します。In Object Explorer, right-click the database in which you want to create a partitioned table and select Properties.

  2. [データベースのプロパティ - database_name] ダイアログ ボックスの [ページの選択] で、[ファイル グループ] を選択します。In the Database Properties - database_name dialog box, under Select a page, select Filegroups.

  3. [行] で、 [追加] をクリックします。Under Rows, click Add. 新しい行に、ファイル グループ名を入力します。In the new row, enter the filegroup name.

    警告

    パーティションを作成するときは常に、境界値に指定されたファイル グループの数より 1 つ多い数のファイル グループが必要です。You must always have one extra filegroup in addition to the number of filegroups specified for the boundary values when you are creating partitions.

  4. 行の追加を繰り返して、パーティション テーブルのすべてのファイル グループを作成します。Continue adding rows until you have created all of the filegroups for the partitioned table.

  5. [OK] をクリックします。Click OK.

  6. [ページの選択] で、 [ファイル] を選択します。Under Select a page, select Files.

  7. [行] で、 [追加] をクリックします。Under Rows, click Add. 新しい行にファイル名を入力し、ファイル グループを選択します。In the new row, enter a filename and select a filegroup.

  8. 行の追加を繰り返して、各ファイル グループに少なくとも 1 つのファイルを作成します。Continue adding rows until you have created at least one file for each filegroup.

  9. [テーブル] フォルダーを展開し、通常と同じようにテーブルを作成します。Expand the Tables folder and create a table as you normally would. 詳しくは、「テーブルの作成 (データベース エンジン)」をご覧ください。For more information, see Create Tables (Database Engine). または、次の手順で既存のテーブルを指定することもできます。Alternatively, you can specify an existing table in the next procedure.

パーティション テーブルを作成するにはTo create a partitioned table

  1. パーティション分割するテーブルを右クリックし、[ストレージ] をポイントします。次に、[パーティションの作成] をクリックします。Right-click the table that you wish to partition, point to Storage, and then click Create Partition....

  2. パーティションの作成ウィザード[パーティションの作成ウィザードへようこそ] ページで、 [次へ] をクリックします。In the Create Partition Wizard, on the Welcome to the Create Partition Wizard page, click Next.

  3. [パーティション分割列の選択] ページの [使用可能なパーティション分割列] グリッドで、テーブルのパーティション分割に使用する列を選択します。On the Select a Partitioning Column page, in the Available partitioning columns grid, select the column on which you want to partition your table. [使用可能なパーティション分割列] グリッドには、データのパーティション分割に使用できるデータ型の列だけが表示されます。Only columns with data types that can be used to partition data will be displayed in the Available partitioning columns grid. 計算列をパーティション分割列として選択する場合は、列を PERSISTED として指定する必要があります。If you select a computed column as the partitioning column, the column must be designated as a persisted column.

    パーティション分割列とその値の範囲の選択肢は、主に、データをどの程度論理的にグループ化できるかによって決まります。The choices you have for the partitioning column and the values range are determined primarily by the extent to which your data can be grouped in a logical way. たとえば、月や四半期に基づいてデータを論理グループに分割することができます。For example, you may choose to divide your data into logical groupings by months or quarters of a year. この論理グループがテーブル パーティションの管理に適しているかどうかは、データに対してどのようなクエリを実行する予定かによって決まります。The queries you plan to make against your data will determine whether this logical grouping is adequate for managing your table partitions. すべてのデータ型は、 textntextimagexmltimestampvarchar(max)nvarchar(max)varbinary(max)、別名データ型、または CLR ユーザー定義データ型を除いて、列を分割して使用することができます。All data types are valid for use as partitioning columns, except text, ntext, image, xml, timestamp, varchar(max), nvarchar(max), varbinary(max), alias data types, or CLR user-defined data types.

    このページで使用できる他のオプションを次に示します。The following additional options are available on this page:

    [このテーブルを選択したパーティション テーブルに併置する]Collocate this table to the selected partitioned table
    パーティション分割列でこのテーブルと連結する関連データが含まれている、パーティション テーブルを選択できます。Allows you to select a partitioned table that contains related data to join with this table on the partitioning column. 通常、テーブルのパーティションをパーティション分割列で連結すると、クエリの効率が向上します。Tables with partitions joined on the partitioning columns are typically queried more efficiently.

    [一意でないインデックスと一意のインデックスをインデックス付きパーティション列にストレージ固定]Storage-align non-unique indexes and unique indexes with an indexed partition column
    同じパーティション構成でパーティション分割されたテーブルのすべてのインデックスを固定します。Aligns all indexes of the table that are partitioned with the same partition scheme. テーブルとインデックスを固定すると、データが同じアルゴリズムでパーティション分割されるため、パーティションをパーティション テーブル内外に効果的に移動できるようになります。When a table and its indexes are aligned, you can move partitions in and out of partitioned tables more effectively, because your data is partitioned with the same algorithm.

    パーティション分割列とその他のオプションを選択したら、 [次へ] をクリックします。After selecting the partitioning column and any other options, click Next.

  4. [パーティション関数の選択] ページの [パーティション関数の選択] で、 [新しいパーティション関数] または [既存のパーティション関数] をクリックします。On the Select a Partition Function page, under Select partition function, click either New partition function or Existing partition function. [新しいパーティション関数] を選択した場合は、関数の名前を入力します。If you choose New partition function, enter the name of the function. [既存のパーティション関数] を選択した場合は、使用する関数の名前を一覧から選択します。If you choose Existing partition function, select the name of the function you'd like to use from the list. データベースに他のパーティション関数がない場合、 [既存のパーティション関数] オプションは使用できません。The Existing partition function option will not be available if there are no other partition functions on the database.

    このページを完了したら、 [次へ] をクリックします。After completing this page, click Next.

  5. [パーティション構成の選択] ページの [パーティション構成の選択] で、 [新しいパーティション構成] または [既存のパーティション構成] をクリックします。On the Select a Partition Scheme page, under Select partition scheme, click either New partition scheme or Existing partition scheme. [新しいパーティション構成] を選択した場合は、構成の名前を入力します。If you choose New partition scheme, enter the name of the scheme. [既存のパーティション構成] を選択した場合は、使用する構成の名前を一覧から選択します。If you choose Existing partition scheme, select the name of the scheme you'd like to use from the list. データベースに他のパーティション構成がない場合、 [既存のパーティション構成] オプションは使用できません。The Existing partition scheme option will not be available if there are no other partition schemes on the database.

    このページを完了したら、 [次へ] をクリックします。After completing this page, click Next.

  6. [パーティションのマップ] ページの [範囲] で、 [左側の境界] または [右側の境界] を選択して、作成する各ファイル グループ内に最大または最小の境界値を含めるかどうかを指定します。On the Map Partitions page, under Range, select either Left boundary or Right boundary to specify whether to include the highest or lowest bounding value within each filegroup you create. パーティションを作成するときは常に、境界値に指定されたファイル グループの数に 1 つ余分なファイル グループを足した数を入力する必要があります。You must always enter one extra filegroup in addition to the number of filegroups specified for the boundary values when you are creating partitions.

    [ファイル グループを選択して境界値を指定します] グリッドの [ファイル グループ] で、データをパーティション分割するファイル グループを選択します。In the Select filegroups and specify boundary values grid, under Filegroup, select the filegroup into which you want to partition your data. [境界] で、各ファイル グループの境界値を入力します。Under Boundary, enter the boundary value for each filegroup. 境界値を空にした場合、パーティション関数は、パーティション関数名を使用して、テーブルまたはインデックス全体を単一のパーティションにマップします。If boundary value is left empty, the partition function maps the whole table or index into a single partition using the partition function name.

    このページで使用できる他のオプションを次に示します。The following additional options are available on this page:

    [境界の設定]Set Boundaries...
    [境界値の設定] ダイアログ ボックスを開き、パーティションの境界値と日付範囲を選択します。Opens the Set Boundary Values dialog box to select the boundary values and date ranges you want for your partitions. このオプションは、 datedatetimesmalldatetimedatetime2、または datetimeoffsetのいずれかのデータ型を含むパーティション分割列を選択した場合にのみ使用できます。This option is only available when you have selected a partitioning column that contains one of the following data types: date, datetime, smalldatetime, datetime2, or datetimeoffset.

    [ストレージの推定]Estimate storage
    パーティションに指定された各ファイル グループのストレージの行数、必要な領域、および使用できる領域を推定します。Estimates rowcount, required space, and available space for storage for each filegroup specified for the partitions. これらの値は、読み取り専用の値としてグリッドに表示されます。These values are displayed in the grid as read-only values.

    [境界値の設定] ダイアログ ボックスでは、次の追加オプションを設定できます。The Set Boundary Values dialog box allows for the following additional options:

    開始日Start date
    パーティションの範囲値の開始日を選択します。Selects the starting date for the range values of your partitions.

    終了日End date
    パーティションの範囲値の終了日を選択します。Selects the ending date for the range values of your partitions. [パーティションのマップ] ページで [左側の境界] を選択した場合、この日付は、各ファイル グループまたはパーティションの最後の値になります。If you selected Left boundary on the Map Partitions page, this date will be the last value for each filegroup/partition. [パーティションのマップ] ページで [右側の境界] を選択した場合、この日付は、最後から 2 番目のファイル グループの最初の値になります。If you selected Right boundary on the Map Partitions page, this date will be the first value in the next-to-last filegroup.

    日付範囲Date range
    各パーティションの日付粒度または範囲値の増分を選択します。Selects the date granularity or range value increment you want for each partition.

    このページを完了したら、 [次へ] をクリックします。After completing this page, click Next.

  7. [出力オプションの選択] ページで、パーティション テーブルを完了する方法を指定します。In the Select an Output Option page, specify how you want to complete your partitioned table. ウィザードの前のページに基づいて SQL スクリプトを作成するには、 [スクリプトの作成] を選択します。Select Create Script to create a SQL script based the previous pages in the wizard. ウィザードの残りのすべてのページが完了した後に新しいパーティション テーブルを作成するには、 [すぐに実行する] を選択します。Select Run immediately to create the new partitioned table after completing all remaining pages in the wizard. 事前に定義した時刻に新しいパーティション テーブルを作成するには、 [スケジュール] を選択します。Select Schedule to create the new partitioned table at a predetermined time in the future.

    [スクリプトの作成] を選択した場合、 [スクリプト オプション] で次のオプションを使用できます。If you select Create script, the following options are available under Script options:

    [スクリプトをファイルに保存]Script to file
    スクリプトを .sql ファイルとして生成します。Generates the script as a .sql file. [ファイル名] ボックスにファイルの名前と場所を入力するか、または [参照] をクリックして [スクリプト ファイルの場所] ダイアログ ボックスを開きます。Enter a file name and location in the File name box or click Browse to open the Script File Location dialog box. [名前を付けて保存] で、 [Unicode テキスト] または [ANSI テキスト] を選択します。From Save As, select Unicode text or ANSI text.

    [スクリプトをクリップボードに保存]Script to Clipboard
    スクリプトをクリップボードに保存します。Saves the script to the Clipboard.

    [スクリプトを新しいクエリ ウィンドウに保存]Script to New Query Window
    新しいクエリ エディター ウィンドウにスクリプトを生成します。Generates the script to a new Query Editor window. これは既定値です。This is the default selection.

    [スケジュール] を選択した場合は、 [スケジュールの変更] をクリックします。If you select Schedule, click Change schedule.

    1. [新しいジョブ スケジュール] ダイアログ ボックスで、[名前] ボックスに、ジョブのスケジュールの名前を入力します。In the New Job Schedule dialog box, in the Name box, enter the job schedule's name.

    2. [スケジュールの種類] ボックスで、スケジュールの種類を選択します。On the Schedule type list, select the type of schedule:

      • [SQL Server エージェントの開始時に自動的に開始]Start automatically when SQL Server Agent starts

      • [CPU がアイドル状態になったときに開始]Start whenever the CPUs become idle

      • [定期的]Recurring. 新しいパーティション テーブルを新しい情報で定期的に更新するには、このオプションを選択します。Select this option if your new partitioned table updates with new information on a regular basis.

      • [指定日時]One time. これは既定値です。This is the default selection.

    3. [有効] チェック ボックスをオンまたはオフにして、スケジュールを有効または無効にします。Select or clear the Enabled check box to enable or disable the schedule.

    4. [定期的] を選択した場合:If you select Recurring:

      1. [頻度][実行] ボックスの一覧で、実行の頻度を指定します。Under Frequency, on the Occurs list, specify the frequency of occurrence:

        • [日単位] を選択した場合は、 [間隔] ボックスに、ジョブ スケジュールを繰り返す頻度を日単位で入力します。If you select Daily, in the Recurs every box, enter how often the job schedule repeats in days.

        • [週単位] を選択した場合は、 [間隔] ボックスに、ジョブ スケジュールを繰り返す頻度を週単位で入力します。If you select Weekly, in the Recurs every box, enter how often the job schedule repeats in weeks. ジョブ スケジュールを実行する曜日を選択します。Select the day or days of the week on which the job schedule is run.

        • [月単位] を選択した場合は、 [日] または [曜日] を選択します。If you select Monthly, select either Day or The.

          • [日] を選択した場合は、ジョブ スケジュールを実行する日付と、ジョブ スケジュールを繰り返す頻度を月単位で指定します。If you select Day, enter both the date of the month you want the job schedule to run and how often the job schedule repeats in months. たとえば、隔月の 15 日にジョブ スケジュールを実行する場合は、[日] を選択し、1 番目のボックスに「15」と入力し、2 番目のボックスに「2」と入力します。For example, if you want the job schedule to run on the 15th day of the month every other month, select Day and enter "15" in the first box and "2" in the second box. 2 番目のボックスで使用できる最大の値は "99" であることに注意してください。Please note that the largest number allowed in the second box is "99".

          • [曜日] を選択した場合は、ジョブ スケジュールを実行する曜日と、ジョブ スケジュールを繰り返す頻度を月単位で指定します。If you select The, select the specific day of the week within the month that you want the job schedule to run and how often the job schedule repeats in months. たとえば、隔月の最後の平日にジョブ スケジュールを実行する場合は、[日] を選択し、リストから [最終] を選択します。次に 2 番目のリストから [平日] を選択し、最後のボックスに「2」と入力します。For example, if you want the job schedule to run on the last weekday of the month every other month, select Day, select last from the first list and weekday from the second list, and then enter "2" in the last box. [第 1][第 2][第 3]、または [第 4] も、特定の平日 (たとえば、日曜日や水曜日) に加えて、最初の 2 つのリストから選択できます。You can also select first, second, third, or fourth, as well as specific weekdays (for example: Sunday or Wednesday) from the first two lists. 最後のボックスで使用できる最大の値は "99" であることに注意してください。Please note that the largest number allowed in the last box is "99".

      2. [一日のうちの頻度] で、頻度、ジョブ スケジュールを実行する当日にジョブ スケジュールを繰り返す頻度を指定します。Under Daily frequency, specify how often the job schedule repeats on the day the job schedule runs:

        • [1 回] を選択した場合は、ジョブ スケジュールを実行する特定の時刻を [1 回] ボックスに入力します。If you select Occurs once at, enter the specific time of day when the job schedule should run in the Occurs once at box. 間、分、秒に加え、午前か午後かを入力します。Enter the hour, minute, and second of the day, as well as AM or PM.

        • [間隔] を選択した場合は、 [頻度] で選択した日にジョブ スケジュールを実行する頻度を指定します。If you select Occurs every, specify how often the job schedule runs during the day chosen under Frequency. たとえば、ジョブ スケジュールを実行する当日に 2 時間おきにジョブ スケジュールを実行する場合は、[間隔] を選択し、1 番目のボックスに「2」と入力してから、[時間] を選択します。For example, if you want the job schedule to repeat every 2 hours during the day that the job schedule is run, select Occurs every, enter "2" in the first box, and then select hour(s) from the list. このリストでは、 [分][秒] を選択することもできます。From this list you can also select minute(s) and second(s). 1 番目のボックスで使用できる最大の値は "100" であることに注意してください。Please note that the largest number allowed in the first box is "100".

          [開始] ボックスに、ジョブ スケジュールの実行を開始する時刻を入力します。In the Starting at box, enter the time that the job schedule should start running. [終了] ボックスに、ジョブ スケジュールの実行を終了する時刻を入力します。In the Ending at box, enter the time that the job schedule should stop repeating. 間、分、秒に加え、午前か午後かを入力します。Enter the hour, minute, and second of the day, as well as AM or PM.

      3. [期間] で、 [開始日] に、ジョブ スケジュールの実行を開始する日付を入力します。Under Duration, in Start date, enter the date that you want the job schedule to start running. [終了日] を選択します。ジョブ スケジュールの実行を停止するタイミングを指定しない場合は、 [終了日なし] を選択します。Select End date or No end date to indicate when the job schedule should stop running. [終了日] を選択した場合は、ジョブ スケジュールの実行を停止する日付を入力します。If you select End date, enter the date that you want to job schedule to stop running.

    5. [指定日時] を選択した場合は、 [指定日時に発生][日付] ボックスに、ジョブ スケジュールを実行する日付を入力します。If you select One Time, under One-time occurrence, in the Date box, enter the date that the job schedule will be run. [時刻] ボックスに、ジョブ スケジュールを実行する時刻を入力します。In the Time box, enter the time that the job schedule will be run. 間、分、秒に加え、午前か午後かを入力します。Enter the hour, minute, and second of the day, as well as AM or PM.

    6. [概要][説明] で、すべてのジョブ スケジュール設定が適切であることを確認します。Under Summary, in Description, verify that all job schedule settings are correct.

    7. [OK] をクリックします。Click OK.

    このページを完了したら、 [次へ] をクリックします。After completing this page, click Next.

  8. [概要の確認] ページの [選択内容の確認] で、使用可能なすべてのオプションを展開し、すべてのパーティション設定が適切であることを確認します。On the Review Summary page, under Review your selections, expand all available options to verify that all partition settings are correct. すべての設定が適切であることを確認したら、 [完了] をクリックします。If everything is as expected, click Finish.

  9. [パーティションの作成ウィザードの進行状況] ページで、パーティションの作成ウィザードの操作に関する状態情報を監視します。On the Create Partition Wizard Progress page, monitor status information about the actions of the Create Partition Wizard. ウィザードで選択したオプションに応じて、[進行状況] ページに 1 つまたは複数のアクションが含まれる可能性があります。Depending on the options that you selected in the wizard, the progress page might contain one or more actions. 上部のボックスには、ウィザードの全体的な状態と受信した状態メッセージ、エラー メッセージ、および警告メッセージの数が表示されます。The top box displays the overall status of the wizard and the number of status, error, and warning messages that the wizard has received.

    [パーティションの作成ウィザードの進行状況] ページでは、次のオプションを使用できます。The following options are available on the Create Partition Wizard Progress page:

    詳細Details
    アクション、状態、およびウィザードで実行したアクションから返されたメッセージが提供されます。Provides the action, status, and any messages that are returned from action taken by the wizard.

    操作Action
    各アクションの種類と名前を指定します。Specifies the type and name of each action.

    ステータスStatus
    全体としてウィザードのアクションが [成功] または [失敗] のいずれの値を返したかを示します。Indicates whether the wizard action as a whole returned the value of Success or Failure.

    メッセージMessage
    プロセスから返されたすべてのエラー メッセージまたは警告メッセージを提供します。Provides any error or warning messages that are returned from the process.

    レポートReport
    パーティションの作成ウィザードの結果を含むレポートを作成します。Creates a report that contains the results of the Create Partition Wizard. [レポートの表示][レポートをファイルに保存][レポートをクリップボードにコピー][レポートを電子メールとして送信] の各オプションがあります。The options are View Report, Save Report to File, Copy Report to Clipboard, and Send Report as Email.

    [レポートの表示]View Report
    パーティションの作成ウィザードの進行状況に関するテキスト レポートを表示する [レポートの表示] ダイアログ ボックスを開きます。Opens the View Report dialog box, which contains a text report of the progress of the Create Partition Wizard.

    [レポートをファイルに保存]Save Report to File
    [レポートに名前を付けて保存] ダイアログ ボックスを開きます。Opens the Save Report As dialog box.

    [レポートをクリップボードにコピー]Copy Report to Clipboard
    ウィザードの進行状況レポートの結果をクリップボードにコピーします。Copies the results of the wizard's progress report to the Clipboard.

    [レポートを電子メールとして送信]Send Report as Email
    ウィザードの進行状況レポートの結果を電子メール メッセージにコピーします。Copies the results of the wizard's progress report into an email message.

    完了したら、 [閉じる] をクリックします。When complete, click Close.

パーティションの作成ウィザードによってパーティション関数とパーティション構成が作成され、指定したテーブルにパーティション分割が適用されます。The Create Partition Wizard creates the partition function and scheme and then applies the partitioning to the specified table. テーブル パーティション分割を検証するには、オブジェクト エクスプローラーでテーブルを右クリックし、 [プロパティ] をクリックします。To verify the table partitioning, in Object Explorer, right-click the table and select Properties. [ストレージ] ページをクリックします。Click the Storage page. このページには、パーティション関数の名前および構成やパーティションの数などの情報が表示されます。The page displays information such as the name of the partition function and scheme and the number of partitions.

Transact-SQL の使用Using Transact-SQL

パーティション テーブルを作成するにはTo create a partitioned table

  1. オブジェクト エクスプローラーで、 データベース エンジンDatabase Engineのインスタンスに接続します。In Object Explorer, connect to an instance of データベース エンジンDatabase Engine.

  2. [標準] ツール バーの [新しいクエリ] をクリックします。On the Standard bar, click New Query.

  3. 次の例をコピーしてクエリ ウィンドウに貼り付け、 [実行] をクリックします。Copy and paste the following example into the query window and click Execute. この例では、新しいファイル グループ、パーティション関数とパーティション構成を作成します。The example creates new filegroups, a partition function, and a partition scheme. パーティション構成を格納場所として指定した新しいテーブルが作成されます。A new table is created with the partition scheme specified as the storage location.

    USE AdventureWorks2012;  
    GO  
    -- Adds four new filegroups to the AdventureWorks2012 database  
    ALTER DATABASE AdventureWorks2012  
    ADD FILEGROUP test1fg;  
    GO  
    ALTER DATABASE AdventureWorks2012  
    ADD FILEGROUP test2fg;  
    GO  
    ALTER DATABASE AdventureWorks2012  
    ADD FILEGROUP test3fg;  
    GO  
    ALTER DATABASE AdventureWorks2012  
    ADD FILEGROUP test4fg;   
    
    -- Adds one file for each filegroup.  
    ALTER DATABASE AdventureWorks2012   
    ADD FILE   
    (  
        NAME = test1dat1,  
        FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\DATA\t1dat1.ndf',  
        SIZE = 5MB,  
        MAXSIZE = 100MB,  
        FILEGROWTH = 5MB  
    )  
    TO FILEGROUP test1fg;  
    ALTER DATABASE AdventureWorks2012   
    ADD FILE   
    (  
        NAME = test2dat2,  
        FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\DATA\t2dat2.ndf',  
        SIZE = 5MB,  
        MAXSIZE = 100MB,  
        FILEGROWTH = 5MB  
    )  
    TO FILEGROUP test2fg;  
    GO  
    ALTER DATABASE AdventureWorks2012   
    ADD FILE   
    (  
        NAME = test3dat3,  
        FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\DATA\t3dat3.ndf',  
        SIZE = 5MB,  
        MAXSIZE = 100MB,  
        FILEGROWTH = 5MB  
    )  
    TO FILEGROUP test3fg;  
    GO  
    ALTER DATABASE AdventureWorks2012   
    ADD FILE   
    (  
        NAME = test4dat4,  
        FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\DATA\t4dat4.ndf',  
        SIZE = 5MB,  
        MAXSIZE = 100MB,  
        FILEGROWTH = 5MB  
    )  
    TO FILEGROUP test4fg;  
    GO  
    -- Creates a partition function called myRangePF1 that will partition a table into four partitions  
    CREATE PARTITION FUNCTION myRangePF1 (int)  
        AS RANGE LEFT FOR VALUES (1, 100, 1000) ;  
    GO  
    -- Creates a partition scheme called myRangePS1 that applies myRangePF1 to the four filegroups created above  
    CREATE PARTITION SCHEME myRangePS1  
        AS PARTITION myRangePF1  
        TO (test1fg, test2fg, test3fg, test4fg) ;  
    GO  
    -- Creates a partitioned table called PartitionTable that uses myRangePS1 to partition col1  
    CREATE TABLE PartitionTable (col1 int PRIMARY KEY, col2 char(10))  
        ON myRangePS1 (col1) ;  
    GO  
    

テーブルがパーティション分割されているかどうかを調べるにはTo determine if a table is partitioned

  1. 次のクエリでは、テーブル PartitionTable がパーティション分割されている場合、1 つ以上の行が返されます。The following query returns one or more rows if the table PartitionTable is partitioned. テーブルがパーティション分割されていない場合は、行が返されません。If the table is not partitioned, no rows are returned.

    SELECT *   
    FROM sys.tables AS t   
    JOIN sys.indexes AS i   
        ON t.[object_id] = i.[object_id]   
        AND i.[type] IN (0,1)   
    JOIN sys.partition_schemes ps   
        ON i.data_space_id = ps.data_space_id   
    WHERE t.name = 'PartitionTable';   
    GO  
    

パーティション テーブルの境界値を調べるにはTo determine the boundary values for a partitioned table

  1. 次のクエリでは、 PartitionTable テーブルの各パーティションの境界値を返します。The following query returns the boundary values for each partition in the PartitionTable table.

    SELECT t.name AS TableName, i.name AS IndexName, p.partition_number, p.partition_id, i.data_space_id, f.function_id, f.type_desc, r.boundary_id, r.value AS BoundaryValue   
    FROM sys.tables AS t  
    JOIN sys.indexes AS i  
        ON t.object_id = i.object_id  
    JOIN sys.partitions AS p  
        ON i.object_id = p.object_id AND i.index_id = p.index_id   
    JOIN  sys.partition_schemes AS s   
        ON i.data_space_id = s.data_space_id  
    JOIN sys.partition_functions AS f   
        ON s.function_id = f.function_id  
    LEFT JOIN sys.partition_range_values AS r   
        ON f.function_id = r.function_id and r.boundary_id = p.partition_number  
    WHERE t.name = 'PartitionTable' AND i.type <= 1  
    ORDER BY p.partition_number;  
    

パーティション テーブルのパーティション列を調べるにはTo determine the partition column for a partitioned table

  1. 次のクエリでは、テーブルのパーティション分割列の名前を返します。The following query returns the name of the partitioning column for table. PartitionTableを使用して、パーティション テーブルまたはパーティション インデックスを作成できます。PartitionTable.

    SELECT   
        t.[object_id] AS ObjectID   
        , t.name AS TableName   
        , ic.column_id AS PartitioningColumnID   
        , c.name AS PartitioningColumnName   
    FROM sys.tables AS t   
    JOIN sys.indexes AS i   
        ON t.[object_id] = i.[object_id]   
        AND i.[type] <= 1 -- clustered index or a heap   
    JOIN sys.partition_schemes AS ps   
        ON ps.data_space_id = i.data_space_id   
    JOIN sys.index_columns AS ic   
        ON ic.[object_id] = i.[object_id]   
        AND ic.index_id = i.index_id   
        AND ic.partition_ordinal >= 1 -- because 0 = non-partitioning column   
    JOIN sys.columns AS c   
        ON t.[object_id] = c.[object_id]   
        AND ic.column_id = c.column_id   
    WHERE t.name = 'PartitionTable' ;   
    GO  
    

詳細については、以下をご覧ください。For more information, see: