1. 问题:Data store space exhausted, Permanent data partition free space insufficient to allocate 5500 bytes of memory
原因:查询语句中可能用到索引,多个查询语句同时执行导致表锁死,最后使得临时区大小狂涨。
今天给自己写的一个从TT导出大量数据的程序加了个排序,也就是查询语句后面都加了order by 【主键】。程序是多线程并发读取数据的,本来想应该没什么问题的,结果执行一段时间久抛出问题中所指的错误,大体意思就是临时区占用超过上限了。我用dssize看了一下,TEMP_IN_USE_SIZE 的数据一直在变大。想起原来的程序跑了很久都没问题,我就从最近的修改分析。开始以为是启用了ODBC连接池的原因,结果关了问题依旧。折腾了半天才想到加了个order by,去掉果然OK了,TEMP_IN_USE_SIZE 很稳定。问题的根源是我有一张表分页分了40页,然后并发读取,也就是这个表会不停的被锁,结果TT就抓狂了。
2. 待续