Может ли удаление и воссоздание индекса ускорить удаление SQL? - PullRequest
5 голосов
/ 15 октября 2010

Я выполняю несколько больших запросов на удаление на основе даты для таблиц с индексами для полей, отличных от даты.Мне сказали, что удаление этих индексов, выполнение удаления, а затем повторное построение индекса может быть быстрее, чем просто выполнение удаления для индексированной таблицы.Так ли это?

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

Ответы [ 2 ]

1 голос
/ 15 октября 2010

При принятии решения об удалении индексов сначала необходимо сравнить стоимость (или время) для обслуживания индекса во время удаления со стоимостью для воссоздания индекса после удаления.Двумя наиболее влиятельными факторами являются количество строк в таблице и количество удаляемых строк.

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

ПосколькуЯ полагаю, что у вас есть ситуация, когда удаление и воссоздание индексов поможет вам.

0 голосов
/ 15 октября 2010

Если у ваших индексов плохой коэффициент заполнения, то я уверен, что это будет.

...