过程和触发器的定义在数据库中提供,与任何一个数据库应用程序相分离。这一分离具有许多优点。
过程和触发器使多个应用程序执行的操作标准化。通过对操作进行一次编码并将编码存储于数据库中以供将来使用,应用程序只需调用过程或触发触发器即可反复获得预期结果。此外,因为更改只需在一个地点进行,所以,如果操作的实现方式发生更改,则使用该操作的所有应用程序都可以自动获取新功能。
在网络数据库服务器环境中使用的过程和触发器无需通过网络通信即可访问数据库中的数据。这意味着,与在某一客户机的应用程序中执行相比,过程和触发器在网络数据库服务器环境中执行的速度更快,并且对网络性能的影响较小。
当您创建过程或触发器时,系统自动检查过程或触发器的语法是否正确,然后将它们存储在系统表中。任何应用程序第一次调用过程或触发触发器时,将过程或触发器从系统表编译到服务器的虚拟内存中,然后从那里执行它们。由于过程或触发器的一个副本在第一次执行后将保留在内存中,因此,可以立即重复执行同一过程或触发器。此外,多个应用程序可以同时使用某一过程或触发器,或者一个应用程序可以循环使用它们。
如果过程包含简单查询并具有许多参数,则效率相对较低。对于复杂查询,过程的效率会更高。
通过授予用户对表中他们不能直接检查或修改的数据具有一定限制的访问权限,过程和触发器提供了安全性。
例如,触发器根据关联表的所有者的表权限执行,但具有插入、更新或删除该表中各行的权限的任何用户都可以触发这些触发器。同样,过程(包括用户定义的函数)根据过程所有者的权限执行,但授予权限的任何用户都可以调用这些过程。这意味着过程和触发器可以具有(并通常具有)与调用它们的用户 ID 不同的权限。
SQL Anywhere Studio 9.0.2
版权所有 © 1989–2005 Sybase, Inc. 部分版权所有 © 2001–2005 iAnywhere Solutions, Inc. 保留所有权利。