Przy użyciu tabeli i podziału indeksu
Dane mogą być przechowywane przy użyciu algorytmów magazynowania, dostarczonych przez Podzielonym na partycje tabel i indeksów.Partycje można wprowadzać dużych tabel i indeksów w zarządzaniu i bardziej skalowalne.
Indeks i Partycjonowanie tabeli
Ta funkcja umożliwia indeksu i tabela danych umieszczonych na wiele grup plików w partycji.Funkcja partycjonowanie definiuje, jak wiersze tabela lub indeksu są mapowane na zestaw partycjonowanie, na podstawie wartości niektórych kolumn, zwany podział kolumny.Schemat partycji mapuje każdej partycji określonego przez funkcja partycji do grupy plików.Pozwala to rozwój strategii archiwizacji, umożliwiające tabelach skalowane różnych grup plików i dlatego fizycznego urządzenia.
Database Zawiera obiektu kolekcja z PartitionFunction obiekty reprezentujące funkcje realizowane partycji i kolekcja z PartitionScheme obiektów, które opisują sposób danych jest mapowany do pliku grup.
Każdy Table i Index Określa obiekt, który schemat partycji używa w PartitionScheme właściwość i określa kolumny w PartitionSchemeParameterCollection.
Przykład
Na przykład następujący kod konieczne będzie wybierz środowisko programowania programowania szablonu i język programowania, aby utworzyć aplikację.Aby uzyskać więcej informacji, zobacz Jak Tworzenie projektu SMO Visual Basic w programie Visual Studio.NET i Jak Tworzenie projektu programu Visual C# SMO w programie Visual Studio.NET.
Definiowanie schemat partycji dla tabeli w programie Visual Basic
Przykład kodu pokazuje jak utworzyć funkcja partycji i schemat partycji dla TransactionHistory tabela w AdventureWorks2008R2 przykładowej bazy danych.Partycje są podzielone według data, z zamiarem oddzielanie się starych rekordów do TransactionHistoryArchive tabela.
'Connect to the local, default instance of SQL Server.
Dim srv As Server
srv = New Server()
'Reference the AdventureWorks2008R2database.
Dim db As Database
db = srv.Databases("AdventureWorks2008R2")
'Define and create three new file groups on the database.
Dim fg2 As FileGroup
fg2 = New FileGroup(db, "Second")
fg2.Create()
Dim fg3 As FileGroup
fg3 = New FileGroup(db, "Third")
fg3.Create()
Dim fg4 As FileGroup
fg4 = New FileGroup(db, "Fourth")
fg4.Create()
'Define a partition function by supplying the parent database and name arguments in the constructor.
Dim pf As PartitionFunction
pf = New PartitionFunction(db, "TransHistPF")
'Add a partition function parameter that specifies the function uses a DateTime range type.
Dim pfp As PartitionFunctionParameter
pfp = New PartitionFunctionParameter(pf, DataType.DateTime)
pf.PartitionFunctionParameters.Add(pfp)
'Specify the three dates that divide the data into four partitions.
Dim val() As Object
val = New Object() {"1/1/2003", "1/1/2004", "1/1/2005"}
pf.RangeValues = val
'Create the partition function.
pf.Create()
'Define a partition scheme by supplying the parent database and name arguments in the constructor.
Dim ps As PartitionScheme
ps = New PartitionScheme(db, "TransHistPS")
'Specify the partition function and the filegroups required by the partition scheme.
ps.PartitionFunction = "TransHistPF"
ps.FileGroups.Add("PRIMARY")
ps.FileGroups.Add("second")
ps.FileGroups.Add("Third")
ps.FileGroups.Add("Fourth")
'Create the partition scheme.
ps.Create()
Definiowanie schemat partycji dla tabeli w środowisku Visual C#
Przykład kodu pokazuje jak utworzyć funkcja partycji i schemat partycji dla TransactionHistory tabela w AdventureWorks2008R2 przykładowej bazy danych.Partycje są podzielone według data, z zamiarem oddzielanie się starych rekordów do TransactionHistoryArchive tabela.
{
//Connect to the local, default instance of SQL Server.
Server srv;
srv = new Server();
//Reference the AdventureWorks2008R2 database.
Database db;
db = srv.Databases("AdventureWorks2008R2");
//Define and create three new file groups on the database.
FileGroup fg2;
fg2 = new FileGroup(db, "Second");
fg2.Create();
FileGroup fg3;
fg3 = new FileGroup(db, "Third");
fg3.Create();
FileGroup fg4;
fg4 = new FileGroup(db, "Fourth");
fg4.Create();
//Define a partition function by supplying the parent database and name arguments in the constructor.
PartitionFunction pf;
pf = new PartitionFunction(db, "TransHistPF");
//Add a partition function parameter that specifies the function uses a DateTime range type.
PartitionFunctionParameter pfp;
pfp = new PartitionFunctionParameter(pf, DataType.DateTime);
pf.PartitionFunctionParameters.Add(pfp);
//Specify the three dates that divide the data into four partitions.
object[] val;
val = new object[] {"1/1/2003", "1/1/2004", "1/1/2005"};
pf.RangeValues = val;
//Create the partition function.
pf.Create();
//Define a partition scheme by supplying the parent database and name arguments in the constructor.
PartitionScheme ps;
ps = new PartitionScheme(db, "TransHistPS");
//Specify the partition function and the filegroups required by the partition scheme.
ps.PartitionFunction = "TransHistPF";
ps.FileGroups.Add("PRIMARY");
ps.FileGroups.Add("second");
ps.FileGroups.Add("Third");
ps.FileGroups.Add("Fourth");
//Create the partition scheme.
ps.Create();
}
Konfigurowanie partycji schematu tabeli PowerShell
Przykład kodu pokazuje jak utworzyć funkcja partycji i schemat partycji dla TransactionHistory tabela w AdventureWorks2008R2 przykładowej bazy danych.Partycje są podzielone według data, z zamiarem oddzielanie się starych rekordów do TransactionHistoryArchive tabela.
# Set the path context to the local, default instance of SQL Server.
CD \sql\localhost\default
#Get a server object which corresponds to the default instance
$srv = New-Object -TypeName Microsoft.SqlServer.Management.SMO.Server
$db = $srv.Databases["AdventureWorks"]
#Create four filegroups
$fg1 = New-Object -TypeName Microsoft.SqlServer.Management.SMO.Filegroup -argumentlist $db, "First"
$fg2 = New-Object -TypeName Microsoft.SqlServer.Management.SMO.Filegroup -argumentlist $db, "Second"
$fg3 = New-Object -TypeName Microsoft.SqlServer.Management.SMO.Filegroup -argumentlist $db, "Third"
$fg4 = New-Object -TypeName Microsoft.SqlServer.Management.SMO.Filegroup -argumentlist $db, "Fourth"
#Define a partition function by supplying the parent database and name arguments in the constructor.
$pf = New-Object -TypeName Microsoft.SqlServer.Management.SMO.PartitionFunction -argumentlist $db, "TransHistPF"
$T = [Microsoft.SqlServer.Management.SMO.DataType]::DateTime
$T
$T.GetType()
#Add a partition function parameter that specifies the function uses a DateTime range type.
$pfp = New-Object -TypeName Microsoft.SqlServer.Management.SMO.PartitionFunctionParameter -argumentlist $pf, $T
#Specify the three dates that divide the data into four partitions.
#Create an array of type object to hold the partition data
$val = "1/1/2003"."1/1/2004","1/1/2005"
$pf.RangeValues = $val
$pf
#Create the partition function
$pf.Create()
#Create partition scheme
$ps = New-Object -TypeName Microsoft.SqlServer.Management.SMO.PartitionScheme -argumentlist $db, "TransHistPS"
$ps.PartitionFunction = "TransHistPF"
#add the filegroups to the scheme
$ps.FileGroups.Add("PRIMARY")
$ps.FileGroups.Add("Second")
$ps.FileGroups.Add("Third")
$ps.FileGroups.Add("Fourth")
#Create it at the server
$ps.Create()