
高分求解,为什么拼接的SQL语句比参数化的查询快
1个回答
展开全部
据库是SQL2000,记录行数700万行左右。mssql驱动包:sqljdbc4.jar
用拼接的SQL语句:
SELECT * FROM UserInfo WHERE userID = 'aaa' AND DATEDIFF(DAY, deadline, GETDATE()) <= 0;
比参数化的语句:
SELECT * FROM UserInfo WHERE userID = ? AND DATEDIFF(DAY, deadline, GETDATE()) <= 0;
要快很多,为什么?求大神们给个解释,谢谢!
理论上讲,SQLServer为了避免SQL语句二次编译,参数化查询比拼接的SQL要快。
用拼接的SQL语句:
SELECT * FROM UserInfo WHERE userID = 'aaa' AND DATEDIFF(DAY, deadline, GETDATE()) <= 0;
比参数化的语句:
SELECT * FROM UserInfo WHERE userID = ? AND DATEDIFF(DAY, deadline, GETDATE()) <= 0;
要快很多,为什么?求大神们给个解释,谢谢!
理论上讲,SQLServer为了避免SQL语句二次编译,参数化查询比拼接的SQL要快。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询