Вот некоторые вещи, на которые стоит обратить внимание:
1) Являются ли ваши вставки / обновления или выбранные запросы частью транзакций? Если это так, убедитесь, что вы установили наиболее подходящий уровень изоляции транзакции для вашей конкретной ситуации.
2) У вас слишком много индексов на этой гигантской таблице? Индексы ускоряют выбор, но замедляют вставки и обновления. Убедитесь, что у вас есть только те индексы, которые вам абсолютно необходимы.
3) Относится к # 2. Вам не хватает индексов, которые ускорят ваш выбор? Ваши операторы select выполняют полное сканирование таблицы? Посмотрите на план выполнения запроса, чтобы увидеть, что на самом деле происходит. (Query Analyzer может помочь вам в этом).
4) Рассмотрите возможность репликации гигантских данных на один или несколько серверов баз данных только для чтения, которые могут обрабатывать трафик выбора, в то время как основная таблица чтения / записи (т.е. ваша существующая таблица) обрабатывает в основном трафик вставки / обновления.
5) У вас есть триггеры, которые запускают операции вставки / обновления, которые могут вызывать проблемы с производительностью или блокировкой?
6) В вашем приложении происходят заблокированные транзакции? Взгляните на эту статью MSDN на эту тему и посмотрите, поможет ли это. Кроме того, убедитесь, что вы понимаете проблему столовых философов , чтобы избежать блокированных транзакций.