sql >> データベース >  >> RDS >> Sqlserver

SQL Server(T-SQL)でパーティションテーブルをクエリするときに、各行のパーティション番号を返す

    SQL Serverにパーティションテーブルがあり、クエリによって返される各行のパーティション番号を含むクエリを実行する場合は、$PARTITIONを使用できます。 それを行うためのシステム機能。

    $PARTITION functionは、指定されたパーティション関数のパーティション列値のセットがマップされるパーティション番号を返します。

    したがって、SELECTで使用できます。 各行が属するパーティションを返すステートメント。

    実例を示します。

    SELECT 
        CatId,
        CatName,
        $PARTITION.CatsPartitionFunction(CatId) AS [Partition]
    FROM Cats;

    結果:

    +---------+-------------+-------------+
    | CatId   | CatName     | Partition   |
    |---------+-------------+-------------|
    | 1       | Meow        | 2           |
    | 2       | Fluffy      | 2           |
    | 3       | Scratch     | 2           |
    | 4       | Bulldog     | 2           |
    | 5       | King George | 2           |
    | 6       | Sharp       | 3           |
    | 7       | Fritz       | 3           |
    | 8       | Garfield    | 3           |
    | 9       | Boss        | 3           |
    +---------+-------------+-------------+

    この場合、行はパーティション2と3に分散されます。

    パーティションが分割またはマージされた場合のデータ移動を排除するために、両端のパーティションを空のままにするというMicrosoftの推奨に従って、パーティション1は空です(パーティション4も同様です)。


    1. 新しいインデックス列をキーに含める必要がありますか、それとも含める必要がありますか?

    2. 単純なPostgreSQLスクリプトで変数をどのように使用しますか?

    3. java-Oracleストアドプロシージャで配列を渡す

    4. ティックを日付形式に変換するにはどうすればよいですか?