提高 ACCESS 中的更新性能
Improving update performance in ACCESS
我在 Access 中有 2 个 table:
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)
第二个table
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 中计算时需要数小时。我想有一种方法可以加快速度。非常欢迎任何建议。
第一个建议是 tbl_RM(CustomerName, CountryCode SerialNumber)
上的索引。可能已经足够好了。如果不是,那么您可能还需要处理索引中的日期。
我在 Access 中有 2 个 table:
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)
第二个table
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 中计算时需要数小时。我想有一种方法可以加快速度。非常欢迎任何建议。
第一个建议是 tbl_RM(CustomerName, CountryCode SerialNumber)
上的索引。可能已经足够好了。如果不是,那么您可能还需要处理索引中的日期。