Delen via


Een bestaande index verplaatsen naar een andere bestandsgroep

van toepassing op:SQL ServerAzure SQL Managed Instance

In dit onderwerp wordt beschreven hoe u een bestaande index verplaatst van de huidige bestandsgroep naar een andere bestandsgroep in SQL Server met behulp van SQL Server Management Studio of Transact-SQL.

Zie Plaatsing van indexen voor bestandsgroepen of partitieschema'svoor ontwerpoverwegingen, waaronder waarom u mogelijk een niet-geclusterde index op een andere bestandsgroep wilt plaatsen.

Voordat u begint

Beperkingen en beperkingen

  • Als een tabel een geclusterde index heeft, en u verplaatst de geclusterde index naar een nieuwe bestandsgroep, dan verplaatst u daarmee ook de tabel naar die bestandsgroep.

  • U kunt geen indexen verplaatsen die zijn gemaakt door middel van een UNIEK of PRIMAIR sleutelbeperking met Management Studio. Als u deze indexen wilt verplaatsen, gebruikt u de instructie CREATE INDEX met de optie (DROP_EXISTING=ON) in Transact-SQL.

Veiligheid

Machtigingen

Vereist ALTER-machtigingen voor de tabel of weergave. De gebruiker moet lid zijn van de sysadmin vaste serverfunctie of de db_ddladmin en db_owner vaste databaserollen.

SQL Server Management Studio gebruiken

Een bestaande index verplaatsen naar een andere bestandsgroep met behulp van Table Designer

  1. Klik in Objectverkenner op het plusteken om de database uit te vouwen die de tabel bevat die de index bevat die u wilt verplaatsen.

  2. Klik op het plusteken om de map Tabellen uit te vouwen.

  3. Klik met de rechtermuisknop op de tabel met de index die u wilt verplaatsen en selecteer Ontwerp.

  4. Klik in het menu Tabelontwerper op Indexen/Sleutels.

  5. Selecteer de index die u wilt verplaatsen.

  6. Vouw in het hoofdraster gegevensruimtespecificatieuit.

  7. Selecteer Naam van bestandsgroep of partitieschema en selecteer in de lijst de bestandsgroep of het partitieschema waarnaar u de index wilt verplaatsen.

  8. Klik op Sluit.

  9. Selecteer in het menu BestandOpslaantable_name.

Een bestaande index verplaatsen naar een andere bestandsgroep in Objectverkenner

  1. Klik in Objectverkenner op het plusteken om de database uit te vouwen die de tabel bevat die de index bevat die u wilt verplaatsen.

  2. Klik op het plusteken om de map Tabellen uit te vouwen.

  3. Klik op het plusteken om de tabel met de index uit te vouwen die u wilt verplaatsen.

  4. Klik op het plusteken om de map Indexen uit te vouwen.

  5. Klik met de rechtermuisknop op de index die u wilt verplaatsen en selecteer Eigenschappen.

  6. Onder Een pagina selecteren, selecteer Opslag.

  7. Selecteer de bestandsgroep waarin u de index wilt verplaatsen.

    Als de tabel of index is gepartitioneerd, selecteert u het partitieschema waarin u de index wilt verplaatsen. Zie Gepartitioneerde tabellen en indexenvoor meer informatie over gepartitioneerde indexen.

    Als u een geclusterde index verplaatst, kunt u onlineverwerking gebruiken. Met onlineverwerking hebben gelijktijdige gebruikers toegang tot de onderliggende gegevens en tot niet-geclusterde indexen tijdens de indexbewerking. Zie Indexbewerkingen online uitvoerenvoor meer informatie.

    Op multiprocessor-computers met SQL Server kunt u het aantal processors configureren dat wordt gebruikt om de indexopdracht uit te voeren door een maximale mate van parallelisme op te geven. De functie voor parallelle indexbewerkingen is niet beschikbaar in elke editie van SQL Server. Zie Functies die worden ondersteund door de edities van SQL Server voor een lijst met functies die worden ondersteund door de edities van SQL Server 2016. Zie Parallelle indexbewerkingen configurerenvoor meer informatie over parallelle indexbewerkingen.

  8. Klik op OK-.

De volgende informatie is beschikbaar op de pagina Storage van het dialoogvenster Indexeigenschappen -index_name:

bestandsgroep
Slaat de index op in de opgegeven bestandsgroep. In de lijst worden alleen standaardbestandsgroepen (rijbestanden) weergegeven. De standaardlijstselectie is de primaire bestandsgroep van de database.

Filestream-bestandsgroep
Hiermee specificeert u de bestandsgroep voor FILESTREAM-gegevens. In deze lijst worden alleen FILESTREAM-bestandsgroepen weergegeven. De standaardlijstselectie is de PRIMAIRE FILESTREAM-bestandsgroep.

Partitieschema
Slaat de index op in een partitieschema. Als u op partitieschema klikt schakelt u het onderstaande raster in. De standaardlijstselectie is het partitieschema dat wordt gebruikt voor het opslaan van de tabelgegevens. Wanneer u een ander partitieschema in de lijst selecteert, wordt de informatie in het raster bijgewerkt.

De partitieschemaoptie is niet beschikbaar als er geen partitieschema's in de database zijn.

Filestream-partitieschema
Hiermee geeft u het partitieschema voor FILESTREAM-gegevens. Het partitieschema moet symmetrisch zijn met het schema dat is opgegeven in de Partitieschema optie.

Als de tabel niet is gepartitioneerd, is het veld leeg.

parameterparameter voor partitieschema's
Geeft de naam weer van de kolom die deelneemt aan het partitieschema.

Tabelkolom
Selecteer de tabel of weergave die u wilt toewijzen aan het partitieschema.

kolomgegevenstype
Geeft informatie over het gegevenstype van de kolom weer.

Notitie

Als de tabelkolom een berekende kolom is, geeft kolomgegevenstype 'berekende kolom' weer.

Onlineverwerking van DML-instructies toestaan tijdens het verplaatsen van de index
Hiermee hebben gebruikers toegang tot de onderliggende tabel- of geclusterde indexgegevens en eventuele gekoppelde niet-geclusterde indexen tijdens de indexbewerking.

Notitie

Deze optie is niet beschikbaar voor XML-indexen of als de index een uitgeschakelde geclusterde index is.

maximale mate van parallelle uitvoering instellen
Hiermee beperkt u het aantal processors dat moet worden gebruikt tijdens parallelle uitvoering van het plan. De standaardwaarde, 0, gebruikt het werkelijke aantal beschikbare CPU's. Als u de waarde instelt op 1, wordt het genereren van parallelle plannen onderdrukt; als u de waarde instelt op een getal dat groter is dan 1, wordt het maximum aantal processors beperkt dat wordt gebruikt door één queryuitvoering. Deze optie wordt alleen beschikbaar als het dialoogvenster de status opnieuw opbouwen of opnieuw maken heeft.

Notitie

Als een waarde groter is dan het aantal beschikbare CPU's is opgegeven, wordt het werkelijke aantal beschikbare CPU's gebruikt.

Transact-SQL gebruiken

Een bestaande index verplaatsen naar een andere bestandsgroep

  1. Maak in Objectverkennerverbinding met een exemplaar van Database Engine.

  2. Klik op de standaardbalk op Nieuwe query.

  3. Kopieer en plak het volgende voorbeeld in het queryvenster en klik op uitvoeren.

    USE AdventureWorks2022;  
    GO  
    -- Creates the TransactionsFG1 filegroup on the AdventureWorks2022 database  
    ALTER DATABASE AdventureWorks2022  
    ADD FILEGROUP TransactionsFG1;  
    GO  
    /* Adds the TransactionsFG1dat3 file to the TransactionsFG1 filegroup. Please note that you will have to change the filename parameter in this statement to execute it without errors.  
    */  
    ALTER DATABASE AdventureWorks2022   
    ADD FILE   
    (  
        NAME = TransactionsFG1dat3,  
        FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL13\MSSQL\DATA\TransactionsFG1dat3.ndf',  
        SIZE = 5MB,  
        MAXSIZE = 100MB,  
        FILEGROWTH = 5MB  
    )  
    TO FILEGROUP TransactionsFG1;  
    GO  
    /*Creates the IX_Employee_OrganizationLevel_OrganizationNode index  
      on the TransactionsPS1 filegroup and drops the original IX_Employee_OrganizationLevel_OrganizationNode index.  
    */  
    CREATE NONCLUSTERED INDEX IX_Employee_OrganizationLevel_OrganizationNode  
        ON HumanResources.Employee (OrganizationLevel, OrganizationNode)  
        WITH (DROP_EXISTING = ON)  
        ON TransactionsFG1;  
    GO  
    

Volgende stappen

Zie CREATE INDEX (Transact-SQL)voor meer informatie.

architectuur en ontwerphandleiding voor SQL Server-indexen