Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 12.0.0 (中文) » SQL Anywhere 服务器 - 数据库管理 » 维护数据库 » 使用调度和事件自动完成任务 » 调度和事件内部

 

数据库服务器如何检查系统事件

系统事件是按照其事件类型进行分类的,事件类型在 CREATE EVENT 语句中直接指定或者使用 Sybase Central 指定。有两种事件类型:

  • 活动的事件类型   有些事件类型是数据库服务器本身所执行的操作的结果。这些活动的事件类型包括增长的数据库文件或不同的数据库操作或 RAISERROR 的开始和结束(BackupEnd 等)。

    当数据库服务器采取操作时,它会检查是否满足在 WHERE 子句中定义的触发条件,如果满足条件,则触发为该事件类型定义的任何事件。

  • 轮询的事件类型   有些事件类型(例如,DBDiskSpace 等可用磁盘空间类型以及 IdleTime 类型)并不仅仅是由数据库操作触发的。

    对于这些事件类型,数据库服务器每隔三十秒轮询一次,大约在启动数据库服务器三十秒后开始进行轮询。

    对于 IdleTime 事件类型,数据库服务器会检查服务器是否已经空闲了整三十秒。如果没有启动请求且当前没有请求处于活动状态,则服务器会将空闲检查间隔时间(以秒为单位)与总空闲时间累加;否则,将总空闲时间重置为 0。因此 IdleTime 的值始终是三十秒的倍数。当 IdleTime 大于在触发条件中指定的间隔时,会触发与 IdleTime 关联的事件处理程序。