Наличие хорошего ключа кластеризации может на самом деле ускорить даже ваши вставки (прочитайте превосходное сообщение в блоге Кимберли Триппа Дискуссия о кластеризованном индексе продолжается для хорошего и тщательного объяснение, почему это так)! И, судя по всему, у вас вообще нет ключа кластеризации.
Поэтому я бы определенно рекомендовал добавить первичный / кластеризационный ключ в ваш столбец id
- он идеально подходит для хорошего кластеризационного ключа: узкий, статический, уникальный, постоянно увеличивающийся:
CREATE UNIQUE CLUSTERED INDEX CIX_YourTableName
ON dbo.YourTableName(ID)
Это должно ускорить все - вставлять, обновлять, удалять и выбирать тоже.
Нужны ли вам дополнительные индексы (и какие столбцы для индексации) зависит от ваших запросов SELECT - поскольку вы на самом деле ничего не сказали нам о них, мы можем только догадываться об этом .....
В основном, что вам нужно сделать:
- установить базовую линию - измерить производительность
- затем примените индекс, который имеет смысл - включите столбцы, используемые в предложениях WHERE и / или выражениях ORDER BY
- снова измерить и сравнить
На самом деле нет волшебной формулы, чтобы решить, нужен ли вам индекс, что это такое, и насколько это поможет вашему сценарию (или насколько это повлияет на производительность INSERT) - вам нужно измерить себя в своей базе данных. , ваше оборудование, ваша среда.