从Backend上的另一个mdb文件加载记录时性能低下

时间:2012-05-15 13:16:55

标签: ms-access

我在Access中有一个包含子表单的表单。在此子表单中,应运行查询并返回c.a 2000记录。

我有三个与此表格相关的查询,但其中两个有点复杂(我认为)。

在这两个查询中,从另一个.mdb文件返回记录(在查询之后),此表单和查询适用于X.mdb,但这些查询从Y.mdb

获取数据

我认为这会让我的表单变得很慢,因为如果我删除这个查询就可以了。

SELECT 
    tb_KonzeptFunktionen.Konzept AS KonzeptID, 
    tb_KonzeptFunktionen.Funktion,
    tb_KonzeptFunktionen.Version, 
    qryFunktionen_Übersicht.ID,
    qryFunktionen_Übersicht.Fehlerpfad_Kommentar AS Kommentar, 
    qryFunktionen_Übersicht.Fehlerpfadname, 
    qryFunktionen_Übersicht.Fehlerpfad_CDT, 
    qryFunktionen_Übersicht.Fehlerpfad_Kommentar, 
    qryFunktionen_Übersicht.symptombasiert, 
    qryFunktionen_Übersicht.Beschreibung_vorhanden, 
    qryFunktionen_Übersicht.Max_Pfad, 
    qryFunktionen_Übersicht.Max_Info, 
    qryFunktionen_Übersicht.Max_Status, 
    qryFunktionen_Übersicht.Max_Strategie, 
    qryFunktionen_Übersicht.Max_Prüfplan, 
    qryFunktionen_Übersicht.Min_Pfad, 
    qryFunktionen_Übersicht.Min_Info, 
    qryFunktionen_Übersicht.Min_Status, 
    qryFunktionen_Übersicht.Min_Strategie, 
    qryFunktionen_Übersicht.Min_Prüfplan, 
    qryFunktionen_Übersicht.Sig_Pfad, 
    qryFunktionen_Übersicht.Sig_Info, 
    qryFunktionen_Übersicht.Sig_Status,
    qryFunktionen_Übersicht.Sig_Strategie, 
    qryFunktionen_Übersicht.Sig_Prüfplan, 
    qryFunktionen_Übersicht.Plaus_Pfad, 
    qryFunktionen_Übersicht.Plaus_Info, 
    qryFunktionen_Übersicht.Plaus_Status, 
    qryFunktionen_Übersicht.Plaus_Strategie, 
    qryFunktionen_Übersicht.Plaus_Prüfplan, 
    qryFunktionen_Übersicht.Beschreibung_allgemein, 
    qryFunktionen_Übersicht.Funktionsname        
FROM tb_KonzeptFunktionen RIGHT JOIN qryFunktionen_Übersicht 
    ON tb_KonzeptFunktionen.Funktion = qryFunktionen_Übersicht.Funktionsname
WHERE (((tb_KonzeptFunktionen.Konzept)=[Formulare]![frm_Fahrzeug]![ID]))

如果我删除此查询,所有事情都可以正常工作

这是分配给上述查询的另一个相关查询(qryFunktionen_Übersicht)我在 ORDER By 的字段中添加了索引:

SELECT tbFunktionen_Übersicht.*, 
    tbFunktionen.Funktionsname, 
    tbFunktionen.Funktionsbeschreibung, 
    tbFunktionen.diagnoserelevant, 
    tbFunktionen.ID AS FunktionsID
FROM tbFunktionen_Übersicht INNER JOIN tbFunktionen 
    ON tbFunktionen_Übersicht.Funktion = tbFunktionen.ID
ORDER BY tbFunktionen.Funktionsname, tbFunktionen_Übersicht.Fehlerpfadname;

我如何处理我的问题,你有什么想法吗?

1 个答案:

答案 0 :(得分:0)

还请分享您添加索引的字段的信息,并添加您对查询命名的信息,以便我们更好地了解哪个查询依赖于另一个查询。

通常,为了获得更好的性能,可以将前端mdb中的所有查询保存为已编译的语句。 SQL JOIN可能需要花费大量时间,具体取决于他们必须访问的数据量,因此如果要显示的数据太多,则会占用大量时间,而Access数据库并不是此类任务的最快解决方案。