OrmLite中的POCO更新将执行SQL,如下例所示:
(@P1 varchar(1043),@P2 varchar(6))
UPDATE table
SET FILEDATA=@P1
WHERE FILEID=@P2
但是它会导致基于具有不同参数长度的不同@P1
和@P2
值的多个查询计划。
那么,在Ormlite中为参数化查询指定数据类型/长度的最佳方法是什么,以使查询计划得到适当的缓存,并避免由于可变的参数长度而导致多个查询计划?
在这种情况下,具有可变长度的字符串:https://dba.stackexchange.com/questions/216330/parameterized-query-creating-many-plans
答案 0 :(得分:1)
现在从this commit指定字符串参数的大小,该参数采用已配置的StringConverter
的默认字符串大小。此更改可从v5.5.1(现在为available on MyGet)开始。
如果需要,可以用replacing the String Converter和InitDbParam()
覆盖其行为。