Membuat dan memperbarui statistik
Berlaku untuk: SQL ServerAzure SQL Database Azure SQL Managed Instance Azure Synapse Analytics
Di SMO, informasi statistik tentang memproses kueri dalam database dapat dikumpulkan dengan menggunakan Statistic objek .
Anda dapat membuat statistik untuk kolom apa pun dengan menggunakan Statistic objek dan StatisticColumn . Metode Update ini dapat dijalankan untuk memperbarui statistik dalam Statistic objek. Hasilnya dapat ditampilkan di Pengoptimal Kueri.
Contoh
Untuk menggunakan contoh kode apa pun yang disediakan, Anda dapat memilih lingkungan pemrograman, templat pemrograman, dan bahasa pemrograman untuk membuat aplikasi Anda. Untuk informasi selengkapnya, lihat Membuat Proyek SMO Visual C# di Visual Studio .NET.
Membuat dan memperbarui statistik di Visual Basic
Contoh kode ini membuat tabel baru pada database yang sudah ada tempat Statistic objek dan StatisticColumn objek dibuat.
'Connect to the local, default instance of SQL Server.
Dim srv As Server
srv = New Server
'Reference the AdventureWorks2022 database.
Dim db As Database
db = srv.Databases("AdventureWorks2022")
'Reference the CreditCard table.
Dim tb As Table
tb = db.Tables("CreditCard", "Sales")
'Define a Statistic object by supplying the parent table and name arguments in the constructor.
Dim stat As Statistic
stat = New Statistic(tb, "Test_Statistics")
'Define a StatisticColumn object variable for the CardType column and add to the Statistic object variable.
Dim statcol As StatisticColumn
statcol = New StatisticColumn(stat, "CardType")
stat.StatisticColumns.Add(statcol)
'Create the statistic counter on the instance of SQL Server.
stat.Create()
Membuat dan memperbarui statistik di C#
Contoh kode ini membuat tabel baru pada database yang sudah ada tempat Statistic objek dan StatisticColumn objek dibuat.
public static void CreatingAndUpdatingStatistics()
{
// Connect to the local, default instance of SQL Server.
var srv = new Server();
// Reference the AdventureWorks2022 database.
var db = srv.Databases["AdventureWorks"];
// Reference the CreditCard table.
var tb = db.Tables["CreditCard", "Sales"];
// Define a Statistic object by supplying the parent table and name
// arguments in the constructor.
var stat = new Statistic(tb, "Test_Statistics");
// Define a StatisticColumn object variable for the CardType column
// and add to the Statistic object variable.
var statcol = new StatisticColumn(stat, "CardType");
stat.StatisticColumns.Add(statcol);
//Create the statistic counter on the instance of SQL Server.
stat.Create();
// List all the statistics object on the table (you will see the newly created one)
foreach (var s in tb.Statistics.Cast<Statistic>())
Console.WriteLine($"{s.ID}\t{s.Name}");
// Output:
// 2 AK_CreditCard_CardNumber
// 1 PK_CreditCard_CreditCardID
// 3 Test_Statistics
}
Membuat dan memperbarui statistik di PowerShell
Contoh kode ini membuat tabel baru pada database yang sudah ada tempat Statistic objek dan StatisticColumn objek dibuat.
Import-Module SQLServer
# Connect to the local, default instance of SQL Server.
$srv = Get-Item SQLSERVER:\SQL\localhost\DEFAULT
# Reference the AdventureWorks database.
$db = $srv.Databases["AdventureWorks"]
# Reference the CreditCard table.
$tb = $db.Tables["CreditCard", "Sales"]
# Define a Statistic object by supplying the parent table and name
# arguments in the constructor.
$stat = New-Object Microsoft.SqlServer.Management.Smo.Statistic($tb, "Test_Statistics")
# Define a StatisticColumn object variable for the CardType column
# and add to the Statistic object variable.
$statcol = New-Object Microsoft.SqlServer.Management.Smo.StatisticColumn($stat, "CardType")
$stat.StatisticColumns.Add($statcol)
# Create the statistic counter on the instance of SQL Server.
$stat.Create()
# Finally dump all the statistics (you can see the newly created one at the bottom)
$tb.Statistics
# Output:
# Name Last Updated Is From Index Statistic Columns
# Creation
# ---- ------------ -------------- -----------------
# AK_CreditCard_CardNumber 10/27/2017 2:33 PM True {CardNumber}
# PK_CreditCard_CreditCardID 10/27/2017 2:33 PM True {CreditCardID}
# Test_Statistics 6/4/2020 8:11 PM False {CardType}