1

我在 SAS Enterprise Guide 6.1 中有一个通过 ODBC 分配给数据库的库名。

如果在服务器列表面板中选择附加到 libname 的表,然后用鼠标右键菜单打开它,我会得到可以浏览的结果表。

是否有可能以某种方式查看表的打开发送到 ODBC 接口的 SQL 查询?

加法1:

我想比较运行proc sql查询时的性能: proc sql; select * from temp.cases (obs=100); quit;

当使用鼠标右键菜单打开表格并将Tools > Options > Data > Performance > Maximum number of rows ...设置设置为100.

为了能够解释性能上的差异,我需要知道使用鼠标右键菜单打开表格时使用的是哪个查询。是阅读完整的表格,然后显示 100 行,或者只阅读 100 行,然后显示这 100 行。这两种显示数据的方式在性能上可能存在巨大差异。

或者,找出在打开数据时使用的查询以查看处理 ODBC 查询的服务器的日志的唯一方法是什么?

补充2:

我遇到的问题是由某些字段的字符串长度引起的,它变成了最大值 32767。有 48 个字符串字段,每行 48 * 32767 = 1.5 M!显然没有字符串有“记录结束”标记,这导致 SAS 服务器和 SAS 客户端之间的数据流量很大。

将数据重新格式化为只有最大为 255 的字符串长度后,一行仅占用 48 * 255 = 12 k,在通过“打开”SAS Guide 查看器中的表查看数据时,这在速度上产生了巨大差异!将相同的数据输出到“SAS 报告”中时,没有看到类似的性能损失。

4

1 回答 1

1

我不确定是否可以看到正在发生的事情的 SQL 版本。由于它是 SAS,它可能正在使用数据步骤或等价物来填充表浏览(例如在数据步骤集语句上使用 obs= 选项)。

但是,如果您只是想找到一个 proc sql 等效项。outobs 选项可能对您有用。

proc sql outobs=10;
create table temp2 as select * from temp;
run;
于 2014-10-20T17:28:21.437 回答