报告已经在数据库中执行的过程、函数、事件或触发器中每一行的执行时间信息。
sa_procedure_profile( [ filename [, save_to_file ] ] )
filename 使用此可选的 LONG VARCHAR 参数指定应将分析信息保存到的文件,或应从其装载分析信息的文件。有关保存和装载分析信息的详细信息,请参见以下的注释部分。
save_to_file 使用此可选的 INTEGER 参数指定是将分析信息保存到文件,还是从先前存储的文件装载分析信息。
列名 | 数据类型 | 说明 |
---|---|---|
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) | 系统触发器外表的名称。 |
此过程提供的信息与 Sybase Central 中 [分析] 选项卡上的信息相同。
此过程可用于:
返回详细的过程分析信息 要实现此目的,可以只调用该过程,而不指定任何参数。
将详细的过程分析信息保存到文件 要实现此目的,必须包括 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" ); |
![]() |
使用DocCommentXchange 讨论此页。
|
版权 © 2010, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.0 |