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

SQL Anywhere 11.0.1 (中文) » SQL Anywhere 服务器 - SQL 参考 » 系统对象 » 系统过程 » 按字母顺排序的系统过程列表

 

sa_procedure_profile 系统过程

报告已经在数据库中执行的过程、函数、事件或触发器中每一行的执行时间信息。此过程提供的信息与 Sybase Central 中 [分析] 选项卡上的信息相同。

语法
sa_procedure_profile(  
  [ filename
  [, save_to_file ] ]
)
参数
  • filename   使用此可选的 LONG VARCHAR(128) 参数指定应将分析信息保存到的文件,或应从其装载分析信息的文件。有关保存和装载分析信息的详细信息,请参见以下的注释部分。

  • save_to_file   使用此可选的 INT(1) 参数指定是将分析信息保存到文件,还是从先前存储的文件装载分析信息。

结果集
列名 数据类型 说明
object_type CHAR(1) 对象的类型。有关可能的对象类型的列表,请参见以下的注释部分。
object_name CHAR(128) 存储过程、函数、事件或触发器的名称。如果 object_type 为 C 或 D,则这是为其定义了系统触发器的外键的名称。
owner_name CHAR(128) 对象的所有者。
table_name CHAR(128) 与触发器关联的表(对于其它对象类型,该值为 NULL)。
line_num UNSIGNED INTEGER 过程中的行号。
executions UNSIGNED INTEGER 该行的执行次数。
millisecs UNSIGNED INTEGER 该行的执行时间(以毫秒计)。
percentage DOUBLE 特定行所需要的总执行时间的百分比。
foreign_owner CHAR(128) 拥有系统触发器外表的数据库用户。
foreign_table CHAR(128) 系统触发器外表的名称。
注释

此过程可用于:

  • 返回详细的过程分析信息   要实现此目的,可以只调用该过程,而不指定任何参数。

  • 将详细的过程分析信息保存到文件   要实现此目的,必须包括 filename 参数并将 save_to_file 参数指定为 1。

  • 从先前保存的文件装载详细的过程分析信息   要实现此目的,必须包括 filename 参数并将 save_to_file 参数指定为 0(或保留不变,因为缺省值为 0)。当以此方式使用该过程时,创建装载文件的数据库必须是正从其运行该过程的同一数据库;否则,结果可能不可用。

结果集中包含过程、触发器、函数和事件中每一行的执行时间信息,以及这些行使用的时间占总过程执行时间的百分比信息,因此可以使用此分析信息来调整那些可能会降低性能的较慢过程。

在可以分析数据库之前,必须启用分析。请参见启用过程分析

结果集的 object_type 字段可以是:

  • P   存储过程

  • F   函数

  • E   事件

  • T   触发器

  • C   ON UPDATE 系统触发器

  • D   ON DELETE 系统触发器

如果想得到汇总信息(而不是每个执行的逐行详细信息),请改用 sa_procedure_profile_summary 过程。

权限

需要 DBA 权限

副作用

另请参见
示例

以下语句返回已经在数据库中执行的每个过程、函数、事件或触发器中每一行的执行时间:

CALL sa_procedure_profile( );

以下语句返回与以上示例相同的详细过程分析信息,并将其保存到名为 detailedinfo.txt 的文件:

CALL sa_procedure_profile( "detailedinfo.txt", 1 );

以下任一语句均可用来从名为 detailedinfoOLD.txt 的文件装载详细过程分析信息:

CALL sa_procedure_profile( "detailedinfoOLD.txt", 0 );
CALL sa_procedure_profile( "detailedinfoOLD.txt" );