【问题标题】:which is fastest win32 or SQL query?哪个是最快的 win32 或 SQL 查询?
【发布时间】:2010-10-07 10:24:05
【问题描述】:

我正在用 Delphi 7 编写一个客户端-服务器 win32 应用程序,在一个部分中我需要带上 aprox。包含来自 Oracle 数据库的数据的 100k(更少或更多)行。到目前为止一切正常,但必须计算其中一个字段(一个大数字的简单除法)。

我的问题是,如何减少资源消耗和优化,在 SQL 查询中进行划分(可能是存储过程),或者在代码中计算该字段的值(在服务器端)?我不想将 TDataset 与计算字段一起使用。

Oracle 系统(v 9.2) 也被其他应用程序使用,不仅专用于该应用程序。

提前致谢。

【问题讨论】:

  • 你打算如何处理这些数据?您是将它们发送回数据库还是在客户端上它们只是在那里被操纵?正如所回答的那样,大部分时间将用于传输该数据。真正的节省是如果您可以避免传输那么多行。

标签: delphi winapi delphi-7


【解决方案1】:

SQL 引擎专为此类任务而设计,因此答案是make the operation in the oracle system

始终执行 SQL 数据操作任务 在数据库服务器中,即 为此而设计。

【讨论】:

  • Delphi 也是为这种标量操作而设计的,所以它也可以在那里发生。从这个问题中不清楚该划分在应用程序以外的上下文中是否有意义,所以我不会对任何一种方法都皱眉。如果我知道更多,我可能会。
  • 恕我直言,不会减少返回的元组数量的操作在 DB 中比在 Delphi 中慢。
【解决方案2】:

使用这样的标量操作,性能差异将是微不足道的。做语义上更合理或更方便的那个。

【讨论】:

    【解决方案3】:

    如何减少资源消耗和 最优,使划分在 SQL 查询(可能是存储过程),或 计算代码中的值 这个字段(在服务器端)?

    应该没什么区别。大部分时间将用于计算和传输 100.000 行。

    【讨论】:

      【解决方案4】:

      如果性能相同,我会在对维护/配置最友好的地方进行。如果数据库需要一个专门的维护窗口(如星期六午夜)来更改元数据,我会选择客户端或中间层解决方案而不是存储过程。

      【讨论】:

      • 非常好。虽然我同意其他人的观点,在服务器上执行此操作可能会更有效,但在您可以快速掌握并进行更改的情况下执行此操作可能更实用。在某些环境中,桌面更改很容易,服务器更改(正常发布周期之外)需要 VP 签名!
      • 另一方面:如果计算更改可能比批准数据库更改更麻烦,则将应用程序重新发布给 3000 个用户。
      猜你喜欢
      • 1970-01-01
      • 2013-05-16
      • 2015-07-12
      • 2011-09-28
      • 1970-01-01
      • 1970-01-01
      • 2021-02-15
      • 2023-04-04
      • 1970-01-01
      相关资源
      最近更新 更多