Как создать индекс для нескольких столбцов в динамическом SQL - PullRequest
0 голосов
/ 09 ноября 2018

Я пытаюсь создать индекс для нескольких столбцов в определенном столбце, но выполнение занимает много времени. Это из-за динамического создания или по какой-либо другой причине? Пожалуйста, дайте мне знать метод создания индекса по нескольким столбцам с использованием динамического SQL, который будет выполняться быстро.

Мой код:

exec('create index xlev on GenProductsAll_tmp(lev)')        
exec('create index xelid on GenProductsAll_tmp(elid)')        
exec('create index xotherarray on GenProductsAll_tmp(otherarray)')        
exec('create index xArrayLev1 on GenProductsAll_tmp(ArrayLev1)')        
exec('create index xArrayLev3 on GenProductsAll_tmp(ArrayLev3)')        
exec('create index potherarray on GenProductsAll_tmp(pathotherarray)')        
exec('create index pArrayLev1 on GenProductsAll_tmp(pathArrayLev1)')        
exec('create index pArrayLev3 on GenProductsAll_tmp(pathArrayLev3)') 

1 Ответ

0 голосов
/ 23 января 2019

Зачем вам нужно столько индексов в одной таблице? Создавайте только полезные индексы с требуемым типом индекса (UNIQUE, CLUSTERED и т. Д.) В зависимости от требования. Вы можете проверить приблизительное время, необходимое для завершения n-го числа индексов, выполнив один индексный скрипт.
Существуют различные варианты, такие как SORT_IN_TEMPDB, MAXDOP для улучшения времени создания индекса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...