1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
| -- Vos fonctions et schémas sont corrects (pas de changement)
CREATE PARTITION FUNCTION myRangePF1 (date)
AS RANGE RIGHT FOR VALUES ('2025-04-01', '2025-05-01', '2025-06-01') ;
GO
CREATE PARTITION SCHEME ValueDatePartScheme
AS PARTITION myRangePF1
ALL TO ('PRIMARY') ; -- Pour cet exemple, tout sur PRIMARY. En production, vous auriez des filegroups différents.
GO
-- ÉTAPE 1: Modifier la création de la table
-- Nous changeons la PK pour qu'elle soit CLUSTERED et alignée.
-- C'est la meilleure pratique pour le partitionnement.
CREATE TABLE [test].[ImportedFiles](
[ID] [bigint] IDENTITY(1,1) NOT NULL,
[ImportName] [varchar](256) NOT NULL,
[ImportDate] [date] NOT NULL,
-- La PK est maintenant CLUSTERED et ALIGNÉE.
-- Elle commence par la colonne de partition pour une performance optimale.
CONSTRAINT [PK_ImportedFiles] PRIMARY KEY CLUSTERED
(
[ImportDate] ASC, -- Clé de partition en premier
[ID] ASC -- ID pour garantir l'unicité
)
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF)
-- La PK elle-même est placée sur le schéma de partition
ON [ValueDatePartScheme]([ImportDate])
)
-- La table (le CLUSTERED INDEX) est placée sur le schéma de partition
ON [ValueDatePartScheme]([ImportDate]);
GO
-- ÉTAPE 2: Créer l'index dédié pour le Full-Text Search
-- Cet index est unique, sur une seule colonne (ID), et NON-ALIGNÉ.
CREATE UNIQUE NONCLUSTERED INDEX [IX_FTS_Key]
ON [test].[ImportedFiles] ([ID])
-- Nous le plaçons sur [PRIMARY] car il n'est pas aligné (il ne contient pas ImportDate)
ON [PRIMARY];
GO
-- ÉTAPE 3: Créer votre index Full-Text
-- (En supposant que votre catalogue 'ftCatalog' existe)
CREATE FULLTEXT INDEX ON [test].[ImportedFiles](ImportName)
-- Dites à FTS d'utiliser VOTRE NOUVEL index comme clé
KEY INDEX [IX_FTS_Key]
ON (ftCatalog); -- Remplacez par le nom de votre catalogue FTS
GO |
Partager