内联参数化查询超时
本文关键字:查询 超时 参数 | 更新日期: 2023-09-27 18:31:53
我有一个最近开始超时的内联参数化查询。
Dim dal As New DalMain()
Dim sbSql As New StringBuilder()
sbSql.Append(" select column1, column2 ")
sbSql.Append(" from table ")
sbSql.Append(" where column3 = @Value ")
dal.AddSqlParms("@Value", DalMain.SqlParmType.STR, "100")
其中 DalMain 是数据访问类,DalMain.SqlParmType.STR 是 DbType.String 类型。该查询在过去 5 年中运行良好,现在我在运行它时超时了。
相同的查询在 sql 管理工作室中运行良好。如果我按如下方式对值进行硬编码,那么它运行良好,没有超时。
sbSql.Append(" select column1, column2 ")
sbSql.Append(" from table ")
sbSql.Append(" where column3 = '100' ")
问题仅发生在该特定表上,其余参数化查询工作正常。任何帮助将不胜感激。
数据库上的数据类型是 nchar/nvarchar 吗?如果数据库上的数据类型是 varchar,并且提供的参数声明为 nvarchar(反之亦然),则 SQL 服务器通常不使用索引。检查 sql 事件探查器中生成的内容以确保。