Sybase ASE - трассировка запросов / процессов - PullRequest
4 голосов
/ 20 октября 2010

Если есть какие-либо эксперты Sybase ASE, мне было интересно, есть ли способ заставить Sybase отслеживать все запросы, которые он получает.

В настоящее время у меня запущена программа, которая обычно начинает отображать странное поведение через 7 часов после запуска. Я хотел бы узнать, что Sybase делает в это время, чтобы я мог решить эту проблему.

Я использую Sybase ASE 15.5. И мой сервер мониторинга не запускается по какой-то странной причине.

1 Ответ

8 голосов
/ 23 октября 2010

Да, есть несколько способов отслеживать все запросы, которые получает Sybase.

Однако, учитывая вторую часть вашего вопроса, насколько я понимаю, вам необходимо (1) понять, что делает ваш запрос (2) отслеживать ваш активный спид в контекст других активных спидов и ... если этого недостаточно, (3) контролировать сервер; не трассировка , а все запросы. Поэтому я займусь этим и отложу ответы на элементы трассировки, доступные в Sybase.

Ваше соединение с ASE - это Идентификатор процесса сервера или spid.

  1. УСТАНОВИТЕ SHOWPLAN ON и УСТАНОВИТЕ NOEXEC ON, и выполнить ваш запрос Это даст Вы очень хорошее понимание того, что ваш SQL на самом деле делает, под чехлы. Это важно требование, что-то каждое разработчик должен быть знаком с, и потребовал перед тестированием. Всякий раз, когда вам кажется, что ваш запрос медленный, всегда проверяйте выполняемый ввод-вывод: SET STATISTICS IO ON.

  2. sp_who; sp_lock; и смотреть твой спид тикает, зависает, ждет замки, заблокированные, какие другие спиды его держат и т.д. Это Базовый набор, который каждый разработчик следует использовать все время.

  3. sp_sysmon контролирует (весь) сервер. Это может быть использовано двумя способами: в качестве инструмента постоянного мониторинга, например, получить полный час статистики, которая основа для конфигурации сервера изменения; и как снимок, например. грейфер 5-минутный снимок сервера когда ваш процесс запущен и когда это не так, и изучить различия. Как правило это для опытные администраторы баз данных, а не разработчики, и вам нужна sa_role.

Это все в руководствах, как онлайн, так и в формате PDF.

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

При таком порядке обработки вы должны следить за вашим журналом транзакций и использованием базы данных tempdb.

...