Нагрузка на базу, таймауты

e-statik
Дата: 08.06.2011 16:04:38
Всем добрый день
Есть база на 2008 sql. Есть корпоративное asp.net приложение, работающее с базой.

Один "уважаемый коллега" создал для своих целей табличку в этой базе и в мндж студии написал запрос на инсёрт туда примерно 10 000 записей, да объединил их все UNION прямо в своем запросе. Т.е:
insert into ..
select ...
union
select ...
union
...
И так 10 тыщ строк. И пошел себе гулять.

У пользователей в приложении периодически начали валиться ошибки о таймаутах к базе. Собственно, когда начали искать, в чем проблема, сначала посмотрели блокировки - sp_who2 ничего не показывала, никто никого не лочил. Загрузка CPU в активити мониторе тоже была постоянно на 25%... В общем, что происходит - непонятно. Чуть позже увидели, конечно, что уже долго молотит один процесс на инсерт, но бегло глянув на таблицу проскочила мысль вроде "ну какая-то левая таблица, инсертит туда, вроде бы не страшно". Когда мысли иссякли - процесс просто кильнули, т.к. гуляющий коллега и на телефон решил не отвечать ) Всё сразу ожило.

Теперь вопросы. Что плохого происходило в процессе этого мегазапроса и как конкретно влияло на остальных пользователей?
Нет ли где-то полезных описаний на тему, как в какой последовательности что стоит проверить в первую очередь, если с базой вдруг начались какие-то проблемы в виде тормозов и таймаутов. Так, первое что приходит в голову - посмотреть возможные блокировки, загрузку CPU и просто пинг от приложения к базе. Но, видимо, это так, примитивно...
В общем, если есть какие-то соображения по теме - буду благодарен
Гавриленко Сергей Алексеевич
Дата: 08.06.2011 16:06:15