sql - traducir - ¿Qué significa ON[PRIMARIO]?
que significa tag en youtube (4)
Cuando crea una base de datos en Microsoft SQL Server, puede tener varios grupos de archivos, donde el almacenamiento se crea en varios lugares, directorios o discos. Cada grupo de archivos puede ser nombrado. El grupo de archivos PRIMARIO es el predeterminado, que siempre se crea, por lo que el SQL que ha creado crea su tabla EN el grupo de archivos PRIMARIO.
Ver MSDN para la sintaxis completa.
Estoy creando un script de configuración de SQL y estoy usando el script de otra persona como ejemplo. Aquí hay un ejemplo de la secuencia de comandos:
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
¿Alguien sabe lo que hace el comando ON [PRIMARY]?
ON [PRIMARIO] creará las estructuras en el grupo de archivos "Primario". En este caso, el índice de clave principal y la tabla se ubicarán en el grupo de archivos "Primario" dentro de la base de datos.
Para agregar una nota muy importante sobre lo que Mark S. ha mencionado en su publicación. En la secuencia de comandos SQL específica que se ha mencionado en la pregunta, NUNCA puede mencionar dos grupos de archivos diferentes para almacenar sus filas de datos y la estructura de datos del índice.
La razón por la que se debe al hecho de que el índice que se está creando en este caso es un Índice agrupado en su columna de clave principal. Los datos de índice agrupados y las filas de datos de su tabla NUNCA pueden estar en diferentes grupos de archivos .
Entonces, en caso de que tenga dos grupos de archivos en su base de datos, p. Ej., PRIMARY y SECONDARY, el script que se menciona a continuación almacenará los datos de su fila y los datos de índice agrupados en el grupo de archivos PRIMARY, aunque he mencionado un grupo de archivos diferente ( [SECONDARY]
) para Los datos de la tabla. Más interesante aún, el script también se ejecuta con éxito (cuando esperaba que diera un error, ya que había dado dos grupos de archivos diferentes: P). SQL Server hace el truco detrás de la escena de manera inteligente y silenciosa.
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 [SECONDARY]
GO
NOTA: Su índice puede residir en un grupo de archivos diferente SOLAMENTE si el índice que se está creando no es de naturaleza agrupada .
La siguiente secuencia de comandos que crea un índice no agrupado se creará en el grupo de archivos [SECONDARY]
cuando los datos de la tabla ya residan en el grupo de archivos [PRIMARY]
:
CREATE NONCLUSTERED INDEX [IX_Categories] ON [dbo].[be_Categories]
(
[CategoryName] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [Secondary]
GO
Puede obtener más información sobre cómo almacenar índices no agrupados en un grupo de archivos diferente puede ayudar a que sus consultas tengan un mejor desempeño. Here hay uno de esos enlaces.
Se refiere a qué grupo de archivos reside el objeto que está creando. Por lo tanto, su grupo de archivos principal podría residir en la unidad D: / de su servidor. A continuación, podría crear otro grupo de archivos llamado Índices. Este grupo de archivos podría residir en la unidad E: / de su servidor.