【问题标题】:Resource considerations for a Java program using an SQL DB使用 SQL DB 的 Java 程序的资源注意事项
【发布时间】:2013-08-13 15:02:21
【问题描述】:

我对编程相当陌生,至少在涉及任何实质性内容时。我即将开始为我的雇主开发一个管理软件,该软件从 SQL 数据库中提取数据并将其存储到 SQL 数据库中。我可能会使用JDBC 与之交互。

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

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

真的,我不知道该怎么做。但这确实是我的问题。如果我在这篇文章中表现出我的无知,我深表歉意,并在此先感谢您提供的任何帮助。

【问题讨论】:

  • 好吧,我想说为每条记录创建一个Job 对象是一个更好、更灵活的设计标准。另外我知道你对JDBC 感兴趣,但我使用JPA 找到了这个performance comparisson(也许如果你有太多工作要映射JPA可能是通过的选项)

标签: java sql performance jdbc database-performance


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-13
    • 2010-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多