使用 [数据库跟踪向导] 生成死锁并捕获相关信息,用以创建诊断跟踪会话。
上下文和注释
在应用程序分析教程中,跟踪信息就存储在测试数据库 (app_profiling.db) 中,也就是正在运行本教程的数据库。但如果所要分析的数据库承受的负载很重,则应考虑将跟踪数据存储到另一个单独数据库中,以避免影响生产数据库的性能。
启动 Sybase Central。单击 [开始] » [程序] » [SQL Anywhere 16] » [管理工具] » [Sybase Central]。
在 Sybase Central 中,按以下操作连接到 app_profiling.db:
单击 [连接] » [使用 SQL Anywhere 16 连接]。
在 [连接] 窗口中,完成以下字段以连接到测试数据库 app_profiling.db:
在 [验证] 字段中,键入 [数据库]。
在 [用户 ID] 字段中键入 DBA。
在 [口令] 字段中键入 sql。
在 [操作] 下拉列表中,选择 [启动并连接到此计算机上的数据库]。
在 [数据库文件] 字段中,键入 C:\AppProfilingTutorial\app_profiling.db。
在 [启动行] 字段中键入 dbeng16 -x tcpip。
单击 [连接]。
在 Sybase Central 中,单击 [模式] » [应用程序分析]。
如果出现 [应用程序分析向导],则单击 [取消]。
按以下步骤启动 [数据库跟踪向导]:
单击 [文件] » [跟踪]。
在 [欢迎] 页面上,单击 [下一步]。
在 [跟踪详细信息级别] 页面上,单击 [高详细信息(建议短期、集中监控使用)],然后单击 [下一步]。
在 [编辑跟踪级别] 页面上,单击 [下一步]。
在 [创建外部数据库] 页面上,单击 [不创建新数据库。我将使用现有跟踪数据库],然后单击 [下一步]。
在 [启动跟踪] 页面上,单击 [在此数据库中保存跟踪数据]。
若不想对存储的跟踪数据量设置任何限制,请单击 [无限制],然后单击 [完成]。
按以下步骤创建死锁:
在左窗格中,确保选中 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,然后单击 [文件] » [跟踪] » [停止跟踪并保存] 停止跟踪会话。
![]() |
使用DocCommentXchange讨论此页。
|
版权 © 2013, SAP 股份公司或其关联公司. - SAP Sybase SQL Anywhere 16.0 |