1

我在从数据库查询中收集我的 IO 统计信息时遇到了一个奇怪的错误。

在我看来(没有证据)的方式是,由于没有明显的原因,运行的查询之一将其set statistics io关闭。

Sybase有什么方法可以查询set statistics io是ON还是OFF?


注意:这对我的主要问题(上面粗体)无关紧要,但更高级别的问题如下:

  • 我在 Perl 中使用 DBI 模块连接到 Sybase。

  • 我正在运行以下代码:

    Run_Query("set statistics io on");
    Run_Query("set showplan on");
    Run_Query("$query1");
    Run_Query("$query2");
    # ...
    Run_Query("$queryN");
    Run_Query("set statistics io off");
    Run_Query("set showplan off");
    
  • 出于某种原因,$query3打印来自 DBI 回调的 showplan 输出,而不是统计 IO 输出。

  • 我想检查是否由于某种原因“set statistics io off”被提前调用。

4

1 回答 1

1

有一种方法可以检查它,但不是那么简单。您可以使用此变量:

select @@options 

它将向您显示所有会话的设置选项,但它是十六进制表示:)。

在底部有一个表格,其中描述了 的值@@options

我测试了它,在第 14 位有2or A,它取决于set statistics io状态:

80a10000000f014403
80210000000f014403
于 2012-11-20T09:27:56.143 回答