Кто-нибудь из вас испытал следующее, и вы нашли решение:
Большая часть серверной части нашего веб-сайта - это MS SQL Server 2005. Каждую неделю или две недели сайт начинает работать медленнее - и я вижу, что запросы в SQL все дольше и дольше выполняются. У меня есть запрос, который мне нравится использовать:
USE master
select text,wait_time,blocking_session_id AS "Block",
percent_complete, * from sys.dm_exec_requests
CROSS APPLY sys.dm_exec_sql_text(sql_handle) AS s2 order by start_time asc
Что довольно полезно ... он дает снимок всего, что работает в тот момент на вашем сервере SQL. Приятно, что даже если ваш процессор по какой-то причине привязан к 100%, а Activity Monitor отказывается загружаться (я уверен, что некоторые из вас были там), этот запрос все равно возвращается, и вы можете видеть, какой запрос убивает вашу БД.
Когда я запускаю это или Activity Monitor во время, когда SQL начал замедляться, я не вижу каких-либо конкретных запросов, вызывающих проблему - они ВСЕ работают медленнее по всем направлениям. Если я перезапущу службу MS SQL, то все в порядке, она ускоряется - в течение недели или двух, пока не произойдет снова.
Ничего из того, что я могу придумать, не изменилось, но это началось всего несколько месяцев назад ... Идеи?
--Added
Обратите внимание, что когда происходит замедление работы базы данных, не имеет значения, получаем ли мы 100K просмотров страниц в час (более загруженное время суток) или 10K просмотров страниц в час (медленное время), все запросы выполняются дольше, чем обычно. На самом деле сервер не находится под нагрузкой - процессор не высок, использование диска не выходит из-под контроля ... это похоже на фрагментацию индекса или что-то в этом роде, но это не похоже на дело.
Что касается вставки результатов запроса, который я вставил выше, я действительно не могу этого сделать. В приведенном выше запросе перечислены логин пользователя, выполняющего задачу, весь запрос и т. Д., И т. Д., И я бы не хотел раздавать имена моих баз данных, таблиц, столбцов и логинов онлайн:) ... I могу сказать вам, что запросы, выполняемые в то время, являются нормальными, стандартные запросы для нашего сайта, которые выполняются постоянно, ничего сверх нормы.
- 24 марта
Прошло около двух недель с момента последней перезагрузки. Я сделал несколько изменений: я нашел несколько запросов, в которых мы интенсивно использовали временные таблицы, которые были совершенно ненужными, и наши разработчики изменили то, как они это делают. Я изменил размер некоторых постоянно (медленно, но верно) растущих баз данных до разумного размера для их роста. Я настроил параметры автоматического роста для всего, чтобы быть более интеллектуальным (они были ВСЕ установлены на рост 1 МБ). Наконец, я немного почистил MSDB. Мы занимаемся доставкой журналов и на самом деле не нужно хранить годы и годы резервных копий, я написал несколько сценариев, которые держат это всего несколько месяцев. Я буду постоянно обновлять эту ветку, так как пока рано говорить, решена ли проблема.