Création et mise à jour des statistiques

Dans SMO, les informations statistiques à propos du traitement de requêtes dans la base de données peuvent être recueillies en utilisant l'objet Statistic.

Il est possible de créer des statistiques pour n'importe quelle colonne en utilisant l'objet Statistic et StatisticColumn. La méthode Update peut être exécutée pour mettre à jour les statistiques dans l'objet Statistic. Les résultats peuvent être affichés dans l'optimiseur de requête.

Exemple

Pour utiliser un exemple de code fourni, vous devrez sélectionner l'environnement, le modèle et le langage de programmation dans lequel créer votre application. Pour plus d'informations, consultez Créer un projet SMO Visual Basic dans Visual Studio .NET ou Créer un projet SMO Visual C# dans Visual Studio .NET.

Création et mise à jour des statistiques en Visual Basic

Cet exemple de code crée une table sur une base de données existante pour laquelle l'objet Statistic et l'objet StatisticColumn sont créés.

'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")
'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()

Création et mise à jour des statistiques en Visual C#

Cet exemple de code crée une table sur une base de données existante pour laquelle l'objet Statistic et l'objet StatisticColumn sont créés.

{
            //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"];
            //Reference the CreditCard table. 
           
           Table tb = db.Tables["CreditCard", "Sales"];
            //Define a Statistic object by supplying the parent table and name 
            //arguments in the constructor. 
            Statistic stat = default(Statistic);
            stat = new Statistic(tb, "Test_Statistics");
            //Define a StatisticColumn object variable for the CardType column 
            //and add to the Statistic object variable. 
            StatisticColumn statcol = default(StatisticColumn);
            statcol = new StatisticColumn(stat, "CardType");
            stat.StatisticColumns.Add(statcol);
            //Create the statistic counter on the instance of SQL Server. 
            stat.Create();
        }

Création et mise à jour des statistiques dans PowerShell

Cet exemple de code crée une table sur une base de données existante pour laquelle l'objet Statistic et l'objet StatisticColumn sont créés.

# Example of implementing a full text search on the default instance.
# Set the path context to the local, default instance of SQL Server and database tables

CD \sql\localhost\default\databases
$db = get-item AdventureWorks2012

CD AdventureWorks2012\tables

#Get a reference to the table
$tb = get-item Production.ProductCategory


# Define a FullTextCatalog object variable by specifying the parent database and name arguments in the constructor.

$ftc = New-Object -TypeName Microsoft.SqlServer.Management.SMO.FullTextCatalog -argumentlist $db, "Test_Catalog2"
$ftc.IsDefault = $true

# Create the Full Text Search catalog on the instance of SQL Server.
$ftc.Create()

# Define a FullTextIndex object variable by supplying the parent table argument in the constructor.
$fti = New-Object -TypeName Microsoft.SqlServer.Management.SMO.FullTextIndex -argumentlist $tb

#  Define a FullTextIndexColumn object variable by supplying the parent index 
#  and column name arguments in the constructor.

$ftic = New-Object -TypeName Microsoft.SqlServer.Management.SMO.FullTextIndexColumn -argumentlist $fti, "Name"

# Add the indexed column to the index.
$fti.IndexedColumns.Add($ftic)

# Set change tracking
$fti.ChangeTracking = [Microsoft.SqlServer.Management.SMO.ChangeTracking]::Automatic

# Specify the unique index on the table that is required by the Full Text Search index.
$fti.UniqueIndexName = "AK_ProductCategory_Name"

# Specify the catalog associated with the index.
$fti.CatalogName = "Test_Catalog2"

# Create the Full Text Search Index
$fti.Create()