No passado, escolhi a datetime
coluna criada como índice clusterizado inadequado na tabela.
Agora concluí (com base no plano de execução) que seria melhor escolher a chave primária de identidade de ID como a chave agrupada, porque ela é frequentemente referenciada como chave estrangeira.
Gostaria de descartar a chave clusterizada atual e criar uma nova, mas não posso descartar a chave primária, porque o full-text
índice depende dessa chave primária.
Posso apenas alternar a chave primária para o índice clusterizado ou preciso descartar a chave primária e a cadeia de todos os objetos dependentes?
Abaixo você encontrará definição de tabela e definição de índice clusterizado.
CREATE TABLE [dbo].[Realty](
[Id] [int] IDENTITY(1,1) NOT NULL,
[Created] [datetime] NOT NULL,
....
CONSTRAINT [PK_Realty] PRIMARY KEY NONCLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 90) ON [PRIMARY]
...
CREATE CLUSTERED INDEX [Created] ON [dbo].[Realty]
(
[Created] 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, FILLFACTOR = 90) ON [PRIMARY]
GO
Basta descartar o índice clusterizado existente e criar um novo na
ID
coluna.Claro, você vai querer fazer isso durante uma janela de manutenção para não causar muito bloqueio. Se você tiver o Enterprise Edition, poderá fazer a operação CREATE INDEX on-line adicionando
WITH (ONLINE=ON)
à declaração.