Ç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.
alter table (ekledikten veya kümelenmiş dizin seçeneği ile UNIQUE veya PRIMARY key kısıtlamaları için)
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.
[Top]
SQL Server Management Studio Kullanarak
Çevrimiçi bir dizini yeniden oluşturmak için
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.
Genişletme tablo ağıl.
Yeniden çevrimiçi dizin oluşturmak istediğiniz tabloyu genişletmek için artı işaretini tıklatın.
Genişletme Dizinler ağıl.
Çevrimiçi yeniden seçmek istediğiniz dizini sağ Özellikler.
Altında sayfaseçin seçenekleri.
Seçin Ver çevrimiçi dml işlemeve seçin gerçek listeden.
Click OK.
Çevrimiçi yeniden seçmek istediğiniz dizini sağ yeniden.
İç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.
[Top]
Transact-SQL'i Kullanma
Oluşturmak için yeniden oluşturmak veya bir dizin çevrimiçi bırakın
İçinde Object Explorer, örneğine bağlanmak Veritabanı Altyapısı.
Standart çubuğunda Yeni sorgu.
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).
[Top]