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 的用法 » 监控和提高数据库性能 » 应用程序分析教程 » 教程:诊断执行速度慢的语句

 

第 2 课:查看由数据库服务器处理的语句

通过使用位于 Sybase Central 的 [应用程序分析] 窗格中的 [概览] 和 [详细信息] 选项卡,您可以确定数据库服务器在哪些语句上花费的处理时间最多。

♦  查看由数据库服务器处理的语句
  1. 打开分析文件。

    1. 在 Sybase Central 中,选择 [模式] » [应用程序分析]。如果出现 [应用程序分析向导],则单击 [取消]。

    2. 选择 [应用程序分析] » [打开分析文件或连接到跟踪数据库]。

    3. 选择 [在跟踪数据库中],然后单击 [打开]。

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

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

    6. 单击 [确定]。

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

  2. 检查在跟踪会话期间处理的语句的执行时间。

    1. 在 [应用程序分析详细信息] 窗格的 [状态] 选项卡上,从 [记录会话 ID] 字段中选择时间最近的 ID(最高编号),然后单击 [数据库跟踪数据] 选项卡。

    2. 将出现该会话的数据。

      在 [概览] 选项卡中,出现在会话期间执行的 SQL 语句。您还会看到更多其它语句。这是因为您自动执行的语句导致了其它语句的执行(例如,触发器)。

      [概览] 选项卡将相似的语句组合到一起,并汇总调用总数和处理这些语句所花费的总时间。SELECT、INSERT、UPDATE 和 DELETE 语句按它们所引用的表、列及表达式组合到一起。其它语句则作为一个整体组合到一起(例如,所有 CREATE TABLE 语句在 [概览] 选项卡中以单个条目的形式显示)。语句也可能在 [概览] 选项卡中显示为高成本语句,因为该语句是一个高成本语句,也可能是因为它执行频率比较高。

      使用 [总时间] 列和 [最长时间] 列来检查您在本教程中先前执行的两个查询的执行时间。第一个查询显示执行总时间为 20 毫秒。第二个查询显示的执行时间较短(16 毫秒),这说明使用了不相关子查询的第二个查询可能是要使用的更有效的语法。

      对于跟踪会话期间执行的各个 SQL 语句,均会显示调用数、总时间、最长时间、用户和语句文本。
  3. 要在 [概览] 选项卡中查看有关任一 SQL 语句的其它信息,请右键单击该语句并选择 [显示所选概览 SQL 语句的详细 SQL 语句]。

    • 要查看执行该语句的连接的相关信息,请右键单击该语句并选择 [查看所选语句的连接详细信息]。

    • 要查看该语句使用的执行计划,请在 [详细信息] 选项卡中右键单击该语句,然后选择 [查看所选语句的更多 SQL 语句详细信息]。

      将出现 [SQL 语句详细信息] 窗口,显示该语句的全文及该语句所处上下文的相关详细信息。请注意,显示的语句文本可能与您执行的原始 SQL 语句不符。[SQL 语句详细信息] 窗口会以语句的重写形式显示该语句,因为它是由数据库服务器处理的。例如,视图上的查询可能看上去截然不同,因为视图定义通常在执行查询时被优化程序重写。

      要查看执行计划,请单击 [查询信息] 选项卡。

有关执行计划中显示的项的详细信息,请参见读取执行计划

有关相关子查询和不相关子查询的信息,请参见使用子查询

有关使用 [概览] 和 [详细信息] 选项卡的信息,请参见执行请求跟踪分析