Десятки миллионов вставляются в производительность/стратегию индексированных таблиц (Sql Server> = 2005)

Вопрос:

Мне нужно получить данные из многих таблиц и объединить их в один. За финальным столом будет около 120 миллионов строк. Я планирую вставить строки в точный порядок, необходимый для индексов больших таблиц.

Мой вопрос: с точки зрения производительности: лучше ли создавать индексы новой таблицы с самого начала или сначала вставлять вставки и в конце импорта создавать индексы?

Кроме того, будет ли иметь значение, если при построении индексов в конце строки уже отсортированы в терминах спецификаций индексов?

Я не могу проверить оба случая и получить объективное сравнение, поскольку база данных находится на главном сервере, который используется для многих других баз данных и приложений, которые могут быть загружены или не загружены в разные моменты времени. Я не могу восстановить базу данных на моем локальном сервере, так как у меня пока нет полного доступа к основному серверу.

Лучший ответ:

Я предлагаю сначала скопировать дату, а затем создать ваши индексы. Если вы вставляете записи в таблицу с индексом для каждой вставки, индекс таблицы обновления SQL Server. но когда вы создаете индекс после вставки всей записи в свою таблицу, SQL Server не нужно обновлять индекс таблицы для каждой вставки и перестраивать индекс в одну сторону.

Вы можете использовать SSIS для копирования данных из исходных таблиц в пункт назначения. SSIS использует вставку balk и обладает хорошей производительностью. также, если у вас есть триггер по базе данных назначения, я предлагаю отключить это, прежде чем начать конвертировать.

Когда вы каждый раз создаете индекс в своей таблице, строки хранятся в терминах вашего индекса.

Оцените статью
TechArks.Ru
Добавить комментарий