Bonjour,
J'ai créé un projet adp sous Access 2003 et SQL Server 2005 que je voudrais utiliser avec Access 2007 (SP2).
Je veux garder le format adp car les autres formats ne me conviennent pas, seulement je rencontre un problème assez gênant sous 2007 uniquement, c'est que les requêtes "SET FMTONLY" générés automatiquement à l'éxécution sont trop lentes et font des timeout car contrairement à 2003 elles ne contiennent pas la fameuse clause "WHERE 1=2" qui permet de ne pas parcourir entièrement les tables. Ces requêtes sont issues d'états et de sous-états.
On créant une trace sous SQL Server Profiler je constate ceci:
Avec 2003 :
Avec 2007 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SET FMTONLY ON select "champ1","champ2","champ3" from (SELECT * FROM Vue1) AS DRVD_TBL WHERE 1=2 SET FMTONLY OFF
J'utilise des vues mais j'ai pu constaté le même phénomène sur des tables.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 SET FMTONLY ON select "champ1","champ2","champ3" from (SELECT * FROM Vue1) AS DRVD_TBL SET FMTONLY OFF
Ma question est donc il y a t'il un moyen de retrouver ou d'obtenir le même effet que le "WHERE 1=2" ?
Allonger la durée du timeout ne m'aiderait pas car la requête serait trop lente de toute façon, sans compter les problèmes de performance que ça induit.
J'ai déjà testé de recréer un projet adp sous 2007 et d'importer le projet, ainsi que de mettre la requête sous différentes formes (sql brut au lieu de la vue, select * from vue, select champs from vue, ...) mais rien n'y fait.
Toute aide sera la bien venue![]()
Partager