events
3月31日 23時 - 4月2日 23時
最大の SQL、Fabric、Power BI 学習イベント。 3 月 31 日から 4 月 2 日。 コード FABINSIDER を使用して $400 を保存します。
今すぐ登録このブラウザーはサポートされなくなりました。
Microsoft Edge にアップグレードすると、最新の機能、セキュリティ更新プログラム、およびテクニカル サポートを利用できます。
適用対象:SQL Server
Azure SQL Database
Azure SQL Managed Instance
指定したパーティション関数に対してパーティション分割列の値のセットをマップできるパーティション番号を返します。
[ database_name. ] $PARTITION.partition_function_name(expression)
パーティション関数を含むデータベースの名前。
パーティション分割列の値のセットが適用されている既存のパーティション関数の名前。
式、データ型が対応するパーティション分割列のデータ型と一致するか、暗黙的に変換できる必要があります。 このパラメーターには、現在 partition_function_nameに参加しているパーティション分割列の名前を指定することもできます。
int
$PARTITION
は、1
とパーティション関数のパーティション数の間の int 値を返します。
$PARTITION
は、パーティション関数を使用するパーティション テーブルまたはインデックスに値が現在存在するかどうかに関係なく、任意の有効な値のパーティション番号を返します。
この例では、RangePF1
を使用してパーティション関数 を作成します。これにより、テーブルまたはインデックスが 4 つのパーティションに分割されます。
$PARTITION
は、RangePF1
のパーティション分割列を表す 10
値がテーブルのパーティション 1
に配置されることを決定するために使用されます。
CREATE PARTITION FUNCTION RangePF1(INT)
AS RANGE LEFT
FOR VALUES (10, 100, 1000);
GO
SELECT $PARTITION.RangePF1 (10);
GO
この例では、$PARTITION
を使ってデータを含むテーブルの各パーティション内の行数を返す方法を示します。
注意
この例を実行するには、まず前の例のコードを使用してパーティション関数 RangePF1
を作成する必要があります。
パーティション関数 RangePF1
のパーティション構成 RangePS1
を作成します。
CREATE PARTITION SCHEME RangePS1
AS PARTITION RangePF1
ALL TO ('PRIMARY');
GO
パーティション分割列として col1
を使用して、RangePS1
パーティション構成に dbo.PartitionTable
テーブルを作成します。
CREATE TABLE dbo.PartitionTable
(
col1 INT PRIMARY KEY,
col2 CHAR (20)
) ON RangePS1 (col1);
GO
dbo.PartitionTable
テーブルに 4 行を挿入します。 これらの行は、パーティション関数 RangePF1
定義に基づいてパーティションに挿入されます。1
と 10
はパーティション 1
に移動し、500
して 3
に移動 1000
。
INSERT dbo.PartitionTable (col1, col2)
VALUES (1, 'a row'),
(10, 'another row'),
(500, 'another row'),
(1000, 'another row');
GO
dbo.PartitionTable
のクエリを実行し、GROUP BY
句の $PARTITION.RangePF1(col1)
を使用して、データを含む各パーティションの行数を照会します。
SELECT $PARTITION.RangePF1 (col1) AS Partition,
COUNT(*) AS [COUNT]
FROM dbo.PartitionTable
GROUP BY $PARTITION.RangePF1 (col1)
ORDER BY Partition;
GO
結果セットを次に示します。
Partition | [COUNT] |
---|---|
1 | 2 |
3 | 2 |
パーティション番号 2
の行は返されません。これは存在しますが、データは含まれません。
次の例では、テーブル PartitionTable
のパーティション 3 内にあるすべての行を返します。
SELECT col1, col2
FROM dbo.PartitionTable
WHERE $PARTITION.RangePF1 (col1) = 3;
結果セットを次に示します。
col1 | col2 |
---|---|
500 |
別の行 |
1000 |
別の行 |
events
3月31日 23時 - 4月2日 23時
最大の SQL、Fabric、Power BI 学習イベント。 3 月 31 日から 4 月 2 日。 コード FABINSIDER を使用して $400 を保存します。
今すぐ登録