Saya membuat skrip pengaturan SQL dan saya menggunakan skrip orang lain sebagai contoh. Berikut ini contoh skripnya:
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[be_Categories](
[CategoryID] [uniqueidentifier] ROWGUIDCOL NOT NULL CONSTRAINT [DF_be_Categories_CategoryID] DEFAULT (newid()),
[CategoryName] [nvarchar](50) NULL,
[Description] [nvarchar](200) NULL,
[ParentID] [uniqueidentifier] NULL,
CONSTRAINT [PK_be_Categories] PRIMARY KEY CLUSTERED
(
[CategoryID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
Apakah ada yang tahu apa yang perintah ON [PRIMARY] lakukan?
sql
sql-server
database
database-design
Icono123
sumber
sumber
0
ataufalse
adalah tentang memastikan bahwa kode Anda beroperasi dalam keadaan yang diketahui, yang merupakan masalah logis dan benar dan bukan masalah optimisasi.ON PRIMARY
sintaks dua kali dalam skrip - Satu untuk tabel dan satu lagi untuk batasan tabel. Apa artinya jika ada batasan tabel dalam hal penyimpanan? Kedengarannya tidak relevan atau berlebihan bagi saya. Secara sintaksis, seharusnya sudah cukup untuk menyebutkannya sekali pada tingkat tabel atau apakah benar-benar mungkin untuk menyimpan tabel pada grup file PRIMARY dan data batasan tabel pada grup file NON-PRIMARY?Ini merujuk pada filegroup tempat objek yang Anda buat berada. Jadi, grup grup utama Anda dapat berada di drive D: \ dari server Anda. Anda kemudian dapat membuat filegroup lain yang disebut Indeks. Filegroup ini dapat berada di drive E: \ dari server Anda.
sumber
ON [PRIMARY] akan membuat struktur pada filegroup "Utama". Dalam hal ini indeks kunci utama dan tabel akan ditempatkan pada grup grup "Utama" dalam database.
sumber
Untuk menambahkan catatan yang sangat penting tentang apa yang Mark S. sebutkan di posnya. Dalam SQL Script spesifik yang telah disebutkan dalam pertanyaan Anda tidak akan pernah menyebutkan dua grup file yang berbeda untuk menyimpan baris data Anda dan struktur data indeks.
Alasan mengapa karena fakta bahwa indeks yang dibuat dalam kasus ini adalah Indeks berkerumun di kolom kunci utama Anda. Data indeks berkerumun dan baris data tabel Anda tidak akan pernah berada di grup file yang berbeda .
Jadi jika Anda memiliki dua grup file pada basis data Anda mis. PRIMARY dan SECONDARY maka skrip yang disebutkan di bawah ini akan menyimpan data baris Anda dan mengelompokkan data indeks pada file grup PRIMARY itu sendiri meskipun saya telah menyebutkan grup file yang berbeda (
[SECONDARY]
) untuk data tabel . Lebih menarik skrip berjalan dengan sukses juga (ketika saya mengharapkannya untuk memberikan kesalahan karena saya telah memberikan dua grup file yang berbeda: P). SQL Server melakukan trik di belakang layar secara diam-diam dan cerdas.CATATAN: Indeks Anda dapat berada pada grup file yang berbeda HANYA jika indeks yang dibuat bersifat non-cluster .
Script di bawah ini yang membuat indeks non-clustered akan dibuat pada
[SECONDARY]
grup file sebagai gantinya ketika data tabel sudah berada pada[PRIMARY]
grup file:Anda bisa mendapatkan informasi lebih lanjut tentang bagaimana menyimpan indeks non-cluster di grup file yang berbeda dapat membantu kueri Anda bekerja lebih baik. Inilah salah satu tautannya.
sumber