可以分成多步来做。自己改成 Access 的语法 -- 临时表-- CREATE TABLE T( Part_Number int, Material_code_13 varchar(50), flg1 int default 0, -- Part_Number 匹配 -- flg2 int default 0 -- Material_code_13 匹配 -- )-- 取出所有的 Part_Number 和 Material_code_13,默认不匹配 -- INSERT INTO T (Part_Number, Material_code_13) SELECT Part_Number, Material_code_13 FROM 电阻器 GROUP BY Part_Number, Material_code_13-- 分别设置两个匹配标记 -- UPDATE T JOIN [D:\company_lib\PartTableDB.mdb;pwd=123].resistor1 b ON T.Part_Number=b.Part_Number SET T.flg1=1UPDATE T JOIN [D:\company_lib\PartTableDB.mdb;pwd=123].resistor1 b ON T.Material_code_13= b.Material_code_13 SET T.flg2=1-- 将都不匹配的标为红色 -- UPDATE 电阻器 a JOIN T ON a.Part_Number=T.Part_Number AND a.Material_code_13= T.Material_code_13 SET a.flg='红色' WHERE T.flg1=0 AND T.flg2=0
-- 分别设置两个匹配标记 -- UPDATE T JOIN [D:\company_lib\PartTableDB.mdb;pwd=123].resistor1 b ON T.Part_Number=b.Part_Number SET T.flg1=1 UPDATE T JOIN [D:\company_lib\PartTableDB.mdb;pwd=123].resistor1 b ON T.Material_code_13= b.Material_code_13 SET T.flg2=1 现在出现了这样的问题: 对于大数据量的比较,当记录中Part_Number字段重复值比较少的情况下比较速度很快, 但是当记录中Part_Number字段重复值比较多的情况下速度非常慢,接近死机,请问是 怎么回事??怎么解决呢?
那么把 b.Part_Number Group By 一下,也生成一张零时表 T1,然后用 T 和 T1 中不重复的 Part_Number 进行标记更新。 用临时表就是为了通过去除重复值,来减少连接的规模,以达到提升性能的目的。
ACCESS桌面数据库使用方便呀。
-- 临时表--
CREATE TABLE T(
Part_Number int,
Material_code_13 varchar(50),
flg1 int default 0, -- Part_Number 匹配 --
flg2 int default 0 -- Material_code_13 匹配 --
)-- 取出所有的 Part_Number 和 Material_code_13,默认不匹配 --
INSERT INTO T (Part_Number, Material_code_13)
SELECT Part_Number, Material_code_13
FROM 电阻器
GROUP BY Part_Number, Material_code_13-- 分别设置两个匹配标记 --
UPDATE T
JOIN [D:\company_lib\PartTableDB.mdb;pwd=123].resistor1 b
ON T.Part_Number=b.Part_Number
SET T.flg1=1UPDATE T
JOIN [D:\company_lib\PartTableDB.mdb;pwd=123].resistor1 b
ON T.Material_code_13= b.Material_code_13
SET T.flg2=1-- 将都不匹配的标为红色 --
UPDATE 电阻器 a
JOIN T
ON a.Part_Number=T.Part_Number
AND a.Material_code_13= T.Material_code_13
SET a.flg='红色'
WHERE T.flg1=0
AND T.flg2=0
-- 分别设置两个匹配标记 --
UPDATE T
JOIN [D:\company_lib\PartTableDB.mdb;pwd=123].resistor1 b
ON T.Part_Number=b.Part_Number
SET T.flg1=1 UPDATE T
JOIN [D:\company_lib\PartTableDB.mdb;pwd=123].resistor1 b
ON T.Material_code_13= b.Material_code_13
SET T.flg2=1
现在出现了这样的问题:
对于大数据量的比较,当记录中Part_Number字段重复值比较少的情况下比较速度很快,
但是当记录中Part_Number字段重复值比较多的情况下速度非常慢,接近死机,请问是
怎么回事??怎么解决呢?
用临时表就是为了通过去除重复值,来减少连接的规模,以达到提升性能的目的。