Я работаю в Sql Server 2005. У меня есть таблица журнала событий, в которой отслеживаются действия пользователя, и я хочу убедиться, что вставки в таблицу выполняются как можно быстрее. В настоящее время таблица не имеет индексов. Замедляет ли вообще добавление одного некластеризованного индекса вставку? Или только кластерные индексы замедляют вставку? Или мне просто добавить кластерный индекс и не беспокоиться об этом?
Удерживают ли некластеризованные индексы вставку?
Ответы (2)
Кластеризованные или некластеризованные индексы всегда замедляют вставку, поскольку SQL должен поддерживать и таблицу, и индекс. Это замедление в «абсолютном» смысле, и вы можете его не замечать. Я бы добавил любые индексы, необходимые для извлечения ваших данных.
person
Josef Richberg
schedule
24.05.2010
Предполагая, что получение более важно, чем скорость записи ... скажем, ваш захват данных из потока UDP и любое замедление записи означает потерю захвата пакетов ... но вам нужно будет только запросить при изобретении контакта с ET ...
- person Stephanie Page; 11.08.2010
Да, для обновления любого индекса потребуется некоторое время при выполнении INSERT, UPDATE, DELETE
операций. Чем больше у вас индексов, тем больше времени мы говорим.
Но в конечном итоге это зависит от того, что для вас важнее - хорошая производительность запроса (затем добавляйте индексы по мере необходимости) или хорошую производительность вставки (тогда как можно меньше индексов).
Какую операцию вы выполняете чаще?
person
marc_s
schedule
25.05.2010
Я хотел бы знать, что произойдет, если и то, и другое имеет значение одновременно. У меня есть база данных типа хранилища данных, мне нужны очень частые вставки, также мне нужно выполнять запросы отчетов из них. Запросы отчетов нуждаются в некоторых индексах для правильной работы, но это может одновременно замедлить операторы вставки. Я использую MySQL (MISAM).
- person Surabhil Sergy; 27.08.2014