Vous consultez une page technique concernant le logiciel de gestion Mercator. Celle-ci contient des informations spécifiques destinées aux professionnels de Mercator. Souhaitez-vous être redirigés vers des informations plus générales ?


   Ne plus poser cette question

Modification dans les requêtes de parcours et de recherches dans les signalétiques

0000002458     -      03/09/2015

Dans Mercator, la recherche ou le parcours des fiches dans les signalétiques est un processus complexe, optimisé pour être idéal dans le cadre d’un développement « client-server ». Cette fonctionnalité contient notamment une pagination (voir les enregistrements par blocs de 100 par exemple).
 
 
Jusque SQL Server 2008R2, cette pagination reposait sur la fonction SQL ROW_NUMBER(). Avec la version SQL Server 2012, il est désormais possible d’effectuer cette pagination beaucoup plus simplement avec les nouvelles fonctionnalités SQL : OFFSET n ROWS / FETCH NEXT n ROWS ONLY. Nous avons observé que le schéma d’exécution d’une requête utilisant ces nouvelles fonctionnalités est nettement plus simple.
 
Dans un souci de recherche permanente de performances toujours plus optimales, le code-source de Mercator détecte la version du serveur SQL utilisé et adapte automatiquement la syntaxe :
  • jusque 2008R2, utilisation de ROW_NUMBER et d’une #table temporaire
  • à partir de 2012 : utilisation de OFFSET n ROWS / FETCH NEXT n ROWS ONLY
 
Qu’est-ce que cela change pour l’utilisateur final ? Rien, si ce n’est un gain de vitesse, particulièrement observable dans les configurations SQL Azure.
 
Qu’est-ce que cela change pour vous ? Si vous avez placé un customizer StringUpdate sur cette requête, il est probablement nécessaire de le revoir.
 
Vous utilisez SQL Server 2012 ou ultérieur et c’est toujours l’ancienne requête qui passe dans le Profiler SQL : vérifiez dans les options de votre base de données SQL si le niveau de compatibilité n’est pas fixé à une version antérieure.