Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
platí pro:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
sql database v Microsoft Fabric
Data je možné ukládat pomocí algoritmů úložiště poskytovaných dělenými tabulkami a indexy. Dělení může vytvářet velké tabulky a indexy lépe spravovatelnými a škálovatelnými.
Dělení indexů a tabulek
Tato funkce umožňuje rozdělení dat indexů a tabulek do více skupin souborů v oddílech. Funkce oddílu definuje, jak se řádky tabulky nebo indexu mapují na sadu oddílů na základě hodnot určitých sloupců, které se označují jako sloupce dělení. Schéma oddílů mapuje každý oddíl určený funkcí oddílu na skupinu souborů. Díky tomu můžete vyvíjet strategie archivace, které umožňují škálování tabulek napříč skupinami souborů, a tedy i fyzickými zařízeními.
Objekt Database obsahuje kolekci PartitionFunction objektů, které představují implementované funkce oddílů a kolekci PartitionScheme objektů, které popisují, jak se data mapují na skupiny souborů.
Každý Table a Index objekt určuje, které schéma oddílů používá ve PartitionScheme vlastnosti a určuje sloupce v objektu PartitionSchemeParameterCollection.
Example
V následujících příkladech kódu budete muset vybrat programovací prostředí, programovací šablonu a programovací jazyk k vytvoření aplikace. Další informace najdete v tématu Vytvoření projektu SMO visual C# v sadě Visual Studio .NET.
Nastavení schématu oddílů pro tabulku v jazyce Visual C#
Příklad kódu ukazuje, jak vytvořit partition funkci a partition scheme pro tabulku TransactionHistory v ukázkové databázi AdventureWorks2025. Oddíly jsou rozděleny podle data se záměrem oddělit staré záznamy do TransactionHistoryArchive tabulky.
{
//Connect to the local, default instance of SQL Server.
Server srv;
srv = new Server();
//Reference the AdventureWorks2022 database.
Database db;
db = srv.Databases("AdventureWorks2022");
//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();
}
Nastavení schématu oddílů pro tabulku v PowerShellu
Příklad kódu ukazuje, jak vytvořit partition funkci a partition scheme pro tabulku TransactionHistory v ukázkové databázi AdventureWorks2025. Oddíly jsou rozděleny podle data se záměrem oddělit staré záznamy do TransactionHistoryArchive tabulky.
# 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()