本帖最后由 520vc 于 2010-04-19 23:13:00 编辑

解决方案 »

  1.   

    您的数据量有这么多,那楼主您为什么不改用SQL数据库,非要用ACCESS数据库.
      

  2.   


    ACCESS桌面数据库使用方便呀。
      

  3.   

    可以分成多步来做。自己改成 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
      

  4.   


    -- 分别设置两个匹配标记 --
      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字段重复值比较多的情况下速度非常慢,接近死机,请问是
    怎么回事??怎么解决呢?
      

  5.   

    那么把  b.Part_Number Group By 一下,也生成一张零时表 T1,然后用 T 和 T1 中不重复的 Part_Number 进行标记更新。
    用临时表就是为了通过去除重复值,来减少连接的规模,以达到提升性能的目的。