我们最近发现在resultSetType=TYPE_SCROLL_INSENSITIVE
中使用prepareStatement(String sql, int resultSetType, int resultSetConcurrency)
而不是默认prepareStatement(String sql)
会导致db2生成/使用不同的访问计划,这可能导致查询时间明显不同,具体取决于表大小/过滤范围/等。
我们使用DB2 LUW V10.5 FP8。
只是想知道在性能优化,DB2或其他RDBMS方面是否有关于如何选择此resultSetType
属性的指导原则?顺便说一句,我们不会更改ResultSet
,因此我们允许使用*INSENSITIVE
。
答案 0 :(得分:0)
TYPE_SCROLL_INSENSITIVE
应谨慎使用,默认为ASENSITIVE。这允许Db2创建一个INSENSITIVE或SENSITIVE游标,具体取决于它认为最好的。
至少使用Db2 for i,INSENSITIVE会导致数据库创建数据副本。