1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

SQL ServerのON [PRIMARY] って何だろう

Posted at

はじめに

自分で書いたクエリからテーブルを作成しましたが、SSMSで生成したクエリと差があったので調べてみました。


シンプルにテーブルを作ってみます。

CREATE TABLE m_code (
  id INT,
  name NVARCHAR(20)
)

SSMSから作成したテーブルのクエリを生成します。

CREATE TABLE [dbo].[m_code](
	[id] [int] NULL,
	[name] [nvarchar](20) NULL
) ON [PRIMARY]

カラムは指定しないとNULL許容型になります。
これは「そうなんだね」という感じですが…

ON [PRIMARY] って何だろう:thinking:

ON { partition_scheme | filegroup | "default" }
テーブルが格納されるパーティション構成またはファイル グループを指定します。 partition_scheme を指定すると、テーブルはパーティション テーブルとなり、各パーティションは partition_scheme で指定した 1 つ以上のファイル グループに格納されます。 filegroup を指定すると、テーブルは指定されたファイル グループに格納されます。 ファイル グループがデータベース内に存在している必要があります。 "default" を指定するか、ON をまったく指定しないと、テーブルは既定のファイル グループに格納されます。 CREATE TABLE で指定したテーブルの格納方法を後から変更することはできません。

つまり

  • テーブルを指定したファイルグループに作成できる
  • 指定しないと既定のファイルグループに作成される
  • [PRIMARY]は既定のファイルグループ

ON [PRIMARY] とは
「テーブルをファイルグループ[PRIMARY]に作成する」という意味
※[PRIMARY]は既定のファイルグループなので、指定しなくても結果は同じ

ところで、

ファイルグループ って何だろう:thinking:

ファイル グループ
プライマリ ファイル グループには、プライマリ データ ファイル、および他のファイル グループに配置されていないセカンダリ ファイルが含まれます。
ユーザー定義のファイル グループを作成して、データベースの管理、データの割り当て、および配置をしやすくするために、データ ファイルをグループ化できます。
たとえば、Data1.ndf、Data2.ndf、Data3.ndf をそれぞれ 3 つのディスク ドライブ上に作成し、ファイル グループ fgroup1 に割り当てることができます。 その後、ファイル グループ fgroup1 にテーブルを作成することができます。 このテーブル内にあるデータに対するクエリが 3 つのディスクにわたって分散されるため、パフォーマンスが向上します。 RAID (Redundant Array of Independent Disks) ストライプ セットにファイルを 1 つ作成しても、同じくらいパフォーマンスを向上させることができます。 ただし、ファイルとファイル グループを使用すれば、新しいファイルを新しいディスクに容易に追加できます。

一言でいうと、ファイルグループとはデータファイルをグループ化したもの

SQLServerファイルグループ.jpg

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?