【问题标题】:Which is faster: Current Date from VB.NET or DB2 SQL哪个更快:来自 VB.NET 或 DB2 SQL 的当前日期
【发布时间】:2011-12-19 16:52:22
【问题描述】:

我正在处理一个项目,要求我从数据库中删除至少 3 年的记录。

我在 DB2 SQL 中有这样的东西来获取日期:

SELECT * FROM tableA
WHERE ADD_DATE < CHAR(CURRENT DATE-3 YEARS)

ADD_DATE 在我的系统中存储为字符,这就是我要转换的原因

我知道也可以在 VB.net 中获取日期并对其进行格式化,这是我用来调用 SQL 语句的语言。

我的问题是获取日期并在 SQL 中的 SELECT 内执行转换是否会更快/更好,或者获取当前日期并在 VB.net 中转换它然后在SQL 语句。我认为 VB.net 会更好,因为必须比较数千条记录。我应该能够在 VB 中设置它,以便它只检索日期并转换一次,但我不确定这些语句对每个性能的影响。

提前致谢。

【问题讨论】:

    标签: sql vb.net performance date db2


    【解决方案1】:

    如果您对数据库的调用只是获取日期,那么在客户端获取它并避免往返数据库会更快。

    如果您在服务器端执行此操作,并且您在单个基于集合的操作中比较您的日期,那么时间差可以忽略不计。如果您在基于循环的东西(光标或其他东西)中进行检查,那么您将浪费时间。

    听起来这不适用于您,但为了将来参考,请务必考虑客户端和数据库服务器位于不同时区的可能性。根据生成数据的时区,以一种或另一种方式执行此操作可能更安全。

    【讨论】:

    • 补充您的答案:如果客户时间错误会怎样?如果这会是一个问题(我不知道什么时候不会),那么我会使用服务器时间。
    【解决方案2】:

    在 VB.Net 中执行“现在”肯定会比访问数据库更快。

    【讨论】:

      猜你喜欢
      • 2012-08-21
      • 2017-08-24
      • 1970-01-01
      • 1970-01-01
      • 2021-10-23
      • 1970-01-01
      • 1970-01-01
      • 2021-09-15
      • 1970-01-01
      相关资源
      最近更新 更多