Причина ошибки Timeout Expiried при загрузке файла. Часть 2Источник: dvprofessionals Михаил Захаров
Начало данной темы было положено в статье "Причина ошибки Timeout expired при загрузке файла, база на SQL Server 2008". Хочу добавить, что отключение статистики полностью, может снизить производительность. В последнее время было выявлено еще несколько подобных случаев, причем не только на SQL 2008, а и на SQL 2005. Если вы встретились с данной ошибкой прежде всего нужно определить является ли сбор статистики причиной. В момент загрузки файла выполните процедуру SELECT которая возвращает длительные транзакции. Нужно вызывать до тех пор, пока не будет возвращен результат Если в резуальтате запроса будет строка Следовательно сбор статистики включен. В первую очередь нужно отключить сбор статистики на конкретной таблице: Если отключение не помогло, то выполните запрос для удаления собранной статистической информации. DECLARE @Cmd nvarchar(4000) SET @ObjectName = '[dbo].[dvsys_binaries]' DECLARE StatCursor CURSOR FAST_FORWARD FOR OPEN StatCursor WHILE (@@FETCH_STATUS = 0) FETCH NEXT FROM StatCursor INTO @StatName END CLOSE StatCursor И следующий запрос DECLARE @Rtn int SELECT DECLARE StatCursor CURSOR FAST_FORWARD FOR OPEN StatCursor WHILE (@@FETCH_STATUS = 0) PRINT 'Updating statistics ' + @StatName EXEC @Rtn = [dbo].[sp_executesql] @Cmd IF @Rtn <> 0 BREAK FETCH NEXT FROM StatCursor INTO @StatName CLOSE StatCursor IF @Rtn <> 0 Обращаю внимание, что проблема еще полностью не изучена. Проверку всегда нужно проводить имея под рукой свежий бекап. |