我有EntityFramework
和LINQ to SQL
背景。
我正在考虑使用dapper来提升性能。
Dapper缓存有关它运行的每个查询的信息,这使它能够快速实现对象并快速处理参数。当前实现将此信息缓存在ConcurrentDictionary
对象中。它存储的对象永远不会被刷新。如果您在不使用参数的情况下动态生成SQL字符串,则可能会遇到内存问题。我们可能会将字典转换为LRU Cache
。
我是否必须参数化所有查询。 甚至是没有任何参数的查询。
实施例
Select Id,Boo FROM dbo.FOO
答案 0 :(得分:2)
您的查询没有任何变化,所以,不,您不需要对其进行参数化。
警告是告诉您,如果您写Select Id,Boo FROM dbo.FOO where Bar=3
,Select Id,Boo FROM dbo.FOO where Bar=4
和Select Id,Boo FROM dbo.FOO where Bar=5
,则会缓存3个查询。当您继续改变与Bar
匹配的内容时,将会制作更多副本。