0 0

菜鸟写的代码如何优化 性能太慢 。5

public Paginate getBookInfoByPublishDateAndPublisher(Paginate paginate,
			String unionSiteID,String publisher, Date fromDate, Date toDate, String bookName,
			Double price1, Double price2, String vendor, String bookCategory) {
		// TODO Auto-generated method stub
		StringBuffer whereCause =new StringBuffer( "not exists(select l from UnionSiteProductList l where l.unionSiteID=? and b.bookID =l.productID)");
		Vector paras = new Vector();
		paras.add(unionSiteID);
		if (publisher != null && publisher.trim().length() > 0) {
			whereCause.append( (whereCause.length() > 0 ? " and " : "")
					+ "b.publisherName like ?");
			paras.add("%" + publisher + "%");
		}
		if (fromDate != null) {
			whereCause.append( (whereCause.length() > 0 ? " and " : "")
					+ "b.publishDate >= ?");
			paras.add(fromDate);
		}
		if (toDate != null) {
			whereCause.append( (whereCause.length() > 0 ? " and " : "")
					+ "b.publishDate <= ?");
			paras.add(toDate);
		}
		if (bookName != null && bookName.trim().length() > 0) {
			whereCause.append((whereCause.length() > 0 ? " and " : "")
					+ "b.bookName like ?");
			paras.add("%" + bookName + "%");
		}
		if (price1 != null) {
			whereCause.append( (whereCause.length() > 0 ? " and " : "")
					+ "pp.productPrice >= ?");
			paras.add(price1);
		}
		if (price2 != null) {
			whereCause.append( (whereCause.length() > 0 ? " and " : "")
					+ "pp.productPrice <= ?");
			paras.add(price2);
		}
		if (vendor != null && vendor.trim().length() > 0) {
			whereCause.append((whereCause.length() > 0 ? " and " : "")
					+ "v.vendorName like ?");
			paras.add("%" + vendor + "%");
		}
		if (bookCategory != null && bookCategory.trim().length() > 0) {
			whereCause.append( (whereCause.length() > 0 ? " and " : "")
					+ "bcv.bookCategoryName like ?");
			paras.add("%" + bookCategory + "%");
		}
		String hql = "select b,pp,v,bcv from Book b,ProductItem i,Product p, "
				+ "ProductPrice pp,Vendor v,BookCategoryView bcv "
				+ " where b.bookID=i.entityID and b.deleteFlag=0 and b.flag=4 "
				+ " and i.entityType=1 and i.deleteFlag=0"
				+ " and i.productID=p.productId and p.productType=1 and p.deleteFlag=0 and p.isValid=1"
				+ " and p.productId=pp.productId and pp.deleteFlag=0"
				+ " and b.vendorID = v.vendorID "
				+ " and b.bookCategoryCode=bcv.bookCategoryCode ";		


		if (whereCause.length() > 0) {
			hql = hql + " and " + whereCause;
		}
		paginate = this.pagedQuery(hql, paginate, paras.toArray());
		return paginate;
	}




半年javaweb开发 ,接受拍砖
性能很慢,请各位帮忙看下如何优化。  小弟在此谢过了
2011年5月03日 11:09

6个答案 按时间排序 按投票排序

0 0

最好把StringBuffer改成StringBuilder
其他的貌似没有影响性能的问题,再看一下这段代码放的位置吧

2011年5月08日 12:16
0 0

stringbuffer 使用的时候应该先开辟空间 否则直接使用string去累加好了,
我以前总结的一点点代码可读性的东西:
http://evn.iteye.com/blog/866171
这样的代码性能上不会有太大问题的, 性能问题要从大方面开始考虑 然后再考虑这些细节
借助代码性能工作 我也有总结过,可以去看看.
一定是从大的开始解决 然后解决小的代码问题

2011年5月07日 01:50
0 0

另外,whereCause.length() 会小于等于0么……

2011年5月03日 22:08
0 0

whereCase的时候用StringBuffer了,为什么String hql = xxxx的时候不用呢?另外,如果几行字符串的拼装就能让你明显感觉性能下降了,那么这个系统问题真就大了(虽然字符串的操作开销很大,但我不认为楼主这个系统存在这个问题),所以还是从别的地方分析下影响性能的原因,例如sql语句本身。

2011年5月03日 22:05
0 0

这怎么设计OO的,hibernate给初学者,真是害死人了,配置好映射关系就不需要写关联查询了,会自动生成


# String hql = "select b,pp,v,bcv from Book b,ProductItem i,Product p, " 
#                 + "ProductPrice pp,Vendor v,BookCategoryView bcv " 
#                 + " where b.bookID=i.entityID and b.deleteFlag=0 and b.flag=4 " 
#                 + " and i.entityType=1 and i.deleteFlag=0" 
#                 + " and i.productID=p.productId and p.productType=1 and p.deleteFlag=0 and p.isValid=1" 
#                 + " and p.productId=pp.productId and pp.deleteFlag=0" 
#                 + " and b.vendorID = v.vendorID " 
#                 + " and b.bookCategoryCode=bcv.bookCategoryCode ";     

这个hql改成sql吧

2011年5月03日 16:58
0 0

  这样写太!!

2011年5月03日 13:10

相关推荐

    c语言菜鸟必看代码20/c代码

    c语言菜鸟必看代码c语言菜鸟必看c语言菜鸟必看代码代码

    农村菜鸟驿站运营现状与优化分析以安徽省利辛县为例.zip

    【标题】与【描述】提及的是关于农村菜鸟驿站的运营现状及优化分析,具体以安徽省利辛县为研究对象。这个话题涉及到我国农村地区物流服务的发展、电子商务在农村的普及以及农村经济与现代服务业的融合。 一、农村...

    菜鸟窝企业项目课程《菜鸟商城》的源码.rar

    4. **安全性与性能优化**: - **HTTPS安全通信**:保护用户数据传输过程中的安全性。 - **API限流与权限控制**:防止恶意攻击,保护系统稳定。 - **数据库索引优化**:提高查询速度,减少数据库性能瓶颈。 - **...

    ubuntu常用命令集合(菜鸟写给很菜很菜的鸟)_cg516_新浪博客.mht

    ubuntu常用命令集合(菜鸟写给很菜很菜的鸟)_cg516_新浪博客.mhtubuntu常用命令集合(菜鸟写给很菜很菜的鸟)_cg516_新浪博客.mhtubuntu常用命令集合(菜鸟写给很菜很菜的鸟)_cg516_新浪博客.mhtubuntu常用命令...

    菜鸟教程设计模式之工厂模式代码整理

    在这个"菜鸟教程设计模式之工厂模式代码整理"中,我们将深入探讨工厂模式的基本概念、结构以及如何在实际编程中应用。 工厂模式的核心思想是通过一个专门的工厂类来创建对象,而不是让客户端代码直接实例化具体的...

    菜鸟自写打包

    菜鸟自写打包,多文件打包zip(main)测试程序只限于菜鸟阅读,大牛飘过即可

    编程代码优化纠错器

    编程代码优化纠错器是一款强大的工具,它旨在帮助程序员在编写代码时发现并纠正错误,同时还能将不规范的代码自动转化为符合标准的格式,提升代码的可读性和维护性。这款工具支持JAVA、PYTHON和C++这三种主流的编程...

    菜鸟斯诺克代码

    "菜鸟斯诺克代码"是一个面向初学者的项目,它包含了一个斯诺克游戏的完整源代码,旨在帮助学习者理解和掌握编程技能,特别是与游戏开发相关的技术。在这个项目中,开发者使用了WPF(Windows Presentation Foundation...

    JQuery菜鸟到忍者(原版英文PDF+代码CODE)

    《JQuery菜鸟到忍者》是一本专门为有一定英语基础并希望深入学习网页开发,特别是jQuery技术的读者准备的书籍。这本书由Sitepoint出版,旨在帮助初学者从零基础快速成长为熟练掌握jQuery的开发者,实现从“菜鸟”到...

    菜鸟linux_tcp服务器c++/c日志作业代码

    这是本人刚入职作的作业,因为刚毕业,所以写的代码基本不能看,也希望各位能点评一下,自己刚学习,哎,还有好多考虑到,希望大家可以帮我找下bug和优化下代码,谢谢了! 自己是刚毕业工作的学生,所以写得很laji...

    菜鸟必备电脑优化技巧

    【电脑优化技巧】对于电脑新手来说,掌握一些基础的电脑优化技巧是十分必要的,这不仅可以提升电脑的运行效率,还能有效防止潜在的安全风险。本文主要讲述了两种针对木马的防范措施以及Windows XP系统的优化设置。 ...

    高性能计算知识汇总

    高性能计算(HPC)是一项集合了众多处理器单元,或者通过集群系统中的多台...随着技术的发展,HPC系统正变得越来越复杂,对于系统工程师和计算科学家来说,掌握这些知识点对于设计、部署和优化高性能计算系统至关重要。

    菜鸟操作WINDOWS大全 工具

    菜鸟操作WINDOWS大全菜鸟操作WINDOWS大全菜鸟操作WINDOWS大全菜鸟操作WINDOWS大全菜鸟操作WINDOWS大全菜鸟操作WINDOWS大全菜鸟操作WINDOWS大全菜鸟操作WINDOWS大全菜鸟操作WINDOWS大全菜鸟操作WINDOWS大全菜鸟操作...

    菜鸟最爱的aspnet代码

    ASP.NET是微软公司开发的..."菜鸟的最爱aspnet代码.doc"可能包含了适合初学者的ASP.NET代码示例,涵盖了上述一些基础概念和实践操作。通过学习这些代码,新手可以更好地理解和运用ASP.NET,逐步成长为熟练的Web开发者。

    python菜鸟教程学习相关代码

    "Python菜鸟教程学习相关代码"这一标题表明,这个压缩包包含了一些针对初学者的Python学习资料,可能包括基础语法、数据结构、函数、模块等内容的代码示例。下面将详细阐述Python的基础知识,以及如何通过这些教程...

    111.zipC语言菜鸟保姆级代码

    "111.zipC语言菜鸟保姆级代码"这个压缩包文件显然是为那些正在踏入C语言大门的新手们准备的,旨在帮助他们逐步理解并掌握这门强大的编程语言。 首先,让我们来探讨C语言的基础知识。C语言是由Dennis Ritchie在20...

    深度、雨林木风、无忧、电脑报-四大菜鸟级系统优化工具..pdf

    本文将介绍四款针对菜鸟级别的系统优化工具:深度系统优化工具、雨林木风优化工具、无忧系统优化工具以及注册表修改工具电脑报专用版。 1. 深度系统优化工具: 深度技术是一家知名的系统维护软件开发商,其推出的...

    (整理版)深度、雨林木风、无忧、电脑报-四大菜鸟级系统优化工具.docx

    本文将详细介绍四个被广泛推荐的菜鸟级系统优化工具:深度系统优化工具、雨林木风优化工具、无忧系统优化工具以及电脑报专用的注册表修改工具。这些工具的特点是操作简便,无需深入了解计算机系统知识就能轻松使用。...

    菜鸟驿站地址详情页面小程序源码.zip

    10. **性能优化**:为了提升用户体验,开发者还需要关注小程序的加载速度和运行效率,例如减少网络请求、优化图片资源、合理使用缓存、避免内存泄漏等。 总之,这个源码的学习可以帮助你深入理解小程序开发的各个...

    小菜鸟系列-Oracle的优化器与hint

    在“小菜鸟系列-Oracle的优化器与hint”这个主题中,我们将深入探讨Oracle数据库的查询优化器以及如何通过使用hint来引导优化器进行更高效的执行计划选择。 Oracle的优化器是数据库引擎的核心组件,它负责分析SQL...

Global site tag (gtag.js) - Google Analytics