> Tech > Tip 5 : Utilisez SQL efficacement

Tip 5 : Utilisez SQL efficacement

Tech - Par Renaud ROSSET - Publié le 24 juin 2010
email

SQL est un langage de traitement d'ensemble, et pas un langage de traitement ligne à  ligne. T-SQL, dialecte du langage SQL de Microsoft, peut utiliser des curseurs du serveur pour accéder à  une ligne à  la fois ; mais la plupart des solutions qui utilisent les curseurs du serveur seront

plusieurs fois plus lentes que des solutions qui utilisent les instructions SELECT et les instructions UPDATE pour effectuer la tâche équivalente. Plus l’expérience de programmation en SQL est grande, et plus on utilise facilement et efficacement le langage SQL. En tirant parti des fonctions telles que des sous-requêtes, des tables dérivées et des expressions CASE pour manipuler des ensembles de lignes, on accélèrera les solutions tout en accroissant les performances de SQL Server.

Supposons, par exemple, qu’une table contienne une ligne pour chaque produit en stock et qu’une autre table contienne une ligne pour la quantité de chaque vente de ce produit. Il convient de dénormaliser la base de données et de stocker la somme des ventes de chaque produit dans la table de stock du produit. Pour générer ces sommes, on pourrait utiliser un curseur et avancer dans la table des produits ligne à  ligne. Pour chaque ligne, on pourrait ensuite trouver toutes les lignes correspondantes dans la table des ventes, additionner les quantités et utiliser cette somme pour mettre à  jour la table de stock du produit. Dans cet exemple, on peut bien sûr utiliser des curseurs du serveur pour collecter les chiffres des ventes totales, mais c’est terriblement inefficace.

On peut effectuer la même tâche en utilisant l’instruction UPDATE suivante et la sous-requête associée. Cette instruction utilise la table des titres dans la base de données publicitaire comme table de produits et, pour chaque titre, l’instruction ajoute les valeurs dans le champ qty (quantité) de la table des ventes.

UPDATE titles
SET ytd_sales =
(SELECT sum(qty) FROM sales
WHERE title_id = titles
.title_id)

Téléchargez cette ressource

Comment accélérer la transformation des environnements de travail ?

Comment accélérer la transformation des environnements de travail ?

Dans un monde professionnel en pleine mutation, la mobilité, l’efficacité énergétique, la sécurité et l’intelligence embarquée sont devenues des critères décisifs pour les équipements informatiques. Découvrez comment les nouveaux PC Microsoft Surface dotés des processeurs Snapdragon X Series s’imposent comme une réponse stratégique aux nouveaux enjeux IT.

Tech - Par Renaud ROSSET - Publié le 24 juin 2010

A lire aussi sur le site

Revue Smart DSI

La Revue du Décideur IT