проанализировать проблему производительности SQL Server? - PullRequest
3 голосов
/ 14 января 2010

Я занимаюсь разработкой с использованием VSTS 2008 + C # + .Net 3.5 + ASP.Net + SQL Server 2008 Express. Я работаю на 32-разрядной платформе с Windows Server 2003. Я обнаружил, что проблема заключается в простом SQL-выражении, таком как выбрать / создать простую таблицу из SQL Server Management Studio.

Кстати: я думаю, что это должно быть связано с конкретной машиной, поскольку тот же код работает правильно на другой машине. Но я не уверен на 100%. Может быть, эта машина вызывает ошибку в моем коде?

Есть идеи, как провести анализ, чтобы найти узкое место с низкой производительностью?

Ответы [ 4 ]

3 голосов
/ 14 января 2010

Хорошим началом является использование SQL Server Profiler для определения длительных запросов.

Получив представление о проблемах, вы можете использовать SQL Server Management Studio для проверки их планов запросов , чтобы определить, нужно ли добавлять какие-либо индексы и т. Д.

1 голос
/ 14 января 2010

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

Это также может быть намного медленнее, если оборудование медленнее на медленной машине.

Профилировщик и планы выполнения также могут помочь выявить узкие места и проблемы с производительностью.

Проверьте также на наличие взаимоблокировок, часто код, который сам по себе работает нормально, может конфликтовать с чем-то еще, что одновременно работает рабочий сервер.

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

А зачем разрабатывать с использованием Express, если финальная версия не будет в Express, купите версию для разработчиков и получите все инструменты, которые вам нужно настроить и контролировать во время разработки.

Работают ли на компьютере другие приложения, которые работают медленно? Обычно не рекомендуется запускать на компьютере что-либо, кроме SQL Server, так как SQl Server будет требовать всю память машины.

1 голос
/ 14 января 2010

Если вы считаете, что это проблема, относящаяся к конкретной машине, хорошим началом будет наблюдение за использованием оперативной памяти Sql Server, выполнив это предложение :

DBCC MEMORYSTATUS;
1 голос
/ 14 января 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...