2017-07-20 2 views
2

J'ai les références EntityFramework et LINQ to SQL.Ai-je besoin de paramétrer les requêtes de base?

Je pense à utiliser dapper pour des gains de performance. Dapper met en cache des informations sur chaque requête qu'il exécute, ce qui lui permet de matérialiser rapidement les objets et de traiter les paramètres rapidement. L'implémentation en cours met ces informations en cache dans un objet ConcurrentDictionary. Les objets qu'il stocke ne sont jamais vidés. Si vous générez des chaînes SQL à la volée sans utiliser de paramètres, il est possible que vous rencontriez des problèmes de mémoire. Nous pouvons convertir les dictionnaires en LRU Cache.

Dois-je paramétrer toutes les requêtes. Même les requêtes qui n'ont pas de paramètres.

Exemple

Select Id,Boo FROM dbo.FOO 

Répondre

2

Il n'y a rien à modifier dans votre requête si, non, vous ne avez pas besoin de paramétrer.

L'avertissement est là pour vous dire que si vous écrivez Select Id,Boo FROM dbo.FOO where Bar=3, Select Id,Boo FROM dbo.FOO where Bar=4 et Select Id,Boo FROM dbo.FOO where Bar=5 alors 3 requêtes seront mises en cache. Et comme vous continuez à varier ce que vous comparez à Bar, encore plus de copies seront faites.