ASE v15中的应用程序跟踪tracefile特性

----------------------------------------------------------------------------

---- 本文为andkylee个人原创,请在尊重作者劳动成果的前提下进行转载;

---- 转载务必注明原始出 : http://blog.csdn.net/andkylee

--- 2010-04-24 18:46:48

---- 关键字:  tracefile showplan statistics 跟踪 会话

----------------------------------------------------------------------------

 

Sybase 在ASE v15.0.2 中新增了“应用程序”跟踪这个特性。

您可以利用“应用程序”跟踪功能收集一个正在运行中的客户会话的有用诊断信息,包括:执行查询、IO 消耗等;并且ASE 会自动把收集到的跟踪信息写到一个文本文件中。可以很方便得用这个特性来诊断一些系统性能瓶颈。

您只需要知道想要跟踪的会话的SPID(Server Process ID) 就可以对那个会话进行跟踪监控。应用系统的用户只需要被授予“set tracing ”权限就可以利用“应用程序”跟踪对自己的会话信息进行跟踪。

执行“应用程序”跟踪需要具有 set tracing 的权限。主要有两类用户:第一:具有sa或者sso角色的用户(默认具有set tracing权限);第二:被赋予了set tracing 执行权限的用户。下面会分别予以介绍。


(1) 具有管理员特权的用户(属于 sa 或者 sso 角色)

        对其他用户连接会话启用“应用程序”跟踪,执行:


                       set tracefile "<file-path>" for <spid>


         关闭刚才打开的针对其他用户连接会话的跟踪,需要执行:

                       set tracefile off for <spid>

备注:
(1) 针对某个用户会话启用跟踪时,需要知道它的SPID 并填写跟踪结果文件保存的路径。如果没有指定跟踪结果文件保存的路径,那么ASE 会自动保存到$SYBASE 目录下。
(2) 在一个会话中,只能有一个set tracefile 为启用状态;并且,某一个SPID 不能被多个会话同时跟踪。
(3) 当被跟踪的会话自己退出,或者跟踪被手动关闭时,ASE 会生成跟踪结果文件。
(4) 在“应用程序”跟踪的过程中,如果跟踪结果文件所在的磁盘空间被耗尽,那么ASE 会自动保存跟踪文件并结束本次“应用程序”跟踪。
(5) 用sp_helpapptrace 存储过程来查看当前正在执行中的所有应用程序跟踪信息。


(2) 被赋予“set tracing” 权限的应用程序用户

         对自己的会话启用跟踪,执行:

                 set tracefile "<file-path>"

         结束对自己的会话上的跟踪,使用:

                 set tracefile off


备注: 不能使用sp_helpapptrace过程来查看正在被跟踪的会话。

(3 ) 哪些信息可被用来跟踪?

在“应用程序”跟踪中可以追踪以下的set option 命令。

set show_sqltext <on/off>
set showplan <on/off>
set statistics io <on/off>
set statistics time <on/off>
set statistics plancost <on/off>

set option 的子命令也可被用来跟踪。

set option show_lop <normal/brief/long/on/off>                        ---显示使用的逻辑操作数量
set option show_managers <normal/brief/long/on/off>               --- 显示使用的数据结构管理器的数量
set option show_log_props <normal/brief/long/on/off>               --- 显示所用的逻辑属性
set option show_parallel <normal/brief/long/on/off>                  --- 显示并行查询优化器信息
set option show_histograms <normal/brief/long/on/off>             --- 显示直方图统计信息处理过程
set option show_abstract_plan <normal/brief/long/on/off>         --- 显示虚拟查询计划具体信息
set option show_search_engine <normal/brief/long/on/off>        --- 显示搜索引擎的详细信息
set option show_counters <normal/brief/long/on/off>               ---  显示优化器找到的计划的数量
set option show_best_plan <normal/brief/long/on/off>              --- 显示最优计划信息
set option show_code_gen <normal/brief/long/on/off>              --- 显示代码产生器的信息
set option show_pio_costing <normal/brief/long/on/off>            --- 显示估计的物理IO数
set option show_lio_costing <normal/brief/long/on/off>             --- 显示估计的逻辑IO数
set option show_elimination <normal/brief/long/on/off>             --- 显示分区消除信息


(4) 例子 (使用具有sa 和sso 角色的用户)

set tracefile "c:/tmp/trace-spid-16.txt" for 16
set show_sqltext on
set showplan on
go
sp_helpapptrace
go

traced_spid tracer_spid trace_file

----------- ----------- ----------------------------

16          19          c:/tmp/ase-trace-spid-16.txt

 

(1 row affected)

(return status = 0)

 
在另外一个会话中,在被监控的用户会话spid=16中执行sp_helpdb过程。


set tracefile off for 16
go
sp_helpapptrace
go

traced_spid tracer_spid trace_file

 ----------- ----------- ----------

 
(0 rows affected)

(return status = 0)

 

跟踪结果信息如下:

 

================================================================================ Application Tracing report for spid -1 from application "isql" run by login "sa" on host "TEST" Tracing started on 2010/04/24 17:08:10.23 ================================================================================ No useful sqltext available. QUERY PLAN FOR STATEMENT 1 (at line 1). STEP 1 The type of query is EXECUTE. 2010/04/24 17:08:10.23 No useful sqltext available. Sproc: sp_helpdb, Line: 0 QUERY PLAN FOR STATEMENT 1 (at line 0). STEP 1 The type of query is DECLARE. Sproc: sp_helpdb, Line: 38 QUERY PLAN FOR STATEMENT 2 (at line 38). STEP 1 The type of query is COND. 1 operator(s) under root |ROOT:EMIT Operator (VA = 1) | | |SCALAR Operator (VA = 0) Sproc: sp_helpdb, Line: 40 QUERY PLAN FOR STATEMENT 3 (at line 40). STEP 1 The type of query is SET OPTION OFF. Sproc: sp_helpdb, Line: 43 QUERY PLAN FOR STATEMENT 4 (at line 43). STEP 1 The type of query is SET OPTION ON. Sproc: sp_helpdb, Line: 45 QUERY PLAN FOR STATEMENT 5 (at line 45). STEP 1 The type of query is SELECT. 1 operator(s) under root |ROOT:EMIT Operator (VA = 1) | | |SCALAR Operator (VA = 0) Sproc: sp_helpdb, Line: 47 QUERY PLAN FOR STATEMENT 6 (at line 47). STEP 1 The type of query is COND. 1 operator(s) under root |ROOT:EMIT Operator (VA = 1) | | |SCALAR Operator (VA = 0) Sproc: sp_helpdb, Line: 49 QUERY PLAN FOR STATEMENT 7 (at line 49). STEP 1 The type of query is COND. 3 operator(s) under root |ROOT:EMIT Operator (VA = 3) | | |RESTRICT Operator (VA = 2)(0)(0)(0)(4)(0) | | | | |SCALAR AGGREGATE Operator (VA = 1) | | | Evaluate Ungrouped ANY AGGREGATE. | | | Scanning only up to the first qualifying row. | | | | | | |SCAN Operator (VA = 0) | | | | FROM TABLE | | | | master.dbo.sysmessages | | | | Index : ncsysmessages | | | | Forward Scan. | | | | Positioning by key. | | | | Index contains all needed columns. Base table will not be read. | | | | Keys are: | | | | error ASC | | | | Using I/O Size 2 Kbytes for index leaf pages. | | | | With LRU Buffer Replacement Strategy for index leaf pages. Sproc: sp_helpdb, Line: 53 QUERY PLAN FOR STATEMENT 8 (at line 53). STEP 1 The type of query is SELECT. 1 operator(s) under root |ROOT:EMIT Operator (VA = 1) | | |SCALAR Operator (VA = 0) Sproc: sp_helpdb, Line: 55 QUERY PLAN FOR STATEMENT 9 (at line 55). STEP 1 The type of query is COND. 3 operator(s) under root |ROOT:EMIT Operator (VA = 3) | | |RESTRICT Operator (VA = 2)(0)(0)(0)(4)(0) | | | | |SCALAR AGGREGATE Operator (VA = 1) | | | Evaluate Ungrouped ANY AGGREGATE. | | | Scanning only up to the first qualifying row. | | | | | | |SCAN Operator (VA = 0) | | | | FROM TABLE | | | | master.dbo.sysmessages | | | | Index : ncsysmessages | | | | Forward Scan. | | | | Positioning by key. | | | | Index contains all needed columns. Base table will not be read. | | | | Keys are: | | | | error ASC | | | | Using I/O Size 2 Kbytes for index leaf pages. | | | | With LRU Buffer Replacement Strategy for index leaf pages. Sproc: sp_helpdb, Line: 59 QUERY PLAN FOR STATEMENT 10 (at line 59). STEP 1 The type of query is SELECT. 1 operator(s) under root |ROOT:EMIT Operator (VA = 1) | | |SCALAR Operator (VA = 0) Sproc: sp_helpdb, Line: 0 QUERY PLAN FOR STATEMENT 11 (at line 0). STEP 1 The type of query is GOTO. Sproc: sp_helpdb, Line: 0 QUERY PLAN FOR STATEMENT 12 (at line 0). STEP 1 The type of query is GOTO. Sproc: sp_helpdb, Line: 62 QUERY PLAN FOR STATEMENT 13 (at line 62). STEP 1 The type of query is SET OPTION ON. Sproc: sp_helpdb, Line: 69 QUERY PLAN FOR STATEMENT 14 (at line 69). STEP 1 The type of query is COND. 1 operator(s) under root |ROOT:EMIT Operator (VA = 1) | | |SCALAR Operator (VA = 0) Sproc: sp_helpdb, Line: 70 QUERY PLAN FOR STATEMENT 15 (at line 70). STEP 1 The type of query is SELECT. 2 operator(s) under root |ROOT:EMIT Operator (VA = 2) | | |SCALAR AGGREGATE Operator (VA = 1) | | Evaluate Ungrouped COUNT AGGREGATE. | | | | |SCAN Operator (VA = 0) | | | FROM TABLE | | | master.dbo.sysdatabases | | | Index : ncsysdatabases | | | Forward Scan. | | | Positioning at index start. | | | Index contains all needed columns. Base table will not be read. | | | Using I/O Size 2 Kbytes for index leaf pages. | | | With LRU Buffer Replacement Strategy for index leaf pages. Sproc: sp_helpdb, Line: 73 QUERY PLAN FOR STATEMENT 16 (at line 73). STEP 1 The type of query is SELECT. 3 operator(s) under root |ROOT:EMIT Operator (VA = 3) | | |SCALAR AGGREGATE Operator (VA = 2) | | Evaluate Ungrouped COUNT AGGREGATE. | | | | |RESTRICT Operator (VA = 1)(0)(0)(0)(6)(0) | | | | | | |SCAN Operator (VA = 0) | | | | FROM TABLE | | | | master.dbo.sysdatabases | | | | Using Clustered Index. | | | | Index : cdatabases | | | | Forward Scan. | | | | Positioning at index start. | | | | Index contains all needed columns. Base table will not be read. | | | | Using I/O Size 2 Kbytes for index leaf pages. | | | | With LRU Buffer Replacement Strategy for index leaf pages. Sproc: sp_helpdb, Line: 80

 

 

你可能感兴趣的:(SSO,table,application,query,buffer,statistics)