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

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

 

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

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

♦  查看阻塞的连接数据
  1. 打开在跟踪会话期间创建的分析文件。

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

    2. 选择 [在跟踪数据库中]。

    3. 单击 [打开]。

    4. 单击 [标识] 选项卡,然后在 [用户 ID] 字段中键入 DBA,在 [口令] 字段中键入 sql

    5. 单击 [数据库] 选项卡,在 [数据库文件] 字段中,浏览至 app_profiling - DBA,然后选中它。

    6. 单击 [确定]。

  2. 查看死锁的图形表示。

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

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

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

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

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

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

  • 连接名称   此字段显示打开连接的用户 ID。

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

  • 拥有连接 ID   此字段显示阻塞当前连接的那个连接的 ID。

  • 记录 ID   此字段显示当前连接发生阻塞时所在行的 ID。

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