我需要参数化基本查询吗

Posted

技术标签:

【中文标题】我需要参数化基本查询吗【英文标题】: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

【问题讨论】:

【参考方案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 匹配的内容,将会制作更多副本。

【讨论】:

以上是关于我需要参数化基本查询吗的主要内容,如果未能解决你的问题,请参考以下文章

sqlsugar可以参数化查询吗

如何安全地为 bigquery 节点插入转义用户输入?可以在 bigquery.insert 节点库上使用参数化查询吗?

通过添加分隔符参数化查询

可以将 CNAME 指向带有查询参数的参数化 URL 吗?

参数化查询.....需要未提供的参数“@units”

HQL,我可以参数化 FROM 子句吗?