Pour ajouter une note très importante sur ce que Mark S. a mentionné dans son article. Dans le script SQL spécifique mentionné dans la question, vous ne pouvez JAMAIS mentionner deux groupes de fichiers différents pour stocker vos lignes de données et la structure des données d'index.
La raison est due au fait que l'index en cours de création dans ce cas est un index clusterisé sur votre colonne de clé primaire. Les données d'index cluster et les lignes de données de votre table ne peuvent JAMAIS se trouver sur différents groupes de fichiers .
Donc, si vous avez deux groupes de fichiers dans votre base de données, par exemple PRIMARY et SECONDARY, le script mentionné ci-dessous stockera vos données de ligne et vos données d'index cluster sur le groupe de fichiers PRIMARY lui-même, même si j'ai mentionné un groupe de fichiers différent ( [SECONDARY]
) pour les données de la table . Plus intéressant encore, le script s'exécute avec succès (lorsque je m'attendais à ce qu'il donne une erreur car j'avais donné deux groupes de fichiers différents: P). SQL Server fait le tour de la scène silencieusement et intelligemment.
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
REMARQUE: votre index peut résider sur un groupe de fichiers différent UNIQUEMENT si l'index en cours de création est de nature non groupé .
Le script ci-dessous qui crée un index non clusterisé sera créé sur [SECONDARY]
le groupe de fichiers à la place lorsque les données de la table résident déjà sur [PRIMARY]
le groupe de fichiers:
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
Vous pouvez obtenir plus d'informations sur la façon dont le stockage d'index non cluster sur un groupe de fichiers différent peut aider vos requêtes à mieux fonctionner. Voici un tel lien.