Products     Magento Extension     PCI-Shopping-Carts     Templates       CRELoaded     WordPress Modules     osCommerce Modules       osCommerce Addons       osCommerce Features       osCommerce Management       Payment Modules     CRELoaded Modules       CRE Loaded Addons       CRE Loaded Features       CRE Loaded Management       Payment Modules       CRELoaded Services
Free Stuff
Customization
Templates
Compare Products
You have no items to compare.
Affiliate Info
Affiliate Program FAQ
Affiliate Log In
Recent Orders
Hot Keywords: Order Notification, Order Search, Coupon, Flash Board, Compare, Floating Message, Tracking, Moneris, RSS, Visitor Filter

  Optimisation de tep_get_parent_categories

The following osCommerce contribution is a free Opensource code originated from official osCommerce website and provided for your reference only, you may download the original contribution file(s) and install it on your own; or you may request a Paid Installation Service from Agents Of Power; Agents Of Power does the "AS IS" installation on your website, we do not guarantee it will work properly on your website. Extra Paid service is available for repairing the problem from the original contribution or from your website.
La méthode utilisée pour la première version de la contribution permet de réduire notablement le nombre de requêtes(et donc le temps d'execution du script) sur toutes les pages appelant la fonction tep_get_parent_categories(a peu près toutes en fait). Mais en étudiant les requêtes effectués sur des pages comme categories.php, on s'appercoit que la requête que nous avons supprimé via la contribution réaparait. Effectivement, cette même requête est utilisée dans une autre fonction du catalogue: tep_get_path (toujours dans la page includes/functions/general.php)

Instruction de la v1.1 a la suite des instructions de la v1.0.

Il est nécessaire de télécharger la première version pour installer celle-ci (les classes n'ayant pas changés, il est inutile de les renvoyés)

-------------------------------------------------

The method used for the first version allow you to reduce consequently the query number (and so, the exec time of the script) on aproximately all pages of the catalog. If you pay attention of the queries on some others pages like categories.php, you will see one more time the query you delete with this contribution. Effectively, the function (catalog/includes/functions/)tep_get_path use it to.

Instructions of the v1.1 after the v1.0 ones.

You have to download the first version for classes. Classes didn't change, it was not usefull to upload it a second time.
Cette "contribution" est une proposition d'optimisation de la fonction tep_get_parent_categories (récupère les ancètres de la catégorie) qui pratique de façon récursive des requêtes en base de données.

Les requêtes qu'effectue cette fonction ne sont pas lourde a l'unité mais plus il y a de catégories et plus la fonction mangera du temps.

La proposition que je vous fait est donc de réduire ce temps en n'effectuant qu'une seule requête et de stocker les résultats dans un système arborescent et indexé.

Bien entendu, j'ai réduit au minimum les éléments chargés (puisque l'objectif etait cette fonction) mais il est très aisé de pousser la méthode plus loin (il y a juste a modifier la requête présente dans categories.class.php ainsi que rajouter les fonctions et les attributs de class correspondants) et d'utiliser les class proposées pour n'appliquer qu'une et une seule requête sur l'ensemble des catégories (pour les informations les concernant a savoir les images, les noms etc), mais ce n'est pas (encore) le sujet ici.

Pour donner une idée du bénéfice, la base de test sur laquelle j'ai appliqué la chose contient assez peu de catégories(22 sur 2 niveaux) et j'ai gagné 1/10 de seconde sur le temps d'execution de la page (ici, la page d'index), passant ainsi de 0.543s a 0.449s d'execution moyen (moyenne effectuée sur la même machine, sur le même serveur et sur un total de 30 tests par état)

------------------------------------------------

This "contribution" is an optimisation of the tep_get_parent_categories function (Get ancestor of categories) whitch load recursively some imformation in database.

Queries are not verry important one by one but this function call so much time the query that it should slow your application.

My purpose is to reduce the time used by this function in querying only one time the database and in collect the informations in an indexed array.

Evidently, i did the minimum because the objective was the function, but you can increase the performance in loading some others imformations like image, name etc... for some others places.

I test the modification on a small site whithe only 22 on 2 levels and i improve performances by 1/10s (On the index), improve from 0.543s to 0.449s (moyenne effectuée sur la même machine, sur le même serveur et sur un total de 30 tests par état)
   Posted on: 10/08/2009     See contribution details Request Installation with Paid service