使用SQL DB的Java程序的资源注意事项

时间:2013-08-13 15:02:21

标签: java sql performance jdbc database-performance

我对编程很新,至少在涉及到任何实质性问题时都是如此。我即将开始为我的雇主开发一个管理软件,该软件从SQL数据库中提取数据并将其存储到SQL数据库中。我可能会使用JDBC与之互动。

为了尝试准确描述问题,我将重点关注程序的一小部分。在数据库中,有一个存储Job个记录的表。其中有几千个。我想在程序的可滚动面板中显示所有可用的Jobs(作为表中的文本参考),并带有搜索功能。

所以,我的问题是......我应该一次性从每个记录创建Job个对象,让程序与对象一起显示它们,还是我应该只显示直接从记录中获取的字符串?第一种方法意味着每个作业的其他细节都存储在高级中,这样当我在UI中打开记录时,加载时间应该是最小的,但是当它最初填充时,它听起来也会占用大量资源。面板并生成对象。第二种方法意味着向数据库发出大量查询,但可能会避免初始资源开销,但我不想对SQL Server施加太多压力,因为内部的其他软件依赖于它。

真的,我对如何做到这一点一无所知。但这确实是我的问题。如果我在这篇文章中表达了我的无知,请向你道歉,并感谢你提供任何帮助。

1 个答案:

答案 0 :(得分:2)

“几千”对于现代计算机来说是一个非常小的数字。如果您对这些记录执行任何逻辑(它们并非仅通过存储过程进行修改),那么您将更容易使用像Hibernate这样的对象关系映射(ORM)工具。查看JPA规范,该规范允许您创建表示数据库对象的Java类,然后简单地对它们进行注释以描述它们如何存储在数据库中。使用像这样的系统的ORM确实有一些开销,但它几乎总是值得的,因为计算机速度快,程序员也很昂贵。

注意:这是规则的一个特定示例,您应该以最清晰且最容易理解的方式执行操作,除非您有非特定的理由不这样做,特别是您不应该优化速度,除非您已经测量了程序的性能,并确定代码的特定部分导致了问题。使用使代码易于理解的抽象,如果你真的需要加快速度,可以稍后再回来。