Nous souhaitons migrer une application d'access vers sqlserver. Mais nous
souhaitons que la nouvelle application soit compatible avec sqlserver et
aussi avec access
Nous venons de constater que la méthode seek n'était pas supportée par
sqlserver. La seule solution est de transformer les seek en 'select ..
Where .'.
Lorsque l'on utilise la méthode seek avec access, on spécifie les index. Par
conséquent, on les déclare dans access. Si on transforme les seek en
'select . where . ', est-il nécessaire de déclarer les index que l'on met
dans la clause where pour faire des gains en performance ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Michel Walsh
Salut,
Non. Je veux dire en cela qu'il est bien d'avoir des index sur les champs impliqués, mais selon les statistiques, l'engin de base de données choisira de charger, ou non, les index. En effet, travailler avec un index est plus rapide que sans index, mais charger l'index n'est pas "gratuit". C'est en cela que SQL diffère du code traditionnel, où on écrit une façon de faire. Avec SQL, on décrit ce qu'on désire et l'engin de bd décide de la procédure d'exécution à adopter, sur le coup. C'est "le plan d'exécution" qui peut varier selon les conditions au moment de la compilation (c'est pourquoi il est potentiellement néfaste de précompiler les requêtes sur une bd vide, cela fausse les stats). Certains, dont votre humble serviteur, préconniseront de compiler avant chaque exécution... d'autres, au contraire, prétendront qu'il est préférable d'utiliser un plan précompilé... En fait, si on le peut, TESTER, comme disait Galilé avec ses cailloux, et soyez juges de la meilleure procédure à suivre, dans VOTRE situation... et si c'est négligeable, négligez!
Espérant être utile, Vanderghast, Access MVP
"Pierre-Yves" wrote in message news:%
Bonjour,
Nous souhaitons migrer une application d'access vers sqlserver. Mais nous souhaitons que la nouvelle application soit compatible avec sqlserver et aussi avec access
Nous venons de constater que la méthode seek n'était pas supportée par sqlserver. La seule solution est de transformer les seek en 'select .. Where .'.
Lorsque l'on utilise la méthode seek avec access, on spécifie les index. Par
conséquent, on les déclare dans access. Si on transforme les seek en 'select . where . ', est-il nécessaire de déclarer les index que l'on met dans la clause where pour faire des gains en performance ?
Merci d'avance
Salut,
Non. Je veux dire en cela qu'il est bien d'avoir des index sur les
champs impliqués, mais selon les statistiques, l'engin de base de données
choisira de charger, ou non, les index. En effet, travailler avec un index
est plus rapide que sans index, mais charger l'index n'est pas "gratuit".
C'est en cela que SQL diffère du code traditionnel, où on écrit une façon de
faire. Avec SQL, on décrit ce qu'on désire et l'engin de bd décide de la
procédure d'exécution à adopter, sur le coup. C'est "le plan d'exécution"
qui peut varier selon les conditions au moment de la compilation (c'est
pourquoi il est potentiellement néfaste de précompiler les requêtes sur une
bd vide, cela fausse les stats). Certains, dont votre humble serviteur,
préconniseront de compiler avant chaque exécution... d'autres, au contraire,
prétendront qu'il est préférable d'utiliser un plan précompilé... En fait,
si on le peut, TESTER, comme disait Galilé avec ses cailloux, et soyez juges
de la meilleure procédure à suivre, dans VOTRE situation... et si c'est
négligeable, négligez!
Espérant être utile,
Vanderghast, Access MVP
"Pierre-Yves" <py_leteste@hotmail.com> wrote in message
news:%23K2f4VwGEHA.3472@TK2MSFTNGP11.phx.gbl...
Bonjour,
Nous souhaitons migrer une application d'access vers sqlserver. Mais nous
souhaitons que la nouvelle application soit compatible avec sqlserver et
aussi avec access
Nous venons de constater que la méthode seek n'était pas supportée par
sqlserver. La seule solution est de transformer les seek en 'select ..
Where .'.
Lorsque l'on utilise la méthode seek avec access, on spécifie les index.
Par
conséquent, on les déclare dans access. Si on transforme les seek en
'select . where . ', est-il nécessaire de déclarer les index que l'on met
dans la clause where pour faire des gains en performance ?
Non. Je veux dire en cela qu'il est bien d'avoir des index sur les champs impliqués, mais selon les statistiques, l'engin de base de données choisira de charger, ou non, les index. En effet, travailler avec un index est plus rapide que sans index, mais charger l'index n'est pas "gratuit". C'est en cela que SQL diffère du code traditionnel, où on écrit une façon de faire. Avec SQL, on décrit ce qu'on désire et l'engin de bd décide de la procédure d'exécution à adopter, sur le coup. C'est "le plan d'exécution" qui peut varier selon les conditions au moment de la compilation (c'est pourquoi il est potentiellement néfaste de précompiler les requêtes sur une bd vide, cela fausse les stats). Certains, dont votre humble serviteur, préconniseront de compiler avant chaque exécution... d'autres, au contraire, prétendront qu'il est préférable d'utiliser un plan précompilé... En fait, si on le peut, TESTER, comme disait Galilé avec ses cailloux, et soyez juges de la meilleure procédure à suivre, dans VOTRE situation... et si c'est négligeable, négligez!
Espérant être utile, Vanderghast, Access MVP
"Pierre-Yves" wrote in message news:%
Bonjour,
Nous souhaitons migrer une application d'access vers sqlserver. Mais nous souhaitons que la nouvelle application soit compatible avec sqlserver et aussi avec access
Nous venons de constater que la méthode seek n'était pas supportée par sqlserver. La seule solution est de transformer les seek en 'select .. Where .'.
Lorsque l'on utilise la méthode seek avec access, on spécifie les index. Par
conséquent, on les déclare dans access. Si on transforme les seek en 'select . where . ', est-il nécessaire de déclarer les index que l'on met dans la clause where pour faire des gains en performance ?