【问题标题】:Do I need to parameterize basic queries我需要参数化基本查询吗
【发布时间】:2017-07-20 07:01:40
【问题描述】:

我有EntityFrameworkLINQ to SQL 背景。

我正在考虑使用 dapper 来提高性能。

Dapper 缓存有关其运行的每个查询的信息,这使其能够快速实现对象并快速处理参数。当前实现将此信息缓存在ConcurrentDictionary 对象中。它存储的对象永远不会被刷新。如果您在不使用参数的情况下即时生成 SQL 字符串,您可能会遇到内存问题。我们可以将字典转换为LRU Cache

我是否必须参数化所有查询。 即使是没有任何参数的查询。

例子

Select Id,Boo FROM dbo.FOO

【问题讨论】:

    标签: c# dapper


    【解决方案1】:

    您的查询没有任何变化,所以,不,您不需要参数化它。

    警告告诉你,如果你写Select Id,Boo FROM dbo.FOO where Bar=3Select Id,Boo FROM dbo.FOO where Bar=4Select Id,Boo FROM dbo.FOO where Bar=5,那么3个查询将被缓存。随着您不断改变与Bar 匹配的内容,将会制作更多副本。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多