Çevrimiçi dizin işlemleri gerçekleştirme

Bu konu oluşturmak, yeniden veya çevrimiçi dizinler bırak açıklar SQL Server 2012kullanarak SQL Server Management Studioya Transact-SQL. ONLINE seçeneği, bu dizin işlemleri sırasında için temel tablo veya kümelenmiş dizin veri ve ilişkili bir kümelendirilmemiş dizinler eşzamanlı kullanıcı erişim sağlar. Kümelenmiş bir dizin bir kullanıcı tarafından yeniden inşa ederken, örneğin, kullanıcı ve diğer temel verileri sorgulamak ve güncelleştirmek devam edebilirsiniz. Ne zaman veri tanım dili (ddl) işlemlerini çevrimdışı, bina ya da bir Kümelenmiş dizin yeniden oluşturma gibi gerçekleştirir; Bu işlem, temel veri ve ilişkili dizinler üzerinde özel kilit tutun. Dizin işlemi tamamlanıncaya kadar bu temel veri değişiklikleri ve sorguları önler.

[!NOT]

Çevrimiçi dizin işlemleri mevcut olmayan her SQL Serverbaskı. Daha fazla bilgi için, bkz. SQL Server 2012 Sürümleri Tarafından Desteklenen Özellikler.

Bu Konuda

  • Başlamadan Önce

    Sınırlamalar ve Kısıtlamalar

    Güvenlik

  • Çevrimiçi dizin kullanarak yeniden oluşturmak için:

    SQL Server Management Studio

    Transact-SQL

Başlamadan Önce

Sınırlamalar ve Kısıtlamalar

  • Dizin işlemleri sırasında eşzamanlı kullanıcı etkinliği gereksinimini çok önemli olduğu, haftada yedi gün günde 24 Saat faaliyet gösteren iş ortamları için çevrimiçi dizin işlemi öneririz.

  • ONLINE seçeneği, aşağıdaki kullanılabilir Transact-SQLdeyimleri.

  • Daha fazla sınırlamalar ve oluşturma ile ilgili kısıtlamalar için bkz: yeniden oluşturuluyor veya dizin çevrimiçi bırakarak Çevrimiçi dizin işlemleri için kurallar.

Güvenlik

İzinler

Tablo veya görünümde ALTER izni gerektirir.

Başa Dön bağlantısıyla kullanılan ok simgesi[Top]

SQL Server Management Studio Kullanarak

Çevrimiçi bir dizini yeniden oluşturmak için

  1. Nesne Explorer'da, yeniden çevrimiçi dizin oluşturmak istediğiniz tabloyu içeren veritabanını genişletmek için artı işaretini tıklatın.

  2. Genişletme tablo ağıl.

  3. Yeniden çevrimiçi dizin oluşturmak istediğiniz tabloyu genişletmek için artı işaretini tıklatın.

  4. Genişletme Dizinler ağıl.

  5. Çevrimiçi yeniden seçmek istediğiniz dizini sağ Özellikler.

  6. Altında sayfaseçin seçenekleri.

  7. Seçin Ver çevrimiçi dml işlemeve seçin gerçek listeden.

  8. Click OK.

  9. Çevrimiçi yeniden seçmek istediğiniz dizini sağ yeniden.

  10. İçinde Dizinler yeniden iletişim kutusunda, doğru dizin içinde olduğundan emin olun dizinleri yeniden oluşturmak için ızgara ve tıklayın Tamam.

Başa Dön bağlantısıyla kullanılan ok simgesi[Top]

Transact-SQL'i Kullanma

Oluşturmak için yeniden oluşturmak veya bir dizin çevrimiçi bırakın

  1. İçinde Object Explorer, örneğine bağlanmak Veritabanı Altyapısı.

  2. Standart çubuğunda Yeni sorgu.

  3. Kopyalama ve aşağıdaki örnek sorgu penceresine yapıştırın ve tıkırtı Execute. Örnek, varolan bir çevrimiçi yeniden oluşturur.

    USE AdventureWorks2012;
    GO
    ALTER INDEX AK_Employee_NationalIDNumber ON HumanResources.Employee
    REBUILD WITH (ONLINE = ON);
    GO
    

    Aşağıdaki örnek çevrimiçi kümelenmiş bir dizin siler ve elde edilen tablo (yığın) filegroup için hamle NewGroupkullanarak MOVE TOtümcesi. sys.indexes, sys.tables, Ve sys.filegroupsönce ve sonra hareket filegroups dizin ve tablo yerleşimi doğrulamak için sorgulanan katalog görünümleri.

    USE AdventureWorks2012;
    GO
    --Create a clustered index on the PRIMARY filegroup if the index does not exist.
    IF NOT EXISTS (SELECT name FROM sys.indexes WHERE name = 
                N'AK_BillOfMaterials_ProductAssemblyID_ComponentID_StartDate')
        CREATE UNIQUE CLUSTERED INDEX
            AK_BillOfMaterials_ProductAssemblyID_ComponentID_StartDate 
        ON Production.BillOfMaterials (ProductAssemblyID, ComponentID, 
            StartDate)
        ON 'PRIMARY';
    GO
    -- Verify filegroup location of the clustered index.
    SELECT t.name AS [Table Name], i.name AS [Index Name], i.type_desc,
        i.data_space_id, f.name AS [Filegroup Name]
    FROM sys.indexes AS i
        JOIN sys.filegroups AS f ON i.data_space_id = f.data_space_id
        JOIN sys.tables as t ON i.object_id = t.object_id
            AND i.object_id = OBJECT_ID(N'Production.BillOfMaterials','U')
    GO
    --Create filegroup NewGroup if it does not exist.
    IF NOT EXISTS (SELECT name FROM sys.filegroups
                    WHERE name = N'NewGroup')
        BEGIN
        ALTER DATABASE AdventureWorks2012
            ADD FILEGROUP NewGroup;
        ALTER DATABASE AdventureWorks2012
            ADD FILE (NAME = File1,
                FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\File1.ndf')
            TO FILEGROUP NewGroup;
        END
    GO
    --Verify new filegroup
    SELECT * from sys.filegroups;
    GO
    -- Drop the clustered index and move the BillOfMaterials table to
    -- the Newgroup filegroup.
    -- Set ONLINE = OFF to execute this example on editions other than Enterprise Edition.
    DROP INDEX AK_BillOfMaterials_ProductAssemblyID_ComponentID_StartDate 
        ON Production.BillOfMaterials 
        WITH (ONLINE = ON, MOVE TO NewGroup);
    GO
    -- Verify filegroup location of the moved table.
    SELECT t.name AS [Table Name], i.name AS [Index Name], i.type_desc,
        i.data_space_id, f.name AS [Filegroup Name]
    FROM sys.indexes AS i
        JOIN sys.filegroups AS f ON i.data_space_id = f.data_space_id
        JOIN sys.tables as t ON i.object_id = t.object_id
            AND i.object_id = OBJECT_ID(N'Production.BillOfMaterials','U');
    GO
    

Daha fazla bilgi için, bkz. ALTER INDEX (Transact-SQL).

Başa Dön bağlantısıyla kullanılan ok simgesi[Top]