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

SQL Serverデータベース(T-SQL)にファイルグループを追加する方法

    少なくとも、SQLServerデータベースには2つのオペレーティングシステムファイルがあります。データファイルとログファイル。

    データファイルには、データベース内の実際のデータと、テーブル、インデックス、ストアドプロシージャ、ビューなどのオブジェクトが保持されます。ログファイルには、データベース内のすべてのトランザクションを回復するために必要な情報が含まれています。

    デフォルトのオプションを使用してデータベースを作成すると、これらのファイルの両方が作成されます。これらのファイルは、プライマリファイルグループに作成されます。このファイルグループには、プライマリデータファイルと、他のファイルグループに配置されていないセカンダリファイルが含まれています。したがって、プライマリファイルグループはデフォルトのファイルグループです(ALTER DATABASEを使用して変更された場合を除く) ステートメント)。

    複数のデータファイルを作成する場合、それらをユーザー定義のファイルグループにグループ化するオプションもあります。これにより、作成した独自のファイルグループにファイルを論理的にグループ化できます。このファイルグループは、プライマリファイルグループに加えて存在します。データベースオブジェクトはプライマリファイルグループ内に残ります。

    この記事では、ユーザー定義のファイルグループを作成し、それにデータファイルを追加する方法を示します。

    T-SQLを使用して既存のデータベースにファイルグループを追加する例を次に示します。

    USE master
    GO
    
    ALTER DATABASE Solutions  
    ADD FILEGROUP Solutions1Filegroup1;  
    GO  
    ALTER DATABASE Solutions   
    ADD FILE   
    (  
        NAME = Solutions_dat_2,  
        FILENAME = 'D:\mssql\data\Solutions_dat2.ndf',  
        SIZE = 10MB,  
        MAXSIZE = 100MB,  
        FILEGROWTH = 5%  
    ),  
    (  
        NAME = Solutions_dat_3,  
        FILENAME = 'D:\mssql\data\Solutions_dat3.ndf',  
        SIZE = 10MB,  
        MAXSIZE = 100MB,  
        FILEGROWTH = 5% 
    )  
    TO FILEGROUP Solutions1Filegroup1;  
    GO
    

    この例では、Solutions1Filegroup1というファイルグループを作成します 2つのデータファイルを追加します。論理名、物理ファイルパス、サイズなど、ファイルごとに通常のものを指定します。

    この例の前提は、Solutions_dat_1というデータファイルがすでに存在することです。 。したがって、これらのファイルには同じ名前を付けますが、各ファイルの番号を増やすだけです。

    また、この例では、ファイルグループに多くの1つにすぎないかのように名前を付けています。必要に応じて複数のファイルグループを作成できます。作成する場合は、各ファイルグループを簡単に区別できる命名規則が必要になる可能性があります。

    ファイルグループを表示する

    sys.filegroupsにクエリを実行すると、特定のデータベースのファイルグループを表示できます。 カタログビュー。

    例:

    USE Solutions;
    SELECT name, type_desc
    FROM sys.filegroups;
    

    結果:

    name                  type_desc     
    --------------------  --------------
    PRIMARY               ROWS_FILEGROUP
    Solutions1Filegroup1  ROWS_FILEGROUP
    

    必要に応じて、アスタリスク(*)を使用してすべての行を返すこともできます。


    1. 演算子間のSQL

    2. シーケンスとトリガーを使用したOracleの自動インクリメントが正しく機能していません

    3. SQLServerで結果をページ分割するための最良の方法は何ですか

    4. ピアツーピア貸付プラットフォームデータモデル