【问题标题】:Improving update performance in ACCESS提高 ACCESS 中的更新性能
【发布时间】:2016-09-07 14:02:54
【问题描述】:

我在 Access 中有 2 个表:

tbl_RM: (+ for primary key)
  + CustomerName (short text)
  + CountryCode  (short text)
  + RMDate       (Date/Time - format mmm-yy)
  + SerialNumber (short text)
    BlackClicks  (Double)
    ColorClicks  (Double)
    AccentClicks (Double)
    ProfessionalColorClicks (Double)

第二张桌子

tbl_Invoices: (+ for primary key)
  + CustomerName (short text)
  + CountryCode  (short text)
  + InvoiceDate  (Date/Time)
  + SerialNumber (short text)
    BlackClicks  (Double)
    ColorClicks  (Double)

tbl_RM 包含 98 496 条记录(其中 9113 条与下面的查询匹配)

tbl_Invoices 包含 9 618 条记录(全部符合以下请求)。

我想用来自 tbl_RM 的数据更新 tbl_Invoices。这是我的更新查询:

UPDATE tbl_Invoices
INNER JOIN tbl_RM 
      ON tbl_Invoices.CustomerName = tbl_RM.CustomerName
      AND tbl_Invoices.CountryCode = tbl_RM.CountryCode
      AND tbl_Invoices.SerialNumber = tbl_RM.SerialNumber
      AND MONTH(tbl_RM.RMDate) = MONTH(tbl_Invoices.InvoiceDate)
      AND YEAR(tbl_RM.RMDate) = YEAR(tbl_Invoices.InvoiceDate)
SET tbl_Invoices.BlackPages =  tbl_RM.BlackClicks + tbl_RM.AccentClicks,
tbl_Invoices.ColorPages =  tbl_RM.ColorClicks + tbl_RM.ProfessionalColorClicks

在 ACCESS 2013 中运行此程序时,计算需要数小时。我想有一种方法可以加快速度。任何建议都将受到欢迎。

【问题讨论】:

    标签: sql ms-access sql-update database-performance


    【解决方案1】:

    第一个建议是对tbl_RM(CustomerName, CountryCode SerialNumber) 的索引。可能已经足够好了。如果不是,那么您可能还需要处理索引中的日期。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-01-05
      • 2017-06-21
      • 1970-01-01
      • 1970-01-01
      • 2021-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多