此select语句返回4k行。在我的应用程序中占用时间的是while循环。单循环就需要2到4分钟。关于如何优化它有什么想法吗?
不要太担心查询本身,因为它不会在查询响应上花费太多时间。
ArrayList<MembershipMemberInterestsVo> list = new ArrayList<MembershipMemberInterestsVo>();
StringBuffer sql = new StringBuffer();
sql.append("SELECT to_char(mai.id_info) as id, ");
sql.append("to_char(mai.field_title) as title, ");
sql.append("to_char(mmi.member_id) as membership_id ");
sql.append("FROM memserv_member_interests mmi, memserv_add_info mai ");
sql.append("WHERE mmi.interests like '%-' || mai.memserv_id || '-%' ");
sql.append("AND mai.soc_body_id = ? ");
sql.append("UNION ");
sql.append("SELECT to_char(mit.interest_id) as id, ");
sql.append("to_char(mit.text) as title, ");
sql.append("to_char(mit.member_id) as membership_id ");
sql.append("FROM memserv_member_interest_text mit ");
sql.append("WHERE society_id = ?");
pstmt = conn.prepareStatement(sql.toString());
pstmt.setString(1, societyId);
pstmt.setString(2, societyId);
rs = pstmt.executeQuery();
MembershipMemberInterestsVo vo = null;
while (rs.next()) {
vo = new MembershipMemberInterestsVo();
vo.setInterestId(rs.getString("id"));
vo.setMembershipId(rs.getString("membership_id"));
vo.setTitle(rs.getString("title"));
vo.setSocietyId(societyId);
list.add(vo);
}
我想这不是while循环,而是从数据库中检索数据所花费的时间,这肯定需要相当长的时间——这是在迭代结果集期间。
不要在while循环中创建任何对象,只需迭代结果集并查看所需的时间。应该差不多。
最可能的问题是您的SQL语句。向列表中添加4000个条目不会花费任何明显的时间。
如果这不是打字错误
WHERE mmi.interests like '%-' || mai.memserv_id || '-%'
您最终将得到整个表作为结果集。
MySQLdump和上传过程花费了太长的时间(~8小时)来完成整个过程。 我正在将活动数据库转储到mysqldump.tar文件和几乎3GB。当我加载到新的数据库,它需要6-8小时来完成这个过程(上传到新的数据库)。 我要完成这个过程,推荐的解决方案是什么?
问题内容: 我正在通过oracle认证的准Java SE7程序员实践考试(这本书),遇到一个问题,即使有解释,我也不明白答案。这是说明和代码: 它将打印3。循环主体执行两次,程序将打印3。 我不了解循环主体如何执行两次,也许我不了解什么意思。有人可以解释一下吗? 问题答案: 是 分配 其中B的逆分配给自身(真假之间有效地翻转) 在Java中,分配返回所分配的内容(因此可能) 因此将翻转b的值,然后
我试图找出为什么我的while循环没有在我希望的时候退出。基本上,我正在做一个简单的游戏,其中两个玩家玩单词,如果他们玩一个允许的单词,每轮都可以得分。一旦一个玩家打出一个以特定字符结尾的单词,该玩家就输掉了游戏。 我的方法是(在循环之前)设置一个值为false,然后使用while循环来保持游戏继续进行,直到玩家输入一个丢失的单词,此时循环应该立即退出,而不是进入玩家2(目前确实如此)。这基本上是
我有一个包含单个面板的JFrame。在面板中,我使用paintComponent方法根据JFrame的大小调整其元素的大小。JPanel的元素是一个作为背景的图像和4个JLabel,它包含4个ImageIcon,工作方式类似于按钮。Jpanel的方法paintComponent如下所示 这个框架只有一个简单的方法,add(myPanel)所以我没有在这里写它。当我运行这个应用程序时,它占用了我大约
我正在我的SQL中使用一个查询。首先我用 我该怎么做才能让它快过2秒
只要给定条件为真,Perl编程语言中的while循环语句就会重复执行目标语句。 语法 (Syntax) Perl编程语言中while循环的语法是 - while(condition) { statement(s); } 这里的statement(s)可以是单个陈述或一个陈述块。 condition可以是任何表达。 当条件为真时,循环迭代。 当条件变为假时,程序控制将立即传递到循环之后的行。