代码之家  ›  专栏  ›  技术社区  ›  Moudiz

增加开放对象数量的原因是什么?

  •  0
  • Moudiz  · 技术社区  · 6 年前

    有这样的错误:

    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,并且值仍在增加。 价值增加的原因是什么?如何停止这种增加?

    1 回复  |  直到 6 年前
        1
  •  1
  •   markp-fuso    6 年前

    在Sybase(现在的SAP)ASE中,准备好的语句被转换成“轻量级过程”(又称LWPs;想想'临时程序'),这反过来又需要自己的描述。

    要查明这是否是LWP问题:

    • 将sybase\u ts\u角色授予您的登录名
    • 运行 dbcc traceon(3604)
    • 运行 dbcc des

    dbcc设计 地段 所以一定要把它捕获到一个文件中!!

    • 存在于登录的tempdb中
    • 具有负对象id
    • 名称类似于*dddddddddddddddddddd\uhhhh(其中'd'==十进制数字,'h'==十六进制数字) 或者 ...
    • 可能有像*aadddddddddddddddddddddddddddddddddddddddddddd aa*('d'==十进制,'a'==字母字符)这样的名称
    • objsystat=O\u程序
    • objsysstat2=O2\ LWP

    spid 从LWP名称( dbcc设计 输出)或来自 master..monCachedProcedures 列(查找名为 *sq##########ss* *ss#########ss* ... 类似于系统/自动生成的名称)。

    注:取决于ASE版本(11?12? 15? 16?) LWP名称格式可能会有所不同,因此您可能需要进行一些挖掘以找到相关的名称 spid公司

    对于LWP 是名称的一部分,spid很可能是( dbcc设计 )对象名;下面我们看到 spid公司

    *00061000000606_9d5317
    *00061000000626_a149eb
    *00061000000606_9d5317
    *00061000000589_63ea4e
    

    这些年来,这个话题已经出现了很多次,你可以在下面的链接中回顾我的一些漫谈: here here , here here

    推荐文章