Блокировка SQL Server 2000 предотвращена запуском профилировщика? - PullRequest
1 голос
/ 16 апреля 2009

Мы работаем над большой программой на Java, которая была преобразована из приложения Forte. В течение дня мы получаем блокирующие SPID на сервере. Вчера мы посетили DBA, и он настроил шаблон профиля для запуска, чтобы поймать действие блокировки / блокировки. Когда мы запускаем этот профиль, проблема блокирования исчезает. Почему?

Это приложение распространяется с использованием RMI и имеет около 70 пользователей. Мы используем серверы SQL 2000 и Windows 2000 для обеспечения совместимости с кучей старых приложений-помощников VB.

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

Спасибо за любую помощь!

Theo

Ответы [ 2 ]

1 голос
/ 16 апреля 2009

Старая добрая проблема Гейзенберга.

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

Эта проблема с блокировкой SPID, похоже, часто появляется в Google; Причина, по-видимому, заключается в том, что это происходит, когда один ресурс заблокирован, когда другой хочет его, поэтому вероятна ошибка синхронизации.

Microsoft имеет статью о том, как решить проблему.

0 голосов
/ 16 апреля 2009

Просто набор случайных мыслей ... Я видел, как следы рушат сервер, но никогда не делают вещи лучше.

Какой шаблон трассировки вы используете? (Они взяты из инструментов SQL Server 2005, извините)

  • «Стандартный (по умолчанию)» отслеживает звонки высокого уровня и вход / выход из системы
  • "TSQL_SPs" отслеживает вызовы операторов, которые были бы намного более навязчивыми

Это двоичный файл и тоже гарантированный? Трассировка включена = нет блоков, трассировка выключена = блоки, или это неудачное совпадение? Когда вы все наблюдаете за администратором базы данных, кто-то перестает нажимать на клиента и приходить посмотреть?

Что-то еще отключается как часть трассировки. То есть вы используете профилировщик или трассируемую трассировку (много операторов sp_trace_set%)? В сценарии трассировки может быть что-то, что отключает что-то еще.

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