1 votes

L'utilisation d'instructions SQL en ligne plutôt que d'une conception DAL pose-t-elle un problème de performance ?

J'ai créé un site Web de type réseau social assez important et je n'ai utilisé que des instructions SQL en ligne pour accéder à la base de données (j'étais novice dans ce langage, alors reculez !).

Y a-t-il des problèmes de performance en procédant de cette façon plutôt que d'utiliser un énorme fichier XSD DataSet pour gérer toutes les requêtes ? Ou est-ce simplement une mauvaise conception ?

Gracias.

4voto

Frederik Gheysels Points 36354

Je pense que le problème/coût de la maintenance aura un impact beaucoup plus important que l'impact sur les performances (s'il y a un impact sur les performances).

4voto

muerte Points 1474

Lorsque vous rencontrerez de réels problèmes de performances de la base de données, il importera peu (du point de vue des performances) que vous utilisiez des procédures stockées ou des instructions SQL directes.

Dans cette situation, votre meilleure chance est d'éviter la DB en premier lieu. En d'autres termes, il serait préférable de planifier et d'architecturer un système de gestion de l'information de l'entreprise. bon mécanisme de mise en cache car cela fera toute la différence quand il s'agira de trafic sérieux.

Procédures stockées ou code en ligne... encore une fois, les performances (je ne parle pas de la maintenabilité, de la sécurité, ...) n'ont plus beaucoup d'importance.

2voto

Kristen Points 2583

S'il s'agit de SQL Server, le fait de modifier vos déclarations SQL en ligne pour qu'elles soient des appels paramétrés à sp_ExecuteSQL devrait permettre une amélioration très significative des performances - et serait probablement plus facile à remanier que de passer à, disons, des procédures stockées au lieu du code en ligne.

En fin de compte, les procédures stockées qui renvoient plusieurs jeux d'enregistrements (c'est-à-dire qui effectuent plusieurs parties du travail/de la logique, plutôt que de simplement remplacer des requêtes uniques en ligne) permettraient d'améliorer davantage les performances.

0voto

Keltex Points 17151

À proprement parler, les performances SQL seraient meilleures si vous utilisiez des instructions SQL en ligne plutôt qu'un ensemble de données XSD. Cela suppose que vous utilisiez au minimum des requêtes paramétrées (bien que SQL Server 2005 optimise même les requêtes non paramétrées).

L'affirmation selon laquelle le sql en ligne ne peut pas être optimisé par le moteur de base de données n'est pas vraie. Les procédures stockées sont optimisées de la même manière que le sql en ligne avec SQL Server.

Mais que cela ait un sens du point de vue de la conception est une toute autre histoire. Et si vous optimisez trop tôt, c'est une autre question.

0voto

Chris Lively Points 59564

Restez à l'écart des ensembles de données typées générées. Les performances ne sont pas très bonnes. Si vous avez besoin de ce type de fonctionnalité, regardez LINQ ; sinon, prenez simplement la bibliothèque Enterprise et allez-y directement.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X