Моя задача заключается в том, что мне нужно создать индекс для большой таблицы в SQL Server (~ 370G).План состоит в том, чтобы
- создать новую таблицу с теми же столбцами и
- создать кластеризованный индекс в новой таблице на трех столбцах
- копировать небольшими порциями (сгруппированы по трем столбцам) исходные данные в новую таблицу.
Я могу сделать 1) и 2) в SQL с помощью следующего сценария:
SELECT TOP 0 *
INTO js_sample_indexed
FROM dbo.js_sample
CREATE CLUSTERED INDEX domain_event_platform_idx
ON dbo.js_sample_indexed (domain ASC, event_type ASC, platform ASC)
GO
Но я застрял в третьем шаге.Предположительно, в индексе есть тысячи значений, например, значение может быть («Amazon», «search», «mobile»).
Так что мне может понадобиться поместить оператор where в цикл for, одновременно обновляя условие для выбора.
Но я застрял в том, как хранить и извлекать значения в каждом столбце (например, «домен»), используя SQL.
Не знаю, ясно ли я сформулировал этот вопрос, но любые комментарии будут полезны.Спасибо!