Создать запрос производительности сервера SQL Server - PullRequest
2 голосов
/ 11 января 2012

Я ищу простой запрос, чтобы что-то сказать о производительности базы данных

Мы создали инструмент для определения производительности клиентской сети / сервера / программного обеспечения, чтобы создать для нас базовый уровень, на котором мы можем сказать, что либо их сервер, либо клиенты действительно недостаточно мощны или в некоторых ситуациях наше программное обеспечение работает недостаточно.

Почему мы это делаем?

У одного из наших клиентов наше программное обеспечение работало очень медленно, и они обвинили нас. После поиска возможных дефектов программного обеспечения мы обнаружили, что проблема на самом деле была в скорости их сети, она была просто ужасно медленной. (сетевой трафик был направлен через VPN на расстоянии 100 миль)

Что мне нужно

Я ищу «простой» запрос, чтобы установить базовую производительность для базы данных Microsoft SQL Server.

Желательно, чтобы запрос указывал, действительно ли база данных работает медленно / быстро или работает нормально.

Я создал простой запрос, который просто выполняет:

select top 50000 * from BigTable 
where YEAR(startdate) = 2011 or YEAR(startdate) = 2010 
order by table.startdate desc

BigTable - это то, что наше программное обеспечение часто запрашивает для выполнения сложных вычислений обновления.

Вызов этого запроса (100 раз) и синхронизация его с клиентом дает нам достойную оценку производительности сервера. Но я бы предпочел выполнить более вычислительно-ориентированный запрос с некоторыми сложными объединениями, которые фактически говорили бы о производительности сервера, а не о простом выборе.

1 Ответ

6 голосов
/ 10 апреля 2012

Могу ли я предложить использовать тот же запрос, но перед запросом установить следующее.

Set Statistics IO ON    
go
Set Statistics Profile ON
go
Set Statistics Time ON
go

Вы также можете запустить SQL Profiler для отслеживания сеанса, который дает сеанс CPU, READS, WRITES, DURATION, которые будут предоставлять ограниченную информацию на уровне сервера, в то время как сеанс работает на вашей рабочей станции.

...