您好,我是小DAI,专注于数据库管理员相关的技术问答,请问有什么可以帮您?

sp_bindexeclass

说明

将执行类与客户端应用程序、登录、存储过程或缺省执行类相关联

语法


sp_bindexeclass "<object_name>", "<object_type>", "<scope>", "<classname>"

参数

<object_name>

是要与执行类 classname 关联的客户端应用程序、登录或存储过程的名称。如果 <object_type> 为 df,则该参数应为空值。

<object_type>

标识 object_name 的类型。使用:

  • ap,表示应用程序

  • df,表示用户定义的缺省执行类

  • lg,表示登录名

  • pr,表示存储过程

  • sv,表示服务任务(仅在线程化模式下有效)

    <scope>

    是客户端应用程序或登录的名称,或者对于 ap、df、lg 或 sv 对象,该参数也可以为 NULL。它是对象的存储过程所有者的名称(用户名)。当具有 object_name 的对象与应用程序或登录交互时,classname 属性适用于您设置的

    <classname>

    指定与 object_name 关联的类的类型。其值包括:

  • EC1、EC2 或 EC3

  • 用户定义的执行类的名称

  • ANYENGINE

    示例

    示例 1

    此语句指定,对于调用 isql 的任何登录名或应用程序进程(因为 <scope> 的值为 NULL),除非该登录名或应用程序被绑定到更高的执行类,否则 TransactSQL 应用程序将使用 EC3 属性执行:

    
    sp_bindexeclass 'isql', 'ap', NULL, 'EC3'
    

    示例 2

    此语句指定当具有系统管理员角色的登录名执行 TransactSQL 应用程序时,登录进程使用 EC1 属性执行。如果已在第一个示例中执行了该语句,则调用 isql 的任何其它登录名或客户端应用程序将使用 EC3 属性执行:

    
    sp_bindexeclass 'sa', 'lg', 'isql', 'EC1'
    

    示例 3

    此语句将 EC3 属性分配到用户 kundu 所有的名为 my_proc 的存储过程:

    
    sp_bindexeclass 'my_proc', 'PR', 'kundu', 'EC3'
    

    示例 4

    此语句将 CLASS1 属性分配至使用缺省执行属性运行的所有任务:

    
    sp_bindexeclass NULL, 'DF', NULL, 'CLASS1'
    

    示例 5

    将许可证心跳操作绑定至内核执行任务:

    
    sp_bindexeclass "License Heartbeat", sv, NULL, core
    

    用法

    使用 sp_bindexeclass 时,还存在一些其它注意事项:

  • 将执行类绑定到缺省的执行类时,使用缺省执行属性运行的所有任务均使用新类的属性执行。

  • 可将服务任务绑定到为管理用户任务而创建的现有执行类。也就是说,服务任务与用户任务能够在同一执行类中共存。

  • monServiceTask 监控表包含所有服务任务,其中包含名称和当前绑定。

  • sp_bindexeclass 将执行类与客户端应用程序、登录或存储过程关联起来。还可将执行类与缺省执行类相关联。使用 sp_addexeclass 可创建执行类。

  • 当 scope 为 NULL 时,object_name 没有作用域。classname’s 的执行属性适用于它的所有交互。例如,如果 object_name 是应用程序名称,则属性适用于调用该应用程序的任何登录进程。如果 object_name 是登录名,则属性适用于登录进程调用的任何应用程序的特定登录进程。

  • 当将存储过程绑定到执行类时,您必须对 scope 参数使用该存储过程所有者的名称(用户名)。当同一个数据库中有多个存储过程调用时,这可以缩小确定该存储过程的范围。

  • 由于优先级和作用域规则,被绑定的执行类对名为 object_name 的对象不一定有效。该对象将自己自动绑定到另一个执行类,具体情况取决于其它绑定规范、优先级和作用域规则。如果没有其它绑定适用,该对象将绑定到缺省执行类。如果未指定用户定义的缺省执行类,则将对象绑定至系统定义的执行类 EC2。

  • 使用 sp_bindexeclass 可将 RepAgent 线程绑定到将 rep agent 用作应用程序的执行类,而不会生成错误。但是,因为 SAP ASE 服务器中的限制,优先级属性被设置为中,绑定不起作用。

  • 当尝试将活动进程绑定到无联机引擎的引擎组时,绑定失败。

  • SAP ASE 服务器在 sysattributes 表中创建行,该表在存储绑定数据的行中包含对象 ID 和用户 ID。

  • 绑定存储过程之前,该存储过程必须存在。

  • 存储过程绑定必须在存储过程所在的数据库中进行。因此,当绑定系统过程时,请在 sybsystemprocs 数据库中执行 sp_bindexeclass。

  • 将类绑定到存储过程时,仅使用执行类的“优先级属性”。

  • 当将存储过程绑定到执行类时,必须以 scope 参数的形式提供存储过程的所有者的名称。当数据库中存在多个具有相同名称(但具有不同的所有者)的存储过程时,这有助于唯一确定存储过程。