Modifier un schéma de partition

S’applique à : SQL Server Azure SQL Database Azure SQL Managed Instance

Vous pouvez modifier un schéma de partition dans SQL Server, Azure SQL Database et Azure SQL Managed Instance en désignant un groupe de fichiers destiné à contenir la prochaine partition ajoutée à une table partitionnée à l’aide de SQL Server Management Studio (SSMS) ou de Transact-SQL. Pour ce faire, vous affectez la propriété NEXT USED au groupe de fichiers en question.

Vous pouvez affecter la propriété NEXT USED à un groupe de fichiers vide ou à un groupe de fichiers qui contient déjà une partition. Autrement dit, un groupe de fichiers peut contenir plusieurs partitions. Découvrez les groupes de fichiers et les stratégies de partitionnement dans les groupes de fichiers.

Le partitionnement de tables est également disponible dans les pools SQL dédiés dans Azure Synapse Analytics, avec certaines différences de syntaxe. Pour en savoir plus, consultez Partitionnement de tables dans un pool SQL dédié.

Limites

Tout groupe de fichiers affecté par ALTER PARTITION SCHEME doit être en ligne.

Remarque

Azure SQL Database prend uniquement en charge le groupe de fichiers PRIMARY.

autorisations

Les autorisations suivantes peuvent être utilisées pour exécuter ALTER PARTITION SCHEME :

  • Autorisation ALTER ANY DATASPACE. Cette autorisation est attribuée par défaut aux membres du rôle de serveur fixe sysadmin et des rôles de base de données fixes db_owner et db_ddladmin .

  • Autorisation CONTROL ou ALTER sur la base de données dans laquelle le schéma de partition a été créé.

  • Autorisation CONTROL SERVER ou ALTER ANY DATABASE sur le serveur de la base de données dans laquelle le schéma de partition a été créé.

Modifier un schéma de partition avec Transact-SQL

Cet exemple utilise l’exemple de base de données AdventureWorks.

  1. Dans l' Explorateur d'objets, connectez-vous à une instance du Moteur de base de données.

  2. Dans la barre d’outils standard, sélectionnez Nouvelle requête.

  3. Copiez et collez l’exemple suivant dans la fenêtre de requête, puis sélectionnez Exécuter.

    Remarque

    Par souci de simplicité, ce code crée de nouveaux groupes de fichiers, mais n’affecte pas de fichiers. Cela permet de démontrer comment modifier le schéma de partition, mais n’est pas un exemple complet de configuration d’un objet partitionné. Vous trouverez des exemples de création de tables et d’index partitionnés dans Créer des tables et des index partitionnés.

    USE AdventureWorks2022;  
    GO
    -- add five new filegroups to the AdventureWorks2022 database  
    ALTER DATABASE AdventureWorks2022  
    ADD FILEGROUP test1fg;  
    GO  
    ALTER DATABASE AdventureWorks2022  
    ADD FILEGROUP test2fg;  
    GO  
    ALTER DATABASE AdventureWorks2022  
    ADD FILEGROUP test3fg;  
    GO  
    ALTER DATABASE AdventureWorks2022  
    ADD FILEGROUP test4fg;  
    GO  
    ALTER DATABASE AdventureWorks2022  
    ADD FILEGROUP test5fg;  
    GO 
    
    -- if the "myRangePF1" partition function and the "myRangePS1" partition scheme exist,  
    -- drop them from the AdventureWorks2022 database  
    IF EXISTS (SELECT * FROM sys.partition_functions  
        WHERE name = 'myRangePF1')  
    DROP PARTITION FUNCTION myRangePF1;  
    GO  
    IF EXISTS (SELECT * FROM sys.partition_schemes  
        WHERE name = 'myRangePS1')  
    DROP PARTITION SCHEME myRangePS1;  
    GO  
    
    -- create the new partition function "myRangePF1" with four partition groups  
    CREATE PARTITION FUNCTION myRangePF1 (int)  
    AS RANGE LEFT FOR VALUES ( 1, 100, 1000 );  
    GO  
    
    -- create the new partition scheme "myRangePS1"that will use   
    -- the "myRangePF1" partition function with five file groups.  
    -- The last filegroup, "test5fg," will be kept empty but marked  
    -- as the next used filegroup in the partition scheme.  
    CREATE PARTITION SCHEME myRangePS1  
    AS PARTITION myRangePF1  
    TO (test1fg, test2fg, test3fg, test4fg, test5fg);  
    GO  
    
    --Split "myRangePS1" between boundary_values 100 and 1000  
    --to create two partitions between boundary_values 100 and 500  
    --and between boundary_values 500 and 1000.  
    ALTER PARTITION FUNCTION myRangePF1 ()  
    SPLIT RANGE (500);  
    GO  
    
    -- Allow the "myRangePS1" partition scheme to use the filegroup "test5fg"  
    -- for the partition with boundary_values of 100 and 500  
    ALTER PARTITION SCHEME myRangePS1  
    NEXT USED test5fg;  
    GO  
    

Supprimer un schéma de partition avec SSMS

  1. Dans l’Explorateur d’objets, connectez-vous à votre base de données cible.

  2. Sélectionnez le signe plus (+) pour développer la base de données contenant le schéma de partition à supprimer.

  3. Sélectionnez le signe plus (+) pour développer le dossier Stockage.

  4. Sélectionnez le signe plus (+) pour développer le dossier Schémas de partition.

  5. Cliquez avec le bouton droit sur le schéma de partition à supprimer, puis sélectionnez Supprimer.

  6. Dans la boîte de dialogue Supprimer un objet, assurez-vous que le schéma de partition est sélectionné, puis sélectionnez OK.

Étapes suivantes

En savoir plus sur le partitionnement de tables dans ces articles :