Verwenden von Dateigruppen und Dateien zur Speicherung von DatenUsing Filegroups and Files to Store Data

DIESES THEMA GILT FÜR: jaSQL Server jaAzure SQL-DatenbankjaAzure SQL Data Warehouse neinParallel Data Warehouse THIS TOPIC APPLIES TO: yesSQL ServeryesAzure SQL DatabaseyesAzure SQL Data Warehouse noParallel Data Warehouse

Datendateien werden zur Speicherung von Datenbankdateien verwendet.Data files are used to store database files. Die Datendateien werden in Dateigruppen unterteilt.The data files are subdivided into file groups. Das Database-Objekt verfügt über eine FileGroups-Eigenschaft, die auf ein FileGroupCollection-Objekt verweist.The Database object has a FileGroups property that references a FileGroupCollection object. Jedes FileGroup-Objekt in dieser Auflistung verfügt über eine Files-Eigenschaft.Each FileGroup object in that collection has a Files property. Diese Eigenschaft bezieht sich auf eine DataFileCollection-Auflistung, die alle Datendateien enthält, die zur Datenbank gehören.This property refers to a DataFileCollection collection that contains all the data files that belong to the database. Eine Dateigruppe wird prinzipiell verwendet, um Dateien zu gruppieren, die zur Speicherung eines Datenbankobjekts genutzt werden.A file group is principally used to group files together that are used to store a database object. Ein Grund für die Verteilung eines Datenbankobjekts über mehrere Dateien ist die Verbesserung der Leistung, insbesondere wenn die Dateien auf unterschiedlichen Laufwerken gespeichert sind.One reason for spreading a database object over several files is that it can improve performance, especially if the files are stored on different disk drives.

Jede automatisch erstellte Datenbank verfügt über eine Dateigruppe mit dem Namen "Primary" und eine Datendatei, die den gleichen Namen hat wie die Datenbank.Every database that is created automatically has a file group named "Primary" and a data file with the same name as the database. Den Auflistungen können weitere Dateien und Gruppen hinzugefügt werden.Additional files and groups can be added to the collections.

BeispieleExamples

Für die folgenden Codebeispiele müssen Sie die Programmierungsumgebung, die Programmiervorlage und die Programmiersprache auswählen, um Ihre Anwendung zu erstellen.For the following code examples, you will have to select the programming environment, programming template and the programming language to create your application. Weitere Informationen finden Sie unter Erstellen eines Visual C# SMO-Projekts in Visual Studio .NET.For more information, see Create a Visual C# SMO Project in Visual Studio .NET.

Hinzufügen von Dateigruppen und Datendateien zu einer Datenbank in Visual BasicAdding FileGroups and DataFiles to a Database in Visual Basic

Die primäre Dateigruppe und die Datendatei werden automatisch mit Standardeigenschaftswerten erstellt.The primary file group and data file are created automatically with default property values. Im Codebeispiel werden einige Eigenschaftswerte angegeben, die Sie verwenden können.The code example specifies some property values that you can use. Andernfalls werden die Standardeigenschaftswerte verwendet.Otherwise, the default property values are used.

'Connect to the local, default instance of SQL Server.
Dim srv As Server
srv = New Server
'Reference the AdventureWorks2012 database.
Dim db As Database
db = srv.Databases("AdventureWorks2012")
'Define a FileGroup object called SECONDARY on the database.
Dim fg1 As FileGroup
fg1 = New FileGroup(db, "SECONDARY")
'Call the Create method to create the file group on the instance of SQL Server.
fg1.Create()
'Define a DataFile object on the file group and set the FileName property.
Dim df1 As DataFile
df1 = New DataFile(fg1, "datafile1")
df1.FileName = "c:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\datafile2.ndf"
'Call the Create method to create the data file on the instance of SQL Server.
df1.Create()

Hinzufügen von Dateigruppen und Datendateien zu einer Datenbank in Visual C#Adding FileGroups and DataFiles to a Database in Visual C#

Die primäre Dateigruppe und die Datendatei werden automatisch mit Standardeigenschaftswerten erstellt.The primary file group and data file are created automatically with default property values. Im Codebeispiel werden einige Eigenschaftswerte angegeben, die Sie verwenden können.The code example specifies some property values that you can use. Andernfalls werden die Standardeigenschaftswerte verwendet.Otherwise, the default property values are used.

{  
            Server srv = new Server();  
            //Reference the AdventureWorks2012 database.   
            Database db = default(Database);  
            db = srv.Databases["AdventureWorks2012"];  
            //Define a FileGroup object called SECONDARY on the database.   
            FileGroup fg1 = default(FileGroup);  
            fg1 = new FileGroup(db, "SECONDARY");  
            //Call the Create method to create the file group on the instance of SQL Server.   
            fg1.Create();  
            //Define a DataFile object on the file group and set the FileName property.   
            DataFile df1 = default(DataFile);  
            df1 = new DataFile(fg1, "datafile1");  
            df1.FileName = "c:\\Program Files\\Microsoft SQL Server\\MSSQL.1\\MSSQL\\Data\\datafile2.ndf";  
            //Call the Create method to create the data file on the instance of SQL Server.   
            df1.Create();  
        }  

Hinzufügen von Dateigruppen und Datendateien zu einer Datenbank in PowerShellAdding FileGroups and DataFiles to a Database in PowerShell

Die primäre Dateigruppe und die Datendatei werden automatisch mit Standardeigenschaftswerten erstellt.The primary file group and data file are created automatically with default property values. Im Codebeispiel werden einige Eigenschaftswerte angegeben, die Sie verwenden können.The code example specifies some property values that you can use. Andernfalls werden die Standardeigenschaftswerte verwendet.Otherwise, the default property values are used.

# Set the path context to the local, default instance of SQL Server.  
CD \sql\localhost\default\Databases\  

#And the database object corresponding to AdventureWorks2012.  
$db = get-item AdventureWorks2012  

#Create a new filegroup  
$fg1 = New-Object -TypeName Microsoft.SqlServer.Management.SMO.Filegroup -argumentlist $db, "SECONDARY"  
$fg1.Create()  

#Define a DataFile object on the file group and set the FileName property.   
$df1 = New-Object -TypeName Microsoft.SqlServer.Management.SMO.DataFile -argumentlist $fg1, "datafile1"  

#Make sure to have a directory created to hold the designated data file  
$df1.FileName = "c:\\TestData\\datafile2.ndf"  

#Call the Create method to create the data file on the instance of SQL Server.   
$df1.Create()  

Erstellen, Ändern und Löschen einer Protokolldatei in Visual BasicCreating, Altering, and Removing a Log File in Visual Basic

Im Codebeispiel wird ein LogFile-Objekt erstellt, eine der Eigenschaften geändert und das Objekt dann aus der Datenbank gelöscht.The code example creates a LogFile object, changes one of the properties, and then removes it from the database.

'Connect to the local, default instance of SQL Server.
Dim srv As Server
srv = New Server
'Reference the AdventureWorks2012 2008R2 database.
Dim db As Database
db = srv.Databases("AdventureWorks2012")
'Define a LogFile object and set the database, name, and file name properties in the constructor.
Dim lf1 As LogFile
lf1 = New LogFile(db, "logfile1", "c:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\logfile1.ldf")
'Set the file growth to 6%.
lf1.GrowthType = FileGrowthType.Percent
lf1.Growth = 6
'Run the Create method to create the log file on the instance of SQL Server.
lf1.Create()
'Alter the growth percentage.
lf1.Growth = 7
lf1.Alter()
'Remove the log file.
lf1.Drop()

Erstellen, Ändern und Löschen einer Protokolldatei in Visual C#Creating, Altering, and Removing a Log File in Visual C#

Im Codebeispiel wird ein LogFile-Objekt erstellt, eine der Eigenschaften geändert und das Objekt dann aus der Datenbank gelöscht.The code example creates a LogFile object, changes one of the properties, and then removes it from the database.

//Connect to the local, default instance of SQL Server.   
            Server srv = new Server();  
            //Reference the AdventureWorks2012 database.   
            Database db = default(Database);  
            db = srv.Databases["AdventureWorks2012"];  
            //Define a LogFile object and set the database, name, and file name properties in the constructor.   
            LogFile lf1 = default(LogFile);  
            lf1 = new LogFile(db, "logfile1", "c:\\Program Files\\Microsoft SQL Server\\MSSQL.10_50.MSSQLSERVER\\MSSQL\\Data\\logfile1.ldf");  
            //Set the file growth to 6%.   
            lf1.GrowthType = FileGrowthType.Percent;  
            lf1.Growth = 6;  
            //Run the Create method to create the log file on the instance of SQL Server.   
            lf1.Create();  
            //Alter the growth percentage.   
            lf1.Growth = 7;  
            lf1.Alter();  
            //Remove the log file.   
            lf1.Drop();  

Erstellen, Ändern und Löschen einer Protokolldatei in PowerShellCreating, Altering, and Removing a Log File in PowerShell

Im Codebeispiel wird ein LogFile-Objekt erstellt, eine der Eigenschaften geändert und das Objekt dann aus der Datenbank gelöscht.The code example creates a LogFile object, changes one of the properties, and then removes it from the database.

#Load the assembly containing the enums used in this example  
[reflection.assembly]::LoadWithPartialName("Microsoft.SqlServer.SqlEnum")  

# Set the path context to the local, default instance of SQL Server.  
CD \sql\localhost\default\Databases\  

#And the database object corresponding to AdventureWorks2012  
$db = get-item AdventureWorks2012  

#Create a filegroup  
$fg1 = New-Object -TypeName Microsoft.SqlServer.Management.SMO.Filegroup -argumentlist $db, "Secondary"  

#Call the Create method to create the file group on the instance of SQL Server.   
$fg1.Create()  

#Define a LogFile object on the file group and set the FileName property.   
$lf1 = New-Object -TypeName Microsoft.SqlServer.Management.SMO.LogFile -argumentlist $db, "LogFile2"  

#Set a location for it - make sure the directory exists  
$lf1.FileName = "logfile1", "c:\\Program Files\\Microsoft SQL Server\\MSSQL.10_50.MSSQLSERVER\\MSSQL\\Data\\logfile1.ldf"  

#Set file growth to 6%  
$lf1.GrowthType = [Microsoft.SqlServer.Management.Smo.FileGrowthType]::Percent  
$lf1.Growth = 6.0  

#Call the Create method to create the data file on the instance of SQL Server.   
$lf1.Create()  

#Alter a value and drop the log file  
$lf1.Growth = 7.0  
$lf1.Alter()  
$lf1.Drop()  

Siehe auchSee Also

FileGroup
Datenbankdateien und DateigruppenDatabase Files and Filegroups