错误代码SQLCODE:-964

swayam swayam

我正在执行选择查询。当表数为10或更少时,则10个查询执行良好。

select * from  SERVEIT.ibasemaster,
SERVEIT.ticket,
SERVEIT.PSEUDOTICKETDETAILS,
SERVEIT.ticketdetails,
SERVEIT.obligationtypemaster,
SERVEIT.STATUSMASTER;

但是当表的数量增加到10个以上时,查询将不会执行并给出错误代码"DB2 SQL Error: SQLCODE=-968, SQLSTATE=57011, SQLERRMC=null, DRIVER=4.21.29"我已经搜索了这个问题,并且知道这是一个空间大小的问题。我已将logproimary的大小增加到8,将logsecond的大小增加到16,但这也不起作用。

蒂姆·比格莱森(Tim Biegeleisen)

在下面的查询中

select * from SERVEIT.ibasemaster,
              SERVEIT.ticket,
              SERVEIT.PSEUDOTICKETDETAILS,
              SERVEIT.ticketdetails,
              SERVEIT.obligationtypemaster,
              SERVEIT.STATUSMASTER;

您正在执行的是列出的六个表之间的交叉联接,因为该ON子句中没有子句,也没有任何联接条件WHERE我的猜测是,当您命中10个表时,结果集变得如此之大,以致无法容纳到内存中,或者超过了DB2施加的内存限制。

如果您确实打算进行交叉联接,那么您唯一的选择可能是以某种方式增加内存。但是更好的解决方案是添加一个ON子句并限制连接结果集的大小。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章