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.