2014-11-06 5 views
0

У меня есть таблица с дюжиной столбцов. Существует не кластеризованный, не уникальный индекс, определенный на 10 столбцах. Теперь, используя инструкцию update, я обновляю некоторые столбцы моей таблицы на основе некоторого условия. Некоторые из столбцов, которые обновляются, имеют некластеризованные индексы.Эффект некластеризованного индекса при обновлении оператора

Теперь удаление этих некластеризованных индексов оптимизирует мою инструкцию по обновлению?

+0

** Да, конечно! ** Любой индекс вам необходимо будет поддерживать ** **, поэтому это приводит к небольшим накладным расходам для любой операции (удаление, вставка, обновление) –

ответ

1

Да, хорошее воздействие, но не уверен, сколько.

http://dba.fyicenter.com/faq/sql_server/CREATE_INDEX_Impact_on_Other_User_Sessions.html

https://dba.stackexchange.com/questions/50520/updating-an-indexed-column-performance-impact-in-sql-server

Там нет правила основания определить, сколько некластеризованной индекс в таблице. В идеале достаточно 4 или 5 столбцов, но нет правила для ограничения, каждая вещь зависит от базы данных, размер которой или нет. записи.

Индекс используется во время поиска, но влияет на вставку и обновление. Единственное, что нужно учитывать при присвоении индексов столбцам (столбцам), которые часто используются в поиске.

Чтобы избежать индекса, вы можете создать столбец приведенного или вычисленного столбца (см. Ссылки).

Значит, если вы регулярно нужно вычислить или сумма 2 колонки, чтобы показать inventroy, так хорошо, чтобы создать столбец

http://blogs.msdn.com/b/sqlcat/archive/2011/11/28/a-computed-column-defined-with-a-user-defined-function-might-impact-query-performance.aspx

http://www.codeproject.com/Articles/19641/Computed-Column-Specification-in-SQL-Server

Смежные вопросы