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

SAP Sybase SQL Anywhere 16.0 (中文) » SQL Anywhere 服务器 - SQL 用法 » 性能提高、诊断和监控 » 应用程序分析教程 » 教程:诊断死锁

 

第 3 课:查看阻塞的连接数据

使用 [应用程序分析] 模式查看死锁所涉连接的图形表示。[应用程序分析] 模式还提供 [连接块] 选项卡,该选项卡提供有关阻塞连接的其它信息。

前提条件

本课假定您拥有在本教程开头的特权部分中列出的角色和特权: 教程:诊断死锁

本课假定您已完成前面的所有课程。请参见第 1 课:建立数据库

 任务
  1. 按如下步骤打开在跟踪会话期间创建的分析文件:

    1. 在 Sybase Central 中,单击 [应用程序分析] » [打开分析文件或连接到跟踪数据库]。

    2. 单击 [在跟踪数据库中]。

    3. 单击 [打开]。

    4. 在 [用户 ID] 字段中键入 DBA

    5. 在 [口令] 字段中键入 sql

    6. 在 [操作] 下拉列表中,选择 [连接到此计算机上正在运行的数据库]。

    7. 在 [数据库名] 字段中键入 app_profiling

    8. 单击 [连接]。

  2. 按如下步骤查看死锁的图形表示:

    1. 在 [应用程序分析详细信息] 窗格中,单击 [状态] 选项卡,然后从 [记录会话 ID] 列表中选择时间最近的 ID。

      如果未出现 [应用程序分析详细信息] 窗格,请单击 [视图] » [应用程序分析详细信息]。

    2. 在 [应用程序分析详细信息] 窗格的底部,单击 [死锁] 选项卡。将出现时间最近的死锁。单击 [死锁] 列表来查看其它死锁。

    3. 下图显示了 UPDATE 语句是如何形成死锁条件的。

      对于每个连接,都显示一个表,其中有指向另一连接的箭头。

    死锁中涉及的各个连接由具有以下字段的表来表示:

    • 连接名   打开连接的用户 ID。

    • SQL 语句   死锁中涉及的语句。在本例中,死锁由 UPDATE 语句引起,在从每个 Interactive SQL 实例执行的过程中即可找到该语句。

    • 拥有连接 ID   阻塞当前连接的连接的 ID。

    • 记录 ID   当前连接发生阻塞时所在行的 ID。

    • 回退操作计数   由于死锁而必须回退的操作数。在本例中,过程仅包含 UPDATE 语句,因此计数为 0。

  3. 要查看其它死锁信息(如发生频率和持续时间),可使用 [连接块] 选项卡执行以下步骤:

    1. 在 [应用程序分析详细信息] 窗格中,单击 [数据库跟踪数据] 选项卡。

    2. 单击 [连接块] 选项卡,该选项卡就在 [数据库跟踪数据] 选项卡的上方。

      将出现 [连接块] 选项卡,显示阻塞时间、解除阻塞时间和各个连接受阻塞的持续时间。

结果

现在已经完成了有关诊断死锁的应用程序分析教程。

 另请参见