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


Particionált táblák és indexek létrehozása

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

Particionált táblát vagy indexet az SQL Server Management Studio vagy a Transact-SQL használatával hozhat létre. A particionált táblákban és indexekben lévő adatok horizontálisan olyan egységekre vannak osztva, amelyek egy adatbázis több fájlcsoportjában is eloszthatók, vagy egyetlen fájlcsoportban tárolhatók. A particionálással kezelhetőbbé és méretezhetőbbé teheti a nagy táblákat és indexeket.

Particionált tábla vagy index létrehozása általában három vagy négy részből áll:

  1. Ha szükséges, hozzon létre egy vagy fájlcsoportot, valamint a megfelelő adatfájlokat, amelyek a partíciós séma által megadott partíciókat fogják tárolni. A partíciók több fájlcsoporton való elhelyezésének fő oka annak biztosítása, hogy függetlenül hajtson végre biztonsági mentési és visszaállítási műveleteket a fájlcsoportokon. Ha ez nem szükséges, akkor dönthet úgy, hogy az összes partíciót egyetlen fájlcsoporthoz rendeli egy meglévő fájlcsoport ( például PRIMARY) vagy egy új, kapcsolódó adatfájlokat tartalmazó fájlcsoport használatával. Szinte minden forgatókönyvben a particionálás minden előnyét el fogja érni, akár több fájlcsoportot használ, akár nem, particionálásával.

  2. Hozzon létre egy partíciófüggvényt, amely egy tábla vagy index sorait egy adott oszlop értékei alapján partíciókba képezi le. Egyetlen partíciófüggvény használatával több objektumot is particionálhat.

  3. Hozzon létre egy partíciós sémát, amely egy particionált tábla vagy index partícióit egy fájlcsoportra vagy több fájlcsoportra képezi le. Egyetlen partíciós séma használatával több objektumot is particionálhat.

  4. Hozzon létre vagy módosítson egy táblát vagy indexet, és adja meg a partíciós sémát tárolóhelyként, valamint a particionálási oszlopként szolgáló oszlopot.

  • A particionálás teljes mértékben támogatott az Azure SQL Database-ben és az SQL Database-ben a Fabricben. Minden partíciót a PRIMARY fájlcsoporton kell elhelyezni, mert az Azure SQL Database-ben és az SQL Database-ben a Fabricben csak a PRIMARY fájlcsoport érhető el.
  • A táblaparticionálás az Azure Synapse Analytics dedikált SQL-készleteiben érhető el, néhány szintaktikai különbséggel. További információ: Particionálási táblák dedikált SQL-készletben.

Permissions

Particionált tábla létrehozásához a CREATE TABLE engedélyre van szükség az adatbázisban, és ALTER-engedélyt arra a sémára, amelyben a tábla létrejön. Particionált index létrehozásához ALTER-engedélyre van szükség azon a táblán vagy nézeten, ahol az index létrejön. Particionált tábla vagy index létrehozásához az alábbi további engedélyek bármelyike szükséges:

  • BÁRMELY ADATTÉR-engedély MÓDOSÍTÁSA. Ez az engedély alapértelmezés szerint a sysadmin rögzített kiszolgálói szerepkör tagjaira, valamint a db_owner és db_ddladmin rögzített adatbázis-szerepkörök tagjaira vonatkozik.

  • CONTROL vagy ALTER engedélyek az adatbázison, amelyben a partíciófüggvény és a partíciós séma jön létre.

  • A CONTROL SERVER vagy ALTER ANY DATABASE engedély szükséges a kiszolgálón az adatbázisban, amelyben a partíciófüggvény és a partíciós séma létrejön.

Particionált tábla létrehozása egy fájlcsoporton Transact-SQL

Ha nem kell egymástól függetlenül biztonsági mentési és visszaállítási műveleteket végeznie a fájlcsoportokon, a táblák egyetlen fájlcsoport használatával történő particionálása leegyszerűsíti a particionált tábla felügyeletét.

Ez a példa alkalmas az Azure SQL Database-hez és az SQL Database-hez a Fabricben, amely nem támogatja a fájlok és fájlcsoportok hozzáadását. Az SQL Serverben és a felügyelt Azure SQL-példányban érdemes lehet egy felhasználó által létrehozott fájlcsoportot megadni a fájlcsoporttól és a fájlkezelési eljárásoktól függően.

A példa egy particionált tábla SQL Server Management Studióban (SSMS) való létrehozásának lépéseit ismerteti Transact-SQL használatával, és az összes partíciót hozzárendeli a PRIMARY fájlcsoporthoz. Példa:

  • Létrehoz egy RANGE RIGHT partíciófüggvénytmyRangePF1 nevű három határértékkel a datetime2 adattípus használatával. Három határérték egy négy partícióval rendelkező particionált táblát eredményez.
  • Létrehoz egy myRangePS1 nevű partíciós sémát, amely a ALL TO szintaxissal rendeli hozzá a myRangePF1 partíciófüggvény összes partícióját a PRIMARY fájlcsoporthoz.
  • Létrehoz egy PartitionTable nevű táblát a myRangePS1 partíciós sémában, amely particionálási oszlopként col1 nevű oszlopot ad meg.
  1. Az Object Explorer-ben csatlakozzon az adatbázismotor egy példányához.

  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 létrehoz egy partíciófüggvényt és egy partíciós sémát. A rendszer létrehoz egy új táblát a tárolási helyként megadott partíciós sémával.

CREATE PARTITION FUNCTION myRangePF1 (datetime2(0))
    AS RANGE RIGHT FOR VALUES ('2022-04-01', '2022-05-01', '2022-06-01') ;
GO

CREATE PARTITION SCHEME myRangePS1
    AS PARTITION myRangePF1
    ALL TO ('PRIMARY') ;
GO

CREATE TABLE dbo.PartitionTable (col1 datetime2(0) PRIMARY KEY, col2 char(10))
    ON myRangePS1 (col1) ;
GO

Particionált tábla létrehozása több fájlcsoporton Transact-SQL

Az ebben a szakaszban ismertetett lépéseket követve hozzon létre egy vagy több fájlcsoportot, megfelelő fájlokat és egy particionált táblát az SSMS Transact-SQL használatával.

Az SQL Server és az Azure SQL Managed Instance egyaránt támogatja a fájlcsoportok és fájlok létrehozását. A felügyelt Azure SQL-példány automatikusan konfigurálja az összes hozzáadott adatbázisfájl elérési útját, így a felügyelt Azure SQL-példány ALTER DATABASE ADD FILE parancsa nem engedélyezi a FILENAME paramétert. Az Azure SQL Database csak a PRIMARY fájlcsoportban támogatja a particionált táblák létrehozását. Példakód az Azure SQL Database-hez Partíciós tábla létrehozása egy fájlcsoporton a Transact-SQLhasználatával.

Futtassa az alábbi példát egy üres adatbázison. Példa:

  • Négy új fájlcsoportot ad hozzá egy adatbázishoz.
  • Minden fájlcsoporthoz hozzáad egy fájlt.
  • Létrehoz egy RANGE RIGHT partíciófüggvénytmyRangePF1 három határértékkel, amelyek négy partícióra particionálják a táblát.
  • Létrehoz egy myRangePS1 nevű partíciós sémát, amely myRangePF1 alkalmaz a négy új fájlcsoportra.
  • Létrehoz egy PartitionTable nevű particionált táblát, amely myRangePS1 használ a col1particionálásához.
  1. Az Object Explorer-ben csatlakozzon az adatbázismotor egy példányához.

  2. A Standard eszköztáron válassza Új lekérdezéslehetőséget.

  3. Ez a példa létrehoz egy új adatbázist, és azt használja. Ezután létrehoz egy új fájlcsoportot, egy partíciófüggvényt és egy partíciós sémát. A rendszer létrehoz egy új táblát a tárolási helyként megadott partíciós sémával. Másolja és illessze be a következő példát a lekérdezési ablakba.

    Felügyelt példány használata esetén távolítsa el a FILENAME paramétert és a hozzá tartozó értéket a ALTER DATABASE ADD FILE parancsból. A felügyelt példány automatikusan meghatározza a fájl elérési útját.

    Ha SQL Server-példányt használ, a FILENAME paraméter értékét szabja testre a példánynak megfelelő helyre.

    Ha meglévő adatbázist szeretne használni, távolítsa el a CREATE DATABASE parancsot, és módosítsa a USE utasítást a megfelelő adatbázisnévre.

    SELECT Végrehajtás.

    CREATE DATABASE PartitionTest;
    GO
    
    USE PartitionTest;
    GO
    
    ALTER DATABASE PartitionTest
    ADD FILEGROUP test1fg;
    GO
    ALTER DATABASE PartitionTest
    ADD FILEGROUP test2fg;
    GO
    ALTER DATABASE PartitionTest
    ADD FILEGROUP test3fg;
    GO
    ALTER DATABASE PartitionTest
    ADD FILEGROUP test4fg;
    
    ALTER DATABASE PartitionTest
    ADD FILE
    (
        NAME = partitiontest1,
        FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\DATA\partitiontest1.ndf',
        SIZE = 5MB,
        FILEGROWTH = 5MB
    )
    TO FILEGROUP test1fg;
    ALTER DATABASE PartitionTest
    ADD FILE
    (
        NAME = partitiontest2,
        FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\DATA\partitiontest2.ndf',
        SIZE = 5MB,
        FILEGROWTH = 5MB
    )
    TO FILEGROUP test2fg;
    GO
    ALTER DATABASE PartitionTest
    ADD FILE
    (
        NAME = partitiontest3,
        FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\DATA\partitiontest3.ndf',
        SIZE = 5MB,
        FILEGROWTH = 5MB
    )
    TO FILEGROUP test3fg;
    GO
    ALTER DATABASE PartitionTest
    ADD FILE
    (
        NAME = partitiontest4,
        FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\DATA\partitiontest4.ndf',
        SIZE = 5MB,
        FILEGROWTH = 5MB
    )
    TO FILEGROUP test4fg;
    GO
    
    CREATE PARTITION FUNCTION myRangePF1 (datetime2(0))
        AS RANGE RIGHT FOR VALUES ('2022-04-01', '2022-05-01', '2022-06-01') ;
    GO
    
    CREATE PARTITION SCHEME myRangePS1
        AS PARTITION myRangePF1
        TO (test1fg, test2fg, test3fg, test4fg) ;
    GO
    
    CREATE TABLE PartitionTable (col1 datetime2(0) PRIMARY KEY, col2 char(10))
        ON myRangePS1 (col1) ;
    GO
    

Tábla particionálása SSMS-sel

Az ebben a szakaszban ismertetett lépéseket követve szükség esetén létrehozhat fájlcsoportokat és megfelelő fájlokat, majd particionált táblát hozhat létre, vagy particionálhat egy meglévő táblát az SQL Server Management Studio (SSMS) Partíció létrehozása varázsló használatával. A Partíció létrehozása varázsló az SQL Serverhez és az Azure SQL Managed Instance-hez készült SSMS-ben érhető el. Az Azure SQL Database esetében tekintse meg Particionált tábla létrehozása egy fájlcsoporton a Transact-SQLhasználatával.

Új fájlcsoportok létrehozása (nem kötelező)

Ha egy vagy több új fájlcsoportra szeretné helyezni a particionált táblát, kövesse az ebben a szakaszban leírt lépéseket. Az SQL Server és az Azure SQL Managed Instance egyaránt támogatja a fájlcsoportok és fájlok létrehozását. Felügyelt Azure SQL-példány esetén a létrehozott fájlok elérési útja automatikusan konfigurálva lesz Az Ön számára.

  1. Az Object Explorerben kattintson a jobb gombbal arra az adatbázisra, amelyben particionált táblát szeretne létrehozni, és válassza a Tulajdonságoklehetőséget.

  2. Az Adatbázis tulajdonságai –database_name párbeszédpanel Lap kijelöléseterületén válassza Fájlcsoportoklehetőséget.

  3. A Sorokterületen válassza a Hozzáadáslehetőséget. Az új sorban adja meg a fájlcsoport nevét.

    Warning

    Több fájlcsoport megadásakor a partíciók létrehozásakor a határértékekhez megadott fájlcsoportok számán kívül mindig egy további fájlcsoportnak kell lennie.

  4. Folytassa a sorok hozzáadását, amíg létre nem hozta a particionált tábla vagy táblák összes fájlcsoportját.

  5. Kattintson az OK gombra.

  6. A Válasszon ki egy lapot, azon belül válassza ki a Fájloklehetőséget.

  7. A Sorokterületen válassza a Hozzáadáslehetőséget. Az új sorban adjon meg egy fájlnevet, és válasszon egy fájlcsoportot.

  8. Folytassa a sorok hozzáadását, amíg nem hozott létre legalább egy fájlt az egyes fájlcsoportokhoz.

Particionált tábla létrehozása

  1. Ha szeretné, bontsa ki a Táblák mappát, és hozzon létre egy táblázatot a szokásos módon. További információ: Táblák létrehozása (adatbázismotor). Másik lehetőségként megadhat egy meglévő táblát a következő lépésben.

  2. Kattintson a jobb gombbal arra a táblára, amelyet particionálni szeretne, mutasson a Storagemenüpontra, majd válassza a Partíció létrehozása...lehetőséget.

  3. A Partíció létrehozása varázslóüdvözlő Partíció létrehozása varázsló lapján válassza a Továbblehetőséget.

  4. A Particionálási oszlop kiválasztása lapon, az Elérhető particionálási oszlopok rácsban jelölje ki azt az oszlopot, amelyen particionolni szeretné a táblát. Csak az adatok particionálására használható adattípusokkal rendelkező oszlopok jelennek meg a Elérhető particionálási oszlopokban rácson. Ha particionálási oszlopként kiválaszt egy számított oszlopot, az oszlopot megőrzött oszlopként kell létrehozni.

    A particionálási oszlop és az értéktartomány kiválasztását elsősorban az határozza meg, hogy az adatok milyen mértékben csoportosíthatók logikailag. Dönthet például úgy, hogy hónapok vagy negyedévek szerint logikai csoportosításra osztja az adatokat. Az adatokon végrehajtani kívánt lekérdezések határozzák meg, hogy ez a logikai csoportosítás megfelelő-e a táblapartíciók kezeléséhez. Minden adattípus használható particionálási oszlopként, kivéve szöveg, ntext, kép, xml, időbélyeg, varchar(max), nvarchar(max), varbinary(max), alias-adattípusok, vagy a közös nyelvi futtatókörnyezet (CLR) felhasználó által definiált adattípusai.

    A következő további lehetőségek érhetők el ezen a lapon:

    A táblázat rendezése a kijelölt particionált táblába
    Lehetővé teszi egy particionált tábla kiválasztását, amely kapcsolódó adatokat tartalmaz a táblához való csatlakozáshoz a particionálási oszlopban. A particionálási oszlopokhoz csatlakoztatott partíciókat tartalmazó táblák általában hatékonyabban kérdezhetők le.

    A nem egyedi indexeket és az egyedi indexeket igazítsa tárolás szempontjából az indexelt partícióoszlophoz
    Az azonos partíciós sémával particionált tábla összes indexét igazítja. Ha egy tábla és indexei egymáshoz vannak igazítva, hatékonyabban helyezheti át a partíciókat a particionált táblákba és onnan ki, mivel az adatok particionálása ugyanúgy történik.

    A particionálási oszlop és az egyéb beállítások kiválasztása után válassza a Továbblehetőséget.

  5. A Partíciófüggvény kiválasztása lapon, a partíciófüggvény választásaterületen válassza ki az Új partíciófüggvényt vagy a Meglévő partíciófüggvényt. Ha Új partíciófüggvénylehetőséget választja, adja meg a függvény nevét. Ha Meglévő partíciófüggvénylehetőséget választja, válassza ki a listából a használni kívánt függvény nevét. A Meglévő partíciófüggvény beállítás nem érhető el, ha az adatbázisban nincs más partíciófüggvény.

    A lap befejezése után válassza a Következőlehetőséget.

  6. A Partícióséma kiválasztása lapon, a Partícióséma kiválasztásaterületen válassza az új partícióséma vagy Meglévő partíciós sémalehetőséget. Ha Új partíciósémátválasztja, adja meg a séma nevét. Ha Meglévő partíciósémátválasztja, válassza ki a listából a használni kívánt séma nevét. A Meglévő partíciós séma beállítás nem érhető el, ha nincs más partíciós séma az adatbázisban.

    A lap befejezése után válassza a Következőlehetőséget.

  7. A Térképpartíciók lapon, Tartományalatt válassza Bal oldali határ vagy Jobb oldali határlehetőséget. bal oldali határ azt határozza meg, hogy a legnagyobb határolóérték szerepel-e egy partícióban. Jobb oldali határ határozza meg, hogy a legkisebb határolóérték szerepel az egyes partíciókban. További információ a partíciófüggvényjobb és bal oldali tartományairól.

    Ha több határpontot ad meg, a határértékeket fájlcsoporthoz rendelő sorok mellett mindig egy további sort kell megadnia.

    A Válassza ki a fájlcsoportokat, és adja meg a rács határértékeket, Fájlcsoportalatt válassza ki azt a fájlcsoportot, amelybe particionolni szeretné az adatokat. A Határterületen adja meg az egyes fájlcsoportok határértékét. Ha több vagy minden partíciót szeretne hozzárendelni ugyanahhoz a fájlcsoporthoz, minden sorhoz ugyanazt a fájlcsoportnevet válassza ki. Ha egyetlen sorban választ ki egy fájlcsoportot, és a határérték üres marad, a partíciófüggvény a partíciófüggvény nevével leképezi a teljes táblát vagy indexet egyetlen partícióra.

    A következő további lehetőségek érhetők el ezen a lapon:

    Határok beállítása...
    Megnyitja a Határértékek beállítása párbeszédpanelt a partíciókhoz használni kívánt határértékek és dátumtartományok kiválasztásához. Ez a beállítás csak akkor érhető el, ha olyan particionálási oszlopot választott, amely a következő adattípusok egyikét tartalmazza: dátum, datetime, smalldatetime, datetime2vagy datetimeoffset.

    Tárterület becslése
    Becslést ad a partíciókhoz megadott egyes fájlcsoportok sorszámára, szükséges tárhelyére és tárterületére. Ezek az értékek csak olvasható értékekként jelennek meg a rácsban.

    A Határértékek beállítása párbeszédpanel a következő további lehetőségeket teszi lehetővé:

    kezdési dátum
    A partíciók tartományértékeinek kezdő dátumát adja meg.

    Záró dátum
    A partíciók tartományértékeinek befejezési dátumát adja meg. Ha a Térképpartíciók lapon bal oldali határ jelölte ki, ez a dátum lesz az összes fájlcsoport/partíció utolsó értéke. Ha a Térképosztások lapon a Jobb határt jelölte ki, ez a dátum lesz az első érték az utolsó előtti fájlcsoportban.

    Dátumtartomány
    Az egyes partíciókhoz használni kívánt dátumrészletesség vagy tartományérték-növekmény kiválasztása.

    A lap befejezése után válassza a Következőlehetőséget.

  8. A Kimeneti beállítás kiválasztása lapon adja meg, hogyan szeretné befejezni a particionált táblát. Válassza Szkript létrehozása lehetőséget a varázsló előző lapjai alapján létrehozott SQL-szkript létrehozásához. Válassza a Futtatás azonnal opciót az új particionált tábla létrehozásához, miután befejezte a varázsló összes fennmaradó lapját. Válassza a Ütemezés lehetőséget az új particionált tábla előre meghatározott időpontban történő létrehozásához a jövőben.

    Ha a Szkript létrehozásalehetőséget választja, a következő lehetőségek érhetők el Szkriptbeállításokalatt:

    szkript a fájlba
    A szkriptet .sql fájlként hozza létre. Adjon meg egy fájlnevet és helyet a Fájlnév mezőben, vagy válassza a Tallózás lehetőséget a parancsfájl helyének párbeszédpanel megnyitásához. A Mentés máskéntmenüből válassza a Unicode-szöveg vagy a ANSI-szöveglehetőséget.

    szkript a vágólapra
    Menti a szkriptet a vágólapra.

    szkript új lekérdezésablakba
    Létrehozza a szkriptet egy új Lekérdezésszerkesztő ablakba. Ez az alapértelmezett kijelölés.

    Ha a Ütemezéslehetőséget választja, válassza az Ütemezés módosításalehetőséget.

    1. Az Új feladatütemezés párbeszédpanel Név mezőjében adja meg a feladatütemezés nevét.

    2. Az Ütemezés típusa listában válassza ki az ütemezés típusát:

      • Automatikus indítás az SQL Server-ügynök indításakor

      • Induljon el, amikor a processzorok tétlenné válnak

      • Recurring. Válassza ezt a lehetőséget, ha az új particionált tábla rendszeresen frissül új információkkal.

      • Egyszeri. Ez az alapértelmezett kijelölés.

    3. Jelölje be vagy törölje a jelet az Engedélyezett jelölőnégyzetből az ütemezés engedélyezéséhez vagy letiltásához.

    4. Ha a ismétlődőlehetőséget választja ki:

      1. A Gyakoriságiterületen adja meg az előfordulás gyakoriságát az Előfordulások listában:

        • Ha a Napilehetőséget választja, a Minden mezőben adja meg, hogy hány naponta ismétlődjön a feladatütemezés.

        • Ha a Hetilehetőséget választja, a Ismétlődés gyakorisága mezőben adja meg, hogy a feladatütemezés hetente hányszor ismétlődik. Válassza ki a hét azon napját vagy napjait, amelyen a feladatütemezés fut.

        • Ha Havilehetőséget választja, válassza Nap vagy Alehetőséget.

          • Ha a Naplehetőséget választja, adja meg a hónap azon napját, amelyen a feladatütemezést futtatná, valamint hogy a feladatütemezés milyen gyakran ismétlődik havonta. Ha például azt szeretné, hogy a feladatütemezés a hónap 15. napján fusson minden második hónapban, válassza Nap lehetőséget, és írja be a "15" értéket az első mezőbe, a második mezőbe pedig a "2" értéket. A második mezőben megengedett legnagyobb szám a "99".

          • Ha a Alehetőséget választja, válassza ki a hét azon hónapjának adott napját, amelyen belül a feladatütemezést futtatni szeretné, és hogy a feladatütemezés milyen gyakran ismétlődik hónapokban. Ha például azt szeretné, hogy a feladatütemezés a hónap utolsó munkanapján fusson minden második hónapban, válassza Naplehetőséget, az első listából válassza utolsó, hétköznapi a második listából, majd írja be a "2" értéket az utolsó mezőbe. Kiválaszthatja első, második, harmadikvagy negyedik, valamint az első két lista adott hétköznapjait (például: vasárnap vagy szerda). Az utolsó mezőben megengedett legnagyobb szám a "99".

      2. A Napi gyakoriságterületen adja meg, hogy a feladatütemezés napján milyen gyakran ismétlődik az ütemterv:

        • Ha a Egyszerlehetőséget választja, adja meg azt a napot, amikor a feladatütemezésnek futnia kell a Egyszer mezőben. Adja meg a nap óráját, percét és másodpercét, valamint az AM vagy a PM értéket.

        • Ha a Mindenesemény bekövetkezik, adja meg, milyen gyakran fut a feladatütemezés azon a napon, amelyet a Gyakoriságalatt választott ki. Ha például azt szeretné, hogy a feladatütemezés a feladatütemezés futtatása napjában 2 óránként ismétlődjön, válassza a Mindenbekövetkezik, írja be a "2" értéket az első mezőbe, majd válassza óra(ok) a listából. Ezen a listán kiválaszthatja perc(ek) és másodperc(ek). Az első mezőben megengedett legnagyobb szám a "100".

          A Kezdési idő mezőben adja meg, mikor kezdődjön a feladatütemezés futása. A mezőben adja meg azt az időpontot, amikor a feladatütemezés ismétlődésének be kell fejeződnie. Adja meg a nap óráját, percét és másodpercét, valamint az AM vagy a PM értéket.

      3. A Időtartamalatt, a Kezdési dátummezőben adja meg azt a dátumot, amelyen el szeretné indítani a feladatütemezést. Válassza a(z) Befejezési dátum vagy a(z) Nincs végdátum lehetőséget annak jelzésére, hogy mikor legyen vége a feladatütemezésnek. Ha a Befejezési dátumlehetőséget választja, adja meg azt a dátumot, amikor a feladatütemezés leáll.

    5. Ha az Egyszeri előfordulásalatt az egyszerilehetőséget választja, az Dátum mezőbe írja be a feladatütemezés futtatásának dátumát. Az Idő mezőben adja meg a feladatütemezés futtatásának időpontját. Adja meg a nap óráját, percét és másodpercét, valamint az AM vagy a PM értéket.

    6. Az Összefoglalásterületen, Leírásterületen ellenőrizze, hogy az összes feladatütemezési beállítás helyes-e.

    7. Kattintson az OK gombra.

    A lap befejezése után válassza a Következőlehetőséget.

  9. A Értékelés összegzése oldalon, a Kijelölés áttekintéseszakaszban bontsa ki az összes elérhető lehetőséget annak ellenőrzésére, hogy minden partícióbeállítás helyes-e. Ha minden a vártnak megfelelően van, válassza a Befejezéslehetőséget.

  10. A Partíció létrehozása varázsló előrehaladási lapján figyelje a Partíció létrehozása varázsló műveleteinek állapotadatait. A varázslóban kiválasztott beállításoktól függően a folyamatjelző lap egy vagy több műveletet tartalmazhat. A felső mezőben látható a varázsló általános állapota, valamint a varázsló által kapott állapot, hiba és figyelmeztető üzenetek száma.

    A Partíció létrehozása varázsló folyamatának lapján az alábbi lehetőségek érhetők el:

    Details
    A varázsló által végrehajtott műveletek eredményeként visszaadott műveleteket, állapotokat és üzeneteket jeleníti meg.

    Action
    Az egyes műveletek típusát és nevét adja meg.

    Status
    Azt jelzi, hogy a varázsló művelet egésze visszaadta-e a Sikeres vagy Hibaértékét.

    Message
    A folyamatból visszaadott hibaüzeneteket vagy figyelmeztető üzeneteket tartalmazza.

    Report
    Létrehoz egy jelentést, amely a Partíció létrehozása varázsló eredményeit tartalmazza. A beállítások a következők: Jelentés megtekintése, Jelentés mentése fájlba, Jelentés másolása vágólapra, és Jelentés küldése e-mail.

    Jelentés megtekintése
    Megnyitja a Jelentés megtekintése párbeszédpanelt, amely egy szöveges jelentést tartalmaz a Partíció létrehozása varázsló előrehaladásáról.

    Jelentés mentése fájlba
    Megnyitja a Jelentés mentése párbeszédpanelt.

    Jelentés másolása vágólapra
    Másolja a varázsló állapotjelentésének eredményeit a vágólapra.

    Jelentés küldése e-mailként
    Másolja a varázsló állapotjelentésének eredményeit egy e-mailbe.

    Ha elkészült, válassza a Bezáráslehetőséget.

A Partíció létrehozása varázsló létrehozza a partíciófüggvényt és a sémát, majd alkalmazza a particionálást a megadott táblára. A tábla particionálásának ellenőrzéséhez az Object Explorerben kattintson a jobb gombbal a táblára, és válassza a Tulajdonságoklehetőséget. Válassza a Storage lapot. A lapon olyan információk jelennek meg, mint a partíciófüggvény és a séma neve és a partíciók száma.

Particionált táblák és indexek metaadatainak lekérdezése

A metaadatok lekérdezésével megállapíthatja, hogy egy tábla particionálva van-e, a particionált tábla határpontjai, a particionált tábla particionálási oszlopa, az egyes partíciók sorainak száma, és hogy adattömörítési implementálva lett-e a partíciókon.

Tábla particionálásának meghatározása

A következő lekérdezés egy vagy több sort ad vissza, ha a tábla PartitionTable particionált, vagy ha a táblában lévő nem nem rendezett indexek particionáltak. Ha a tábla nincs particionálva, és a táblán található nem klaszterezett indexek sincsenek particionálva, akkor a rendszer nem ad vissza sorokat.

SELECT SCHEMA_NAME(t.schema_id) AS SchemaName, *
FROM sys.tables AS t
JOIN sys.indexes AS i
    ON t.[object_id] = i.[object_id]
JOIN sys.partition_schemes ps
    ON i.data_space_id = ps.data_space_id
WHERE t.name = 'PartitionTable';
GO

Particionált tábla határértékeinek meghatározása

Az alábbi lekérdezés a PartitionTable tábla egyes partícióinak határértékeit adja vissza.

A lekérdezés a type oszlopát használja, hogy csak a tábla fürtözött indexének adatait adja vissza, vagy az alap tábla adatait, ha a tábla halom. Ha a particionált, nem fürtözött indexeket fel szeretné venni a lekérdezés eredményeibe, távolítsa el vagy írjon megjegyzést a AND i.type <= 1 a lekérdezésből.

SELECT SCHEMA_NAME(t.schema_id) AS SchemaName, t.name AS TableName, i.name AS IndexName,
    p.partition_number, p.partition_id, i.data_space_id, f.function_id, f.type_desc,
    r.boundary_id, r.value AS BoundaryValue
FROM sys.tables AS t
JOIN sys.indexes AS i
    ON t.object_id = i.object_id
JOIN sys.partitions AS p
    ON i.object_id = p.object_id AND i.index_id = p.index_id
JOIN  sys.partition_schemes AS s
    ON i.data_space_id = s.data_space_id
JOIN sys.partition_functions AS f
    ON s.function_id = f.function_id
LEFT JOIN sys.partition_range_values AS r
    ON f.function_id = r.function_id and r.boundary_id = p.partition_number
WHERE
    t.name = 'PartitionTable'
    AND i.type <= 1
ORDER BY SchemaName, t.name, i.name, p.partition_number;

Particionált tábla partícióoszlopának meghatározása

Az alábbi lekérdezés a PartitionTabletábla particionálási oszlopának nevét adja vissza.

A lekérdezés a type oszlopát használja, hogy csak a tábla fürtözött indexének adatait adja vissza, vagy az alap tábla adatait, ha a tábla halom. Ha a particionált, nem fürtözött indexeket fel szeretné venni a lekérdezés eredményeibe, távolítsa el vagy írjon megjegyzést a AND i.type <= 1 a lekérdezésből.

SELECT
    t.[object_id] AS ObjectID
    , SCHEMA_NAME(t.schema_id) AS SchemaName
    , t.name AS TableName
    , ic.column_id AS PartitioningColumnID
    , c.name AS PartitioningColumnName
    , i.name as IndexName
FROM sys.tables AS t
JOIN sys.indexes AS i
    ON t.[object_id] = i.[object_id]
    AND i.[type] <= 1 -- clustered index or a heap
JOIN sys.partition_schemes AS ps
    ON ps.data_space_id = i.data_space_id
JOIN sys.index_columns AS ic
    ON ic.[object_id] = i.[object_id]
    AND ic.index_id = i.index_id
    AND ic.partition_ordinal >= 1 -- because 0 = non-partitioning column
JOIN sys.columns AS c
    ON t.[object_id] = c.[object_id]
    AND ic.column_id = c.column_id
WHERE t.name = 'PartitionTable';
GO

Az egyes partíciók lehetséges értéktartományát leíró sorok meghatározása

Az alábbi lekérdezés a PartitionTabletábla sorait adja vissza partíciónként, valamint a használt partíciófüggvény "összehasonlító operátorainak" leírását. A Kalen Delaney által eredetiként megadott lekérdezés.

A lekérdezés a type oszlopát használja, hogy csak a tábla fürtözött indexének adatait adja vissza, vagy az alap tábla adatait, ha a tábla halom. Ha a particionált, nem fürtözött indexeket fel szeretné venni a lekérdezés eredményeibe, távolítsa el vagy írjon megjegyzést a AND i.type <= 1 a lekérdezésből.

SELECT SCHEMA_NAME(t.schema_id) AS SchemaName, t.name AS TableName, i.name AS IndexName,
    p.partition_number AS PartitionNumber, f.name AS PartitionFunctionName, p.rows AS Rows, rv.value AS BoundaryValue,
CASE WHEN ISNULL(rv.value, rv2.value) IS NULL THEN 'N/A'
ELSE
    CASE WHEN f.boundary_value_on_right = 0 AND rv2.value IS NULL THEN '>='
        WHEN f.boundary_value_on_right = 0 THEN '>'
        ELSE '>='
    END + ' ' + ISNULL(CONVERT(varchar(64), rv2.value), 'Min Value') + ' ' +
        CASE f.boundary_value_on_right WHEN 1 THEN 'and <'
                ELSE 'and <=' END
        + ' ' + ISNULL(CONVERT(varchar(64), rv.value), 'Max Value')
END AS TextComparison
FROM sys.tables AS t
JOIN sys.indexes AS i
    ON t.object_id = i.object_id
JOIN sys.partitions AS p
    ON i.object_id = p.object_id AND i.index_id = p.index_id
JOIN  sys.partition_schemes AS s
    ON i.data_space_id = s.data_space_id
JOIN sys.partition_functions AS f
    ON s.function_id = f.function_id
LEFT JOIN sys.partition_range_values AS r
    ON f.function_id = r.function_id and r.boundary_id = p.partition_number
LEFT JOIN sys.partition_range_values AS rv
    ON f.function_id = rv.function_id
    AND p.partition_number = rv.boundary_id
LEFT JOIN sys.partition_range_values AS rv2
    ON f.function_id = rv2.function_id
    AND p.partition_number - 1= rv2.boundary_id
WHERE
    t.name = 'PartitionTable'
    AND i.type <= 1
ORDER BY t.name, p.partition_number;

A TextComparison oszlop az egyes partíciók lehetséges értéktartományát írja le a partíciófüggvénydefiníciója alapján. Az alábbi nézet a lekérdezés példaeredményeit szemlélteti:

SchemaName TableName IndexName PartitionNumber PartitionFunctionName rows BoundaryValue TextComparison
dbo PartitionTable PK_PartitionTable 1 PFTest 0 2022-03-01 00:00:00.000 >= Minimális érték és < 2022. márc. 1. 12:00 de.
dbo PartitionTable PK_PartitionTable 2 PFTest 2 2022-04-01 00:00:00.000 >= 2022. március 1. 0:00 és < 2022. április 1. 0:00
dbo PartitionTable PK_PartitionTable 3 PFTest 1 2022-05-01 00:00:00.000 >= 2022. ápr. 1. 12:00 és < 2022. május 1. 12:00
dbo PartitionTable PK_PartitionTable 4 PFTest 0 2022-06-01 00:00:00.000 >= 2022. május 1. 12:00 és < 2022. jún. 1. 12:00
dbo PartitionTable PK_PartitionTable 5 PFTest 1 2022-07-01 00:00:00.000 >= 2022. jún. 1. 12:00 és < 2022. július 1. 12:00
dbo PartitionTable PK_PartitionTable 6 PFTest 0 NULL >= 2022. július 1. 12:00 és < maximális érték

Limitations

Ismerje meg a korlátozások particionálásának korlátait és teljesítménybeli szempontjait