Connection PHP – Ms Sql Server latente

Il se peut que vous ayez besoin d’utiliser une base de données Ms Sql Server avec une application PHP (basée sur un serveur Apache ou IIS).

J’ai noté une trés forte latence de la connection (seulement 10 Ko/s en intranet !) lors des accés à ma base de données. Il faut savoir que la connection s’effectue via TCP et subit une autentification forte au niveau de Windows. Par exemple : Une imbrication de deux boucles FOR contenant 2 requêtes et renvoyant 200-300 tuples faisait de ma page, l’ennemi numéro 1 des connections ADSL et même Ethernet puisque cette simple page prenait environ 1 à 2 minutes à s’afficher.

C’est alors que j’ai pu découvrir les liens persistants.
Dans votre fichier php.ini, vous trouverez la variable mssql.allow_persistent qu’il suffit de passer à On.
Dés lors, modifiez votre code de fàçon à ce que php utilise mssql_pconnect() au lieu de mssql_connect() et surtout ne fermez jamais votre connection aprés avoir retourné vos résultats (PHP se charge de la gestion des connections).

Vous pouvez utiliser la fonction mssql_free_result() qui permet de libérer les ressources d’un résultat lorsque celui-ci prend une quantité de mémoire importante.

  • Manuel complet PHP (voir Chapitre 41) ici
  • Page du manuel PHP en rapport avec le sujet ici

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.