У меня запрос в некоторых случаях, но не в других. Я использую SQL Server 2008, MVC3, EF.
Запрос довольно большой (код EF), однако после исследования в QA (используя точный запрос в Profiler) все ветви используют поиск по индексу. Это соединение из двух или трех таблиц, в зависимости от того, какой именно запрос (около 4 разных, с 4 вариантами, в зависимости от того, по какому столбцу я запрашиваю). Столы имеют около 400 тыс., 100 тыс. И 1,2 м строк. Тем не менее, я получаю тайм-ауты даже при соединении 400–100 тыс. Я делаю записи по 50 записей за раз, но я получаю тайм-ауты на счет, а, ну.
Я ищу несколько советов о том, как определить причину тайм-аута. Поскольку в одних случаях он запускается и отображается на странице в течение 5 секунд, а в других - тайм-ауты, я не думаю, что это запрос. Я скорее не увеличиваю порог тайм-аута.
Я пытался использовать отчеты в SSMS в поисках блокирующих транзакций, блокировки ресурсов, я установил чтение не зафиксировано, просмотрел таблицы профилей ...
Единственное, что вызывает подозрение, это то, что эти таблицы обновляются ежедневно, один раз - с использованием большого удаления и массового импорта. Может быть статистика отключена или индекс? Я перестраиваю большинство этих индексов по ночам, но не уверен в этих таблицах. Есть ли способ проверить это дело? Я мог бы перестроить индекс после времени импорта, не было бы слишком много простоев, и это лучше, чем случайные тайм-ауты. Но я все еще не уверен, что это так.