sql >> Databasteknik >  >> RDS >> Sqlserver

Hur man lägger till en filgrupp till en SQL Server-databas (T-SQL)

En SQL Server-databas har åtminstone två operativsystemfiler; datafilen och loggfilen.

Datafilen innehåller de faktiska uppgifterna i databasen, såväl som objekt som tabeller, index, lagrade procedurer och vyer. Loggfilen innehåller den information som krävs för att återställa alla transaktioner i databasen.

När du skapar en databas med standardalternativen skapas båda dessa filer. Dessa filer skapas i den primära filgruppen. Denna filgrupp innehåller den primära datafilen och alla sekundära filer som inte läggs in i andra filgrupper. Så den primära filgruppen är standardfilgruppen (såvida den inte ändras genom att använda ALTER DATABASE uttalande).

När du skapar flera datafiler har du också möjlighet att gruppera dem i en användardefinierad filgrupp. Detta låter dig gruppera filer logiskt i sin egen filgrupp som du skapat. Denna filgrupp kommer då att finnas förutom den primära filgruppen. Databasobjekt kommer att finnas kvar inom den primära filgruppen.

Den här artikeln visar hur man skapar en användardefinierad filgrupp och lägger till några datafiler till den.

Exempel

Här är ett exempel på hur du använder T-SQL för att lägga till en filgrupp till en befintlig databas:

USE master
GO

ALTER DATABASE Solutions  
ADD FILEGROUP Solutions1Filegroup1;  
GO  
ALTER DATABASE Solutions   
ADD FILE   
(  
    NAME = Solutions_dat_2,  
    FILENAME = 'D:\mssql\data\Solutions_dat2.ndf',  
    SIZE = 10MB,  
    MAXSIZE = 100MB,  
    FILEGROWTH = 5%  
),  
(  
    NAME = Solutions_dat_3,  
    FILENAME = 'D:\mssql\data\Solutions_dat3.ndf',  
    SIZE = 10MB,  
    MAXSIZE = 100MB,  
    FILEGROWTH = 5% 
)  
TO FILEGROUP Solutions1Filegroup1;  
GO

Det här exemplet skapar en filgrupp som heter Solutions1Filegroup1 och lägger till två datafiler till den. Vi anger de vanliga sakerna för varje fil, såsom dess logiska namn, fysiska sökväg, storlek, etc.

Antagandet med detta exempel är att det redan finns en datafil som heter Solutions_dat_1 . Därför namnger vi dessa filer på samma sätt, men ökar bara antalet för varje fil.

I det här exemplet namnger vi också filgruppen som om den bara är en av många. Vi kan skapa flera filgrupper om det behövs, och om vi gör det vill vi förmodligen ha en namnkonvention som gör det enkelt att skilja mellan varje filgrupp.

Visa filgrupperna

Du kan se filgrupperna för en given databas genom att fråga sys.filegroups katalogvy.

Exempel:

USE Solutions;
SELECT name, type_desc
FROM sys.filegroups;

Resultat:

name                  type_desc     
--------------------  --------------
PRIMARY               ROWS_FILEGROUP
Solutions1Filegroup1  ROWS_FILEGROUP

Du kan också använda en asterisk (*) för att returnera alla rader om det behövs.


  1. SQL-fråga för att välja datum mellan två datum

  2. importera redan skapad SQLite-databas (xamarin)

  3. Forum för bästa SQL Server Performance för hjälp med de svåraste frågorna

  4. Anonymisera dina plandetaljer inbyggt i Plan Explorer