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

SQLServerで「パーティションスキーム「…」に次に使用されるファイルグループがない」を修正する方法

    SQL Serverでパーティションを分割しようとすると、エラー7710が発生しますが、「次に使用する」ファイルグループを指定していません。

    エラー全体は次のようになります:

    Msg 7710, Level 16, State 1, Line 1
    Warning: The partition scheme 'MyPartitionScheme' does not have any next used filegroup. Partition scheme has not been changed.

    MyPartitionSchemeの場所 問題のパーティションスキームの名前です。

    このエラーが発生した場合は、ALTER PARTITION SCHEMEを使用して「次に使用する」ファイルグループを追加する必要があります。 ステートメント。

    問題

    問題の概要は次のとおりです。

    パーティションを分割しようとすると:

    ALTER PARTITION FUNCTION MoviesPartitionFunction()
    SPLIT RANGE (500);

    次のエラーが発生します:

    Msg 7710, Level 16, State 1, Line 1
    Warning: The partition scheme 'MoviesPartitionScheme' does not have any next used filegroup. Partition scheme has not been changed.

    これは、MoviesPartitionSchemeに「次に使用する」ファイルグループを指定していないためです。 、私の場合は、MoviesPartitionFunctionを適用するために使用したパーティションスキームです。 パーティションで使用されるファイルグループに移動します。

    オリジナルのパーティション関数とパーティションスキームを作成した方法は次のとおりです。

    CREATE PARTITION FUNCTION MoviesPartitionFunction (int)  
        AS RANGE LEFT FOR VALUES (-1, 100, 10000);
    
    CREATE PARTITION SCHEME MoviesPartitionScheme  
        AS PARTITION MoviesPartitionFunction  
        TO (MoviesFg1, MoviesFg2, MoviesFg3, MoviesFg4);

    そのため、現在4つのパーティションがあり、5つ目を追加しようとしています。

    ソリューション

    パーティションスキームに「次に使用する」ファイルグループを追加することで、上記の問題を解決できます。

    既存のファイルグループを使用することも、新しいファイルグループを作成することもできます。

    新しいパーティションを作成して、パーティションをもう一度分割してみましょう:

    ALTER DATABASE Test ADD FILEGROUP MoviesFg5;
    
    ALTER DATABASE Test   
    ADD FILE   
    (  
        NAME = MoviesFg5dat,  
        FILENAME = '/var/opt/mssql/data/MoviesFg5dat.ndf',  
        SIZE = 5MB,  
        MAXSIZE = 100MB,  
        FILEGROWTH = 5MB  
    )  
    TO FILEGROUP MoviesFg5;
    
    ALTER PARTITION SCHEME MoviesPartitionScheme  
    NEXT USED MoviesFg5;
    
    ALTER PARTITION FUNCTION MoviesPartitionFunction()
    SPLIT RANGE (500);

    結果:

    Commands completed successfully.

    すばらしいので、機能し、エラーは発生しなくなりました。


    1. PostgreSQLのシリアル疑似データ型の概要

    2. SQL ServerでCHECK制約が列レベルかテーブルレベルかを確認します(T-SQLの例)

    3. MySQLの長時間実行クエリの処理

    4. GROUP BY/SQLでの集計関数の混乱