Изменение схемы секционирования

Применяется к:SQL ServerAzure SQL DatabaseAzure, управляемому экземпляру SQL Azure

Схему секционирования можно изменить в SQL Server, Базе данных SQL Azure и Управляемом экземпляре SQL Azure, указав файловую группу для хранения следующей секции, добавляемой в секционированную таблицу с помощью SQL Server Management Studio (SSMS) или Transact-SQL. Это делается путем присваивания файловой группе свойства NEXT USED.

Можно присвоить свойство NEXT USED пустой файловой группе или группе, уже хранящей секцию. Другими словами, файловая группа может содержать несколько секций. Узнайте больше о файловых группах и стратегиях секционирования в файловых группах.

Секционирование таблиц также доступно в выделенных пулах SQL в Azure Synapse Analytics с некоторыми различиями синтаксиса. Дополнительные сведения о секционированиях таблиц в выделенном пуле SQL.

Ограничения

Все файловые группы, на которые действует инструкция ALTER PARTITION SCHEME, должны быть в режиме "в сети".

Заметка

База данных SQL Azure поддерживает только файловую группу PRIMARY .

Разрешения

Для выполнения инструкции ALTER PARTITION SCHEME необходимы следующие разрешения.

  • Разрешение ALTER ANY DATASPACE. Это разрешение назначено по умолчанию членам предопределенной роли сервера sysadmin и предопределенных ролей базы данных db_owner и db_ddladmin .

  • Разрешение CONTROL или ALTER на базу данных, в которой была создана схема секционирования.

  • Разрешения CONTROL SERVER или ALTER ANY DATABASE на сервер базы данных, в которой была создана схема секционирования.

Изменение схемы секционирования с помощью Transact-SQL

В примере используется образец базы данных AdventureWorks.

  1. В обозревателе объектов подключитесь к экземпляру ядра СУБД.

  2. На стандартной панели выберите пункт Создать запрос.

  3. Скопируйте приведенный ниже пример в окно запроса и нажмите кнопку Выполнить.

    Заметка

    Для простоты этот код создает новые файловые группы, но не назначает им файлы. Это позволяет провести демонстрацию изменения схемы секционирования, но не является полным примером настройки секционированного объекта. Примеры создания секционированных таблиц и индексов см. в разделе "Создание секционированных таблиц и индексов".

    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  
    

Удаление схемы секционирования с помощью SSMS

  1. В обозревателе объектов подключитесь к целевой базе данных.

  2. Выберите знак "плюс", чтобы развернуть базу данных, в которой требуется удалить схему секционирования.

  3. Выберите знак плюса, чтобы развернуть папку хранилища .

  4. Выберите знак "плюс", чтобы развернуть папку "Схемы секционирования ".

  5. Щелкните правой кнопкой мыши схему секционирования, которую нужно удалить, и выберите пункт Удалить.

  6. В диалоговом окне "Удалить объект" убедитесь, что выбрана правильная схема секционирования, а затем нажмите кнопку "ОК".

Далее

Дополнительные сведения о секционировании таблиц см. в следующих статьях: