0

我在 Sybase IQ 12.7 中有一个查询,如下所示:

select ip from iplookup where ip in (select ip from persisted_info)

其中 iplookup 被定义为单列。

我看到了 IN 和子查询,并决定一定很慢(全表扫描),这将是首选:

select lk.ip from iplookup lk, persisted_info ps where lk.ip = ps.ip

但我要小心并获得一些证据来支持我。Sybase IQ 不支持 EXPLAIN PLAN,使用 SET STATISTICS TIME ON 会返回语法错误。

为了解决这个问题,我想知道如何获得:

  1. 时间信息
  2. 执行计划信息

编辑:我正在使用 Mac 中的 sqsh 与 Sybase 对话,当我在查询之前添加 SET STATISTICS IO ON 时,我会在响应中获得额外信息。

4

1 回答 1

1

我认为您正在寻找(编辑语法,我处于 ​​ASE 模式)

set TEMPORARY OPTION NOEXEC = on;
set TEMPORARY OPTION QUERY_PLAN = on;
set TEMPORARY OPTION QUERY_TIMING = on;

这些写入服务器日志,我不确定您是否有权访问。如果您可以在没有确切的 IO 和计时统计信息的情况下生活,那么您将不需要访问服务器日志并且可以执行以下操作...

如果您使用的是@@version 12.7 ESD3 或更高版本,您应该能够执行以下两个查询之一并将输出放入.html 或.xml 文件并查看它。

--XML
SELECT GRAPHICAL_PLAN ('select * from t1 where ip in (select ip from t2)')
--HTML
SELECT HTML_PLAN ('select * from t1 where ip in (select ip from t2)')

更多信息的链接:http: //infocenter.sybase.com/help/index.jsp?topic=/com.sybase.infocenter.dc74603.1270/html/iqrbwin/ CIHEFAIF.htm

于 2013-04-03T04:28:13.680 回答