Убедитесь, что у вас есть первичный кластерный индекс INT (или BIGINT) IDENTITY для таблицы! И желательно никаких других индексов (если возможно) - они замедлили бы вставку.
Распространено заблуждение, что, поскольку таблица требует только INSERT и почти не читает, вы должны «избавить» себя от проблемы первичного кластерного ключа.
Как богиня индексирования SQL Server, таблица (но только в «правом» кластеризованная таблица), чем по сравнению с куча. Основная проблема здесь в том, что поиск в IAM / PFS для определения место вставки в куче медленнее, чем в кластерной таблице (где место вставки известно, определяется кластеризованным ключом). Вставки быстрее при вставке в таблицу где порядок определен (CL) и где этот порядок постоянно увеличивается.
Таким образом, правильный кластеризованный индекс может ускорить ваши вставки, и прямо здесь означает статический (никогда не изменяется), уникальный, минимально возможный (INT или BIGINT) и предпочтительно постоянно увеличивающийся (без разделения страниц и, следовательно, без потери производительности).
Также, если ваша таблица только когда-либо получает вставки и не обновляет / удаляет, вы должны обязательно использовать 100% FILLFACTOR в кластеризованном индексе, чтобы полностью заполнить те страницы SQL-сервера.
Марк
Единственные рекомендации, которые я хотел бы сделать:
присоединиться к
или объединить
«живые» и «старые» аудиты. Если вы только добавляете в таблицы аудита и запускаете отчеты, которые всегда будут выполнять сканирование таблиц, рассмотрите возможность удаления любых индексов в таблице.