AffinityInfo クラス

AffinityInfo オブジェクトは、SQL Server のインスタンス上のすべての CPU および NUMA ノードの関係設定を表します。 AffinityInfo オブジェクトにアクセスするには Server オブジェクトを使用します。

継承階層

System.Object
  Microsoft.SqlServer.Management.Smo.AffinityInfoBase
    Microsoft.SqlServer.Management.Smo.AffinityInfo

名前空間:  Microsoft.SqlServer.Management.Smo
アセンブリ:  Microsoft.SqlServer.Smo (Microsoft.SqlServer.Smo.dll)

構文

'宣言
Public NotInheritable Class AffinityInfo _
    Inherits AffinityInfoBase
'使用
Dim instance As AffinityInfo
public sealed class AffinityInfo : AffinityInfoBase
public ref class AffinityInfo sealed : public AffinityInfoBase
[<SealedAttribute>]
type AffinityInfo =  
    class 
        inherit AffinityInfoBase 
    end
public final class AffinityInfo extends AffinityInfoBase

AffinityInfo 型は、以下のメンバーを公開しています。

プロパティ

  名前 説明
パブリック プロパティ AffinityType AffinityInfoBase の関係の種類を取得または設定します。 (AffinityInfoBase から継承されています。)
パブリック プロパティ Cpus Cpus メンバーは、SQL Server のインスタンス上のすべての CPU 設定を表すコレクションです。
パブリック プロパティ NumaNodes NUMA ノード設定を格納するコレクションを取得します。 (AffinityInfoBase から継承されています。)
パブリック プロパティ Parent AffinityInfo オブジェクトの親オブジェクトを取得します。この値は、AffinityInfo メンバーを含む Server オブジェクトと同じです。

先頭に戻る

メソッド

  名前 説明
パブリック メソッド Alter SQL Server インスタンスの AffinityInfo オブジェクトのプロパティに対する変更を更新します。 (AffinityInfoBase から継承されています。)
パブリック メソッド Equals (Object から継承されています。)
パブリック メソッド GetHashCode (Object から継承されています。)
パブリック メソッド GetType (Object から継承されています。)
パブリック メソッド Refresh このメソッドによって、Cpus および NumaNode にローカル サーバー設定が指定されます。 (AffinityInfoBase.Refresh() をオーバーライドします。)
パブリック メソッド Script() Transact-SQL スクリプトを生成します。 (AffinityInfoBase から継承されています。)
パブリック メソッド Script(ScriptingOptions) Transact-SQL スクリプトを生成します。 (AffinityInfoBase から継承されています。)
パブリック メソッド ToString (Object から継承されています。)

先頭に戻る

説明

AffinityInfo オブジェクトのプロパティは、固定サーバー ロール public のメンバーであれば取得できます。

任意の AffinityInfo オブジェクト プロパティを設定し、Alter メソッドを実行するには、データベースの ALTER 権限を持っている必要があります。

AffinityInfo オブジェクトを作成するには、親データベースの ALTER ANY APPLICATION ロール権限を持っている必要があります。

AffinityInfo オブジェクトを削除するには、アプリケーション ロールの所有者であるか、親データベースの ALTER ANY APPLICATION ロール権限を持っている必要があります。

AffinityInfo オブジェクトに対する権限の許可、拒否、または取り消しを行うには、アプリケーション ロールの CONTROL 権限を持っている必要があります。

使用例

この例では、SQL Server のインスタンス上のすべての CPU をハード アフィニティに設定する方法を示します。

C#

using System;
using Microsoft.SqlServer.Management.Smo;

namespace samples
{
    class Program
    {
        static void Main(string[] args)
        {
            Server dbServer = new Server("(local)");
            dbServer.AffinityInfo.AffinityType = AffinityType.Manual;

            foreach (Cpu cpu in dbServer.AffinityInfo.Cpus)
                cpu.AffinityMask = true;

            dbServer.AffinityInfo.Alter();
        }
    }
}

Powershell

//Create the server. 
$dbServer = new-Object Microsoft.SqlServer.Management.Smo.Server("(local)")

//Set the Affinity Type
$dbServer.AffinityInfo.AffinityType = [Microsoft.SqlServer.Management.Smo.AffinityType]'Manual'

//Set each CPU to Hard affinity and update
foreach ($cpu In $dbServer.AffinityInfo.Cpus)
{
   $cpu.AffinityMask = $True
   $dbServer.AffinityInfo.Alter() 
}

スレッド セーフ

この型の public static (Visual Basic では Shared) のメンバーはすべて、スレッド セーフです。インスタンス メンバーの場合は、スレッド セーフであるとは限りません。

関連項目

参照

Microsoft.SqlServer.Management.Smo 名前空間

その他の技術情報

64 個を超える CPU のインストールに関するベスト プラクティス

ALTER SERVER CONFIGURATION SET PROCESS AFFINITY (Transact-SQL)