Megosztás a következőn keresztül:


Partíciófüggvény módosítása

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseFelügyelt Azure SQL-példánySQL-adatbázis a Microsoft Fabricben

A táblák vagy indexek particionálásának módját módosíthatja az SQL Serverben, az Azure SQL Database-ben és a felügyelt Azure SQL-példányban úgy, hogy hozzáadja vagy kivonja az 1-es lépésekben megadott partíciók számát a particionált tábla vagy index partíciófüggvényében a Transact-SQL használatával. Partíció hozzáadásakor ezt úgy teheti meg, hogy "feloszt" egy meglévő partíciót két partícióra, és újradefiniálta az új partíciók határait. Amikor töröl egy partíciót, ezt úgy teheti meg, hogy összevon két partíció határait egybe. Ez az utolsó művelet újra feltölti az egyik partíciót, és a másik partíciót hozzárendeletlenül hagyja. A partíciófüggvények módosítása előtt tekintse át ajánlott eljárásokat.

Figyelem!

Több tábla vagy index is használhatja ugyanazt a partíciófüggvényt. Egy partíciófüggvény módosításakor mindegyikre hatással lesz egyetlen tranzakcióban. A módosítás előtt ellenőrizze a partíciófüggvény függőségeit.

A táblaparticionálás az Azure Synapse Analytics dedikált SQL-készleteiben is elérhető, néhány szintaktikai különbséggel. További információ a táblák particionálásáról a dedikált SQL-készletben .

Korlátozások

  • Az ALTER PARTITION FÜGGVÉNY csak egy partíció két partícióra való felosztására vagy két partíció egybe egyesítésére használható. A táblák vagy indexek particionálási módjának módosításához (például 10 partícióról 5-re) az alábbi lehetőségek bármelyikét használhatja:

    • Hozzon létre egy új particionált táblát a kívánt partíciófüggvénnyel, majd szúrja be a régi táblából származó adatokat az új táblába az INSERT INTO ... paranccsal. SELECT FROM Transact-SQL utasítás vagy a Partíciókezelés varázslóSQL Server Management Studio (SSMS).

    • Készítsen particionált fürtözött indexet a halmon.

      Jegyzet

      A particionált fürtözött index megszüntetése eredményez egy particionált halmot.

    • Meglévő particionált index elvetése és újraépítése a Transact-SQL CREATE INDEX utasítással a DROP EXISTING = ON záradékkal.

    • Hajtsa végre az ALTER PARTITION FUNCTION utasítások sorozatát.

  • Az adatbázismotor nem nyújt replikációs támogatást a partíciófüggvények módosításához. Ha módosítani szeretne egy partíciófüggvényt a közzétételi adatbázisban, ezt manuálisan kell elvégeznie az előfizetési adatbázisban.

  • Az ALTER PARTITION FÜGGVÉNY által érintett összes fájlcsoportnak online állapotúnak kell lennie.

Engedélyek

Az alábbi engedélyek bármelyike használható az ALTER PARTITION FÜGGVÉNY végrehajtásához:

  • Bármely adatterület módosítási joga. Ez az engedély alapértelmezés szerint a sysadmin rögzített kiszolgálói szerepkör valamint a db_owner és db_ddladmin rögzített adatbázis-szerepkörök tagjait illeti meg.

  • CONTROL vagy ALTER engedély azon az adatbázison, amelyben a partíció függvényt létrehozták.

  • CONTROL SERVER vagy ALTER ANY DATABASE engedély a szerveren, amely azon adatbázis kiszolgálója, amelyben a partíciófüggvényt létrehozták.

Particionált objektumok lekérdezése egy adatbázisban

Az alábbi lekérdezés az adatbázis összes particionált objektumát felsorolja. Ezzel ellenőrizheti a partíciófüggvények függőségeit a módosítás előtt.

SELECT 
	PF.name AS PartitionFunction,
	ds.name AS PartitionScheme,
    OBJECT_SCHEMA_NAME(si.object_id) as SchemaName,
	OBJECT_NAME(si.object_id) AS PartitionedTable, 
	si.name as IndexName
FROM sys.indexes AS si
JOIN sys.data_spaces AS ds
	ON ds.data_space_id = si.data_space_id
JOIN sys.partition_schemes AS PS
	ON PS.data_space_id = si.data_space_id
JOIN sys.partition_functions AS PF
	ON PF.function_id = PS.function_id
WHERE ds.type = 'PS'
AND OBJECTPROPERTYEX(si.object_id, 'BaseType') = 'U'
ORDER BY PartitionFunction, PartitionScheme, SchemaName, PartitionedTable;

Partíció felosztása Transact-SQL

  1. Az Object Explorer-ben csatlakozzon a céladatbázishoz.

  2. A Standard sávon válassza Új lekérdezéslehetőséget.

  3. Másolja és illessze be a következő példát a lekérdezési ablakba, és válassza a Végrehajtáslehetőséget.

    Ez a példa:

    • Ellenőrzi a partíciófüggvény egy korábbi verzióját myRangePF1, és törli, ha megtalálható.
    • Létrehoz egy myRangePF1 nevű partíciófüggvényt, amely négy partícióra particionál egy táblát.
    • 100 és 1000 közötti boundary_values partíciót kettéválasztva létrehoz egy partíciót 100 és 500 közötti boundary_values között, és egy másik partíciót 500 és 1000 közötti boundary_values között.
    IF EXISTS (SELECT * FROM sys.partition_functions  
        WHERE name = 'myRangePF1')  
        DROP PARTITION FUNCTION myRangePF1;  
    GO
    
    CREATE PARTITION FUNCTION myRangePF1 (int)  
    AS RANGE LEFT FOR VALUES ( 1, 100, 1000 );  
    GO  
    
    ALTER PARTITION FUNCTION myRangePF1 ()  
    SPLIT RANGE (500);  
    

Két partíció egyesítése Transact-SQL

  1. Az Object Explorer-ben csatlakozzon a céladatbázishoz.

  2. A Standard sávon válassza Új lekérdezéslehetőséget.

  3. Másolja és illessze be a következő példát a lekérdezési ablakba, és válassza a Végrehajtáslehetőséget.

    Ez a példa:

    • Ellenőrzi, hogy létezik-e a partíciófüggvény egy korábbi verziója myRangePF1, és törli, ha megtalálható.
    • Létrehoz egy myRangePF1 nevű partíciófüggvényt három határértékkel, amely négy partíciót eredményez.
    • Egyesíti a partíciót az 1 és 100 közötti határértékekkel a 100 és 1,000 közötti határértékek partíciójával.
    • Ez azt eredményezi, hogy a partíciófüggvény myRangePF1 két határponttal rendelkezik, 1 és 1000.
    IF EXISTS (SELECT * FROM sys.partition_functions  
        WHERE name = 'myRangePF1')  
        DROP PARTITION FUNCTION myRangePF1;  
    GO 
    
    CREATE PARTITION FUNCTION myRangePF1 (int)  
    AS RANGE LEFT FOR VALUES ( 1, 100, 1000 );  
    GO  
    
    ALTER PARTITION FUNCTION myRangePF1 ()  
    MERGE RANGE (100);  
    

Partíciófüggvény törlése SSMS használatával

  1. Az Object Explorer-ben csatlakozzon a céladatbázishoz.

  2. Bontsa ki azt az adatbázist, amelyben törölni szeretné a partíciófüggvényt, majd bontsa ki a Storage mappát.

  3. Bontsa ki a Partition Functions mappát.

  4. Kattintson a jobb gombbal a törölni kívánt partíciófüggvényre, és válassza a Törléslehetőséget.

  5. Az Objektum törlése párbeszédpanelen győződjön meg arról, hogy a megfelelő partíciófüggvény van kiválasztva, majd válassza OKlehetőséget.

Következő lépések

További információ a kapcsolódó fogalmakról az alábbi cikkekben: