Access2003データベースに次のクエリがあります。
SELECT
Projet.OTP AS OTP,
NumeroDA,
SUM(Quantite*PrixReelCommande) AS PrixTotal,
FIRST(Fournisseur1) AS Fournisseur,
FIRST(Projet.NumeroCommandeReservation) AS NumeroCommande,
FIRST(Projet.GestionContrat) AS GestionContrat,
FIRST(Projet.Acheteur) AS Acheteur,
MIN(DateLivraisonContractuelle) AS DateLivraisonContrat,
MAX(DateFournisseurLivraison) AS DateLivraisonFournisseur,
FIRST(InfoProjet.NomInstallation) AS NomInstallation,
FIRST(InfoProjet.TitreMandat) AS TitreMandat
FROM Projet LEFT JOIN InfoProjet ON Projet.OTP=InfoProjet.OTP
WHERE NumeroDA Like "#*" And NumeroDA IN (
SELECT NumeroDA FROM Projet
WHERE NumeroCommandeReservation="" Or NumeroCommandeReservation Is Null Or NumeroCommandeReservation="0"
)
GROUP BY Projet.OTP, Projet.NumeroDA
ORDER BY Projet.OTP, Projet.NumeroDA
テーブルProjetには最大2500行があり、InfoProjetには200行しかありません。Accessでこのテーブルのいずれかを開くのにかかる時間は1秒未満です。ただし、上記のクエリの実行には5秒以上かかります。
このクエリのパフォーマンスを向上させるためにできることがあるかどうかを知りたいのですが。パフォーマンスの観点から避けるべきクエリに何かありますか?または、アクセス制限のすぐ下にありますか?サブクエリで使用しても効果はないと思いLike
ますが、クエリの速度を低下させる何かが他にあるはずです。