Dapper, liste de paramètres, problèmes de mémoire possibles

dapper parameters

Question

J'utilise Dapper et Solr. Après avoir obtenu des identifiants de Solr, je me pose la question comme ça:

var dbResults = await dbConnection.QueryAsync<Product>(@"SELECT  p.[ProductId] as Id]
                                                                        ,p.[Product] as [Name]
                                                                        ,p.[Price]
                                                                        ,p.[SeoLink]                                                                            
                                                                        ,p.[CategoryId]                                   
                                                            FROM [dbo].[Products] p with(nolock)                                                                
                                                            WHERE p.[ProductId] in @productsIds", new {productsIds = toGet}, commandTimeout: 2);

Le nombre d'identifiants passe de 1 à 200. Aurai-je des problèmes de mémoire car chaque requête sera mise en cache séparément? Des idées comment puis-je l'optimiser? (J'utilise le site Web azure avec sql azure et je reçois de temps en temps 500 erreurs de serveur internes sans aucune raison, rien dans les journaux.)

Réponse acceptée

Eh bien, du côté de .NET, nous ne mettons en cache qu'une seule fois par paire text / connection-string, où "text" est la requête TSQL fixe avant tout vaudou. L' IL généré pour ce scénario inclut un appel à PackListParameters (qui se trouve après toutes les étapes du cache, juste avant exec), ce qui ajoute les paramètres multiples et modifie la norme TSQL.




Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi