Когда я увидел эту проблему (когда-либо увеличивалось использование дескрипторов для открытых объектов), я отследил проблему до приложения, которое генерирует большой объем подготовленных операторов (например, вместо повторного использования подготовленного оператора). для повторяющихся операторов DML приложение создает новый подготовленный оператор для каждого оператора DML).
В Sybase (в настоящее время SAP) ASE подготовленные операторы преобразуются в «облегченные процедуры» (иначе говоря, LWP; подумайте «временные процедуры»), которые, в свою очередь, требуют своего собственного дескриптора.
Чтобы узнать, является ли это проблемой LWP:
- предоставить sybase_ts_role для вашего логина
- пробег
dbcc traceon(3604)
- пробег
dbcc des
ПРИМЕЧАНИЕ: dbcc des
сгенерирует LOT вывода, поэтому убедитесь, что вы записали его в файл !!
В выводе 'dbcc des' LWP отображаются со следующими атрибутами:
- существует в базе данных tempdb
- имеют отрицательные идентификаторы объекта
- имеют такие имена, как * dddddddddddddd_hhhhhh (где 'd' == десятичная цифра, 'h' == шестнадцатеричная цифра) ИЛИ ...
- может иметь имена вроде * aadddddddddd_dddddddddaa * ('d' == десятичный, 'a' == алфавитный символ)
- objssystat = O_PROC
- objsysstat2 = O2_LWP
Чтобы найти нарушающее соединение (я) ... вы можете извлечь spid
из имени LWP (вывод dbcc des
) или из столбца master..monCachedProcedures
(ищите проки с именами вроде *sq##########ss*
и *ss#########ss*
... что-то похожее на системные / автоматически генерируемые имена).
ПРИМЕЧАНИЕ. В зависимости от версии ASE (11? 12? 15? 16?) Формат имени LWP может изменяться, поэтому вам, возможно, придется покопаться, чтобы найти связанный spid
.
Для LWP, где spid
является частью имени, spid, вероятно, является первыми 5 цифрами (dbcc des
) имени объекта; поэтому для следующего мы видим spid
= 61
*00061000000606_9d5317
*00061000000626_a149eb
*00061000000606_9d5317
*00061000000589_63ea4e
Эта тема поднималась много раз за эти годы, и вы можете просмотреть некоторые из моих рассуждений по следующим ссылкам: здесь , здесь , здесь и здесь