问题描述
在使用Data Studio浏览DB2表中的数据或者查询结果时,默认都是只显示前500行:
解决办法
怎样才能显示所有行或者显示指定的行数呢?可以在"首选项->数据管理->SQL开发->SQL结果视图选项“中设置:
如上图,默认显示的SQL查询结果集中的行数为500。在自定义设置之前先来解释一下“最大行计数”和“最大显示行计数”这两个参数。
最大行计数:要访存的结果集中的行数。即:需要访问内存中的结果集的多少行。(CPU访存)
最大显示行计数:要显示的已访存的行数。即:对于已经访存的那些行,需要在Data Studio的对应窗口显示多少行。没有显示的行将高速缓存到文件中。
如果二者都设置为0,表示访存结果集中的所有行并显示所有行。
如果指定的访存行大于结果集的行数,则访存结果集中所有行。
如果指定的显示行大于访存行,则显示所有访存行。
如果希望访存所有行但只显示若干行,则最大行计数设置为0,最大显示行计数设置为指定值就行了。
反正明白了这两个参数的含义就可以自由设定了。但是有一点是需要注意的:
进行SQL查询时,Data Studio工作空间的下方的SQL结果选项卡中会根据设定来显示。但是浏览表数据时(右击表,选择“浏览数据”),会访存指定行并显示所有访存行。无视“最大显示行计数”的设置。
比如将“最大行计数”设置为0(即访存所有行),“最大显示行计数”设置为1000,则进行SQL查询和浏览数据时工作空间显示如下:
最后要强调的一点是:“最大行计数”的值不要设置得过大,因为访存大量的数据会影响性能(上例中访存全部25万行大概耗时1分钟)。事实上,”最大行计数“参数等同于查询语句后追加 fetch first N rows only。
如果最大行计数为0,则浏览表数据时等同于执行SQL语句:
select * from mobile (需要执行较长时间)
如果最大行计数为1000,则浏览表时间是等同于执行SQL语句:
select * from mobile fetch first 1000 rows only (查询很快完成)