update и индексы

budden
Дата: 29.04.2012 00:04:24
Доброго времени суток!
Firebird 2.1.3.
Выполняю update одного поля в группе записей запросом update tbl set field1=:param1 where field2=:param2. На таблице несколько индексов (есть индекс и по :param2). Будет ли update быстрее, если я отключу или удалю ненужные для данного запроса индексы?
arni
Дата: 29.04.2012 00:12:49
Индексы на поля в where ускоряют исполнение (замечания о бесполезных и вредных индексах уместны в некоторых случаях хреновой селективности), а на поля в set (или изменяемые в before-триггере) - замедляют.
А вообще, как говорили идеологи марксизма-коммунизма: практика - критерий истины. Тестите запросы к реальным данным в реальных таблицах и реальных индексах.
budden
Дата: 29.04.2012 00:13:14
(поле field1 ни в одном индексе не участвует, триггера есть, но на входе в каждый из них временно поставлен exit)
budden
Дата: 29.04.2012 00:16:06
arni, вопрос об индексах, которые напрямую не имеют отношения к процессу, но могут упоминаться в индексах. Ещё раз, в начале каждого индекса временно поставлен exit;
budden
Дата: 29.04.2012 00:17:07
arni, вопрос об индексах, которые напрямую не имеют отношения к процессу, но могут упоминаться в ТРИГГЕРАХ. Ещё раз, в начале каждого ТРИГГЕРА временно поставлен exit;
Dimitry Sibiryakov
Дата: 29.04.2012 00:27:46

budden
вопрос об индексах, которые напрямую не имеют отношения к процессу, но могут упоминаться в
ТРИГГЕРАХ

Индексы не могут упоминаться в триггерах.

Posted via ActualForum NNTP Server 1.5

hvlad
Дата: 29.04.2012 00:41:34
Обновляются только те индексы, ключи которых были изменены (самим апдейтом или before триггерами)
budden
Дата: 29.04.2012 01:52:44
hvlad, спасибо.