[数据库跟踪向导] 可用于创建诊断跟踪会话。该跟踪会话将捕获死锁数据。
在应用程序分析教程中,跟踪信息就存储在测试数据库 (app_profiling.db) 中,也就是正在运行本教程的数据库。但如果您要进行分析的数据库承受的负荷很重,则应考虑将跟踪数据存储到另一个单独数据库中,以避免影响生产数据库的性能。
在 Sybase Central 中,单击 [模式] » [应用程序分析]。
如果出现 [应用程序分析向导],则单击 [取消]。
按以下步骤启动 [数据库跟踪向导]:
在左窗格中,单击 app_profiling - DBA,然后单击 [文件] » [跟踪]。
在 [欢迎] 页面上,单击 [下一步]。
在 [跟踪详细信息级别] 页面上,单击 [高详细信息(建议短期、集中监控使用)],然后单击 [下一步]。
在 [编辑跟踪级别] 页面上,单击 [下一步]。
在 [创建外部数据库] 页面上,单击 [不创建新数据库。我将使用现有跟踪数据库],然后单击 [下一步]。
在 [启动跟踪] 页面上,单击 [在此数据库中保存跟踪数据]。
若不想对存储的跟踪数据量设置任何限制,请单击 [无限制],然后单击 [完成]。
按以下步骤创建死锁:
在左窗格中,单击 app_profiling - DBA,然后单击 [文件] » [打开 Interactive SQL]。
Interactive SQL 启动并连接到 app_profiling.db 数据库。
重复前面的步骤,打开另一个 Interactive SQL 窗口。
在第一个 Interactive SQL 窗口中,执行以下 SQL 语句:
CALL "DBA"."proc_deadlock1"(); |
在第一个 Interactive SQL 窗口中执行 SQL 语句的 20 秒内,于第二个 Interactive SQL 窗口中执行以下 SQL 语句:
CALL "DBA"."proc_deadlock2"(); |
片刻之后,将出现 [ISQL 错误] 窗口,表明已检测到死锁。
发生死锁是因为 proc_deadlock1 需要访问 deadlock2 表,而 deadlock2 表被 proc_deadlock2 锁定。同时,proc_deadlock2 需要访问 deadlock1 表,但 deadlock1 表被 proc_deadlock1 锁定。
单击 [确定]。
SQL Anywhere 已停止死锁操作,因此可以关闭 Interactive SQL 窗口。
在 Sybase Central 中,通过单击左窗格中的 app_profiling - DBA 连接并单击 [文件] » [跟踪] » [停止跟踪并保存],以停止跟踪会话。
单击以下链接以继续本教程: 第 3 课:查看阻塞的连接数据.
![]() |
使用DocCommentXchange讨论此页。
|
版权 © 2012, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.1 |