sybase数据库中打开的对象数量正在急剧增加,并且出现了以下错误:
Increase the config parameter 'number of open objects' to avoid descriptor reuse.起初,“打开对象”的值是100000。
sp_monitorconfig "open objects"
go
Name Num_free Num_active Pct_act Max_Used Reuse_cnt Instance_Name
number of open objects 1223 90380 95.25 92380 9269 我将值从100000改为160000,但值仍在增加。有什么方法可以让我知道物体在增加吗?价值增加的原因是什么,如何停止这样的增长?
发布于 2018-09-18 12:24:01
当我看到这个问题(打开对象的描述符使用量不断增加)时,我将问题追溯到一个正在生成大量准备语句的应用程序(例如,对于重复的DML语句,应用程序将重新使用准备语句,而是为每个DML语句创建一个新的准备语句)。
在Sybase (现在的SAP) ASE中,准备好的语句被转换为“轻量级过程”(也称为LWP;想想“临时过程”),而后者又需要自己的描述符。
为了查明这是否是一个LWP问题:
dbcc traceon(3604)dbcc des注意:dbcc des将生成一个输出的批量,所以请确保将其捕获到一个文件中!!
在“dbcc des”输出中,LWP会显示以下属性:
找到冒犯的联系..。您可以从LWP名称( spid输出)或从master..monCachedProcedures列(查找名称为*sq##########ss*和*ss#########ss* )中提取master..monCachedProcedures.类似于系统/自动生成的名字的东西)。
注:视ASE版本而定(11? 12? 15? 16?)LWP的名称格式可能会有所不同,因此您可能需要做一些调查才能找到相关的spid。
对于spid是名称一部分的LWP,spid很可能是(dbcc des)对象名的前5位数字;因此,对于下面的spid = 61
*00061000000606_9d5317
*00061000000626_a149eb
*00061000000606_9d5317
*00061000000589_63ea4ehttps://stackoverflow.com/questions/52384226
复制相似问题