Мы используем SSDT для развертывания наших изменений в базе данных. У нас есть сценарий, который обновляет индекс каждую неделю. Наш скрипт выглядит следующим образом:using ssdt, как я могу создать отфильтрованный индекс за последние 7 дней?
declare @cmd varchar(max)
set @cmd = '
CREATE NONCLUSTERED INDEX [iAudit-ModifiedDateTime] ON [dbo].[Audit]
(
[ModifiedDateTime] ASC
)
WHERE ModifiedDateTime > ''###''
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = ON, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 75) ON [PRIMARY]
'
set @cmd = replace(@cmd, '###', convert(varchar(8), dateadd(day, -3, getdate()), 112))
exec (@cmd)
К сожалению, когда мы бежим SSDT для обновления базы данных он изменяет индекс для определения в проекте, или капли, когда она не включена. Есть ли способ обойти это? Причина, по которой нам нужен отфильтрованный индекс, заключается в том, чтобы добавить последние данные из таблицы аудита со 100 миллионами миллионов строк в хранилище данных.