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

SQL Anywhere 12.0.0 (中文) » SQL Anywhere 服务器 - SQL 的用法 » 监控和提高数据库性能 » 应用程序分析教程 » 教程:诊断死锁

 

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

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

 ♦  查看阻塞的连接数据
  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. 单击 [连接块] 选项卡,该选项卡就在 [数据库跟踪数据] 选项卡的上方。

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

  4. 您现在已经完成了有关死锁的应用程序分析教程。选择 [连接] » [断开连接],然后关闭 Sybase Central。

 另请参见