sql >> データベース >  >> RDS >> Sqlserver

SQL Serverのsys.parameters、sys.system_parameters、およびsys.all_parametersの違い

    SQL Serverでパラメータ情報を返すカタログビューを探している場合は、選択肢があります。特に、sys.parametersからパラメータ情報を取得できます。 、sys.system_parameters 、およびsys.all_parameters

    ただし、これらのビューには違いがあるため、おそらくこれらのビューの1つだけを使用することをお勧めします。

    各ビューの正式な定義は次のとおりです。

    sys.parameters
    パラメータを受け入れるオブジェクトの各パラメータの行が含まれます。オブジェクトがスカラー関数の場合、戻り値を説明する単一の行もあります。その行のparameter_id値は0になります。
    sys.system_parameters
    パラメータを持つシステムオブジェクトごとに1つの行が含まれます。
    sys.all_parameters
    ユーザー定義またはシステムオブジェクトに属するすべてのパラメーターの和集合を表示します。

    つまり、最後のビューは、前の2つのビューの結果を組み合わせたものです(システムとシステムの両方からパラメータ情報を返します ユーザー定義オブジェクト)。

    これらのビューによって返される結果の違いを示す例を次に示します。

    USE Music;
    
    SELECT COUNT(*) AS parameters
    FROM sys.parameters;
    
    SELECT COUNT(*) AS system_parameters
    FROM sys.system_parameters;
    
    SELECT COUNT(*) AS all_parameters
    FROM sys.all_parameters;
    

    結果:

    +--------------+
    | parameters   |
    |--------------|
    | 7            |
    +--------------+
    (1 row affected)
    +---------------------+
    | system_parameters   |
    |---------------------|
    | 7442                |
    +---------------------+
    (1 row affected)
    +------------------+
    | all_parameters   |
    |------------------|
    | 7449             |
    +------------------+
    (1 row affected)
    

    この場合、このデータベースにはユーザー定義オブジェクトのパラメーターは7つしかありません。残りはシステムオブジェクトからのものです。

    最初の2つのクエリの結果を合計すると、sys.all_viewsと同じ結果が得られます。 :

    SELECT 
    (SELECT COUNT(*) FROM sys.parameters) +
    (SELECT COUNT(*) FROM sys.system_parameters)
    AS Result;
    

    結果:

    +----------+
    | Result   |
    |----------|
    | 7449     |
    +----------+
    

    1. 軽い購入アドベンチャー

    2. 転送されたレコードのパフォーマンスの問題の特定と修正

    3. Postgresに特定のインデックスを使用させるにはどうすればよいですか?

    4. MariaDB JSON_QUERY()の説明