2009-03-31 3 views
6

Когда SQL Server (2000/2005/2008) работает вяло, какая первая команда вы запускаете, чтобы увидеть, где проблема?Какова ваша команда FIRST SQL для устранения неполадок производительности SQL Server?

Цель этого вопроса заключается в том, что при компиляции всех ответов другим пользователям может быть полезно, используя свою команду выбора, чтобы отделить ее от проблемы. Есть еще troubleshooting сообщений о производительности SQL Server, но они могут быть полезны только для определенных случаев.

Если вы раскатать и запустить свой собственный сценарий пользовательских SQL,
тогда бы вы сообщить другим, что

  • цель сценария является
  • возвращается (возвращаемое значение)
  • , чтобы выяснить, где проблема

Если вы могли бы предоставить источник для сценария, pl легкость пост.

В моем случае,

sp_lock 

Я бегу, чтобы выяснить, есть ли замки (цель) для возврата SQL сервера блокировки информации. Поскольку в наборе результатов отображаются идентификаторы объектов (таким образом, это не так понятно для человека), я бы обычно просматривал результат, чтобы увидеть, есть ли ненормально много замков.


Вы можете обновить теги

ответ

1
sp_who 

http://msdn.microsoft.com/en-us/library/aa260384(SQL.80).aspx

Я хочу видеть «кто», какие машины/пользователи работают какие запросы, продолжительность времени и т.д. Я могу также легко сканирование блоков.

Если что-то блокирует кучу других транзакций, я могу использовать spid для вызова команды kill, если это необходимо.

1

sp_who_3 - Предоставляет много информации, доступные в другом месте, но в одном хорошем выходе. Также имеется несколько параметров, позволяющих настраивать вывод.

1

Пользовательский запрос, который объединяет то, что вы ожидаете в sp_who с помощью DBCC INPUTBUFFER (spid), чтобы получить последний текст запроса на каждом spid, упорядоченном по заблокированному/блокирующему графу.

Данные процесса доступны через master..sysprocesses.

1

sp_who3 возвращает значение standand sp_who2, пока вы не укажете конкретный spid, а затем укажите 6 разных наборов записей об этом spid, включая блокировки, блоки, то, что он делает в данный момент, T/SQL, который он запускает, и оператор в T/SQL который в настоящее время запущен.

2

Зачем запускать один запрос, когда изображение стоит тысячи слов!

Я предпочитаю свободно скачивать Performance Dashboard Reports.

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

http://www.microsoft.com/downloads/details.aspx?FamilyId=1d3a4a0d-7e0c-4730-8204-e419218c1efc&displaylang=en

Один небольшой нюанс, я считаю, они доступны только в SQL Server 2005 и выше.

1

Ян Stirk имеет большой сценарий, я бы использовать как подробно описано в этой статье: http://msdn2.microsoft.com/en-ca/magazine/cc135978.aspx

В частности, я хотел Недостающая индексирует один:

SELECT 
    DatabaseName = DB_NAME(database_id) 
    ,[Number Indexes Missing] = count(*) 
FROM sys.dm_db_missing_index_details 
GROUP BY DB_NAME(database_id) 
ORDER BY 2 DESC; 
1

DBCC OPENTRAN, чтобы увидеть, что самая старая активная транзакция это

Отображает информацию о самой старой активной транзакции и самый старый распределить d и нераспределенные реплицированные транзакции, если они есть, в указанной базе данных. Результаты отображаются только в том случае, если активна транзакция или если база данных содержит информацию о репликации. Информационное сообщение отображается, если нет активных транзакций в .

с последующим sp_who2

Смежные вопросы