Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:SQL Server
Azure SQL Database
Felügyelt Azure SQL-példány
SQL-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
Az Object Explorer-ben csatlakozzon a céladatbázishoz.
A Standard sávon válassza Új lekérdezéslehetőséget.
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
myRangePF1nevű 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);- Ellenőrzi a partíciófüggvény egy korábbi verzióját
Két partíció egyesítése Transact-SQL
Az Object Explorer-ben csatlakozzon a céladatbázishoz.
A Standard sávon válassza Új lekérdezéslehetőséget.
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
myRangePF1nevű 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
myRangePF1ké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);- Ellenőrzi, hogy létezik-e a partíciófüggvény egy korábbi verziója
Partíciófüggvény törlése SSMS használatával
Az Object Explorer-ben csatlakozzon a céladatbázishoz.
Bontsa ki azt az adatbázist, amelyben törölni szeretné a partíciófüggvényt, majd bontsa ki a Storage mappát.
Bontsa ki a Partition Functions mappát.
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.
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: