3

我在 Access 中有一个包含子表单的表单。在这个子表单中,应该运行一个查询并返回大约 2000 条记录。

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

在这两个从另一个.mdb文件(以下查询)返回记录的查询中,此表单和查询适用于 ie 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;

我该如何处理我的问题,你知道吗?

4

1 回答 1

0

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

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

于 2012-05-22T12:03:46.110 回答