存储过程把表名,条件作为参数传递对性能有什么影响?
都说存储过程比sql语句可以获得更好的性能,那么,我把表名,条件,set子句都作为参数传递,这种性能优势还存在吗?...
都说存储过程比sql语句可以获得更好的性能,那么,我把表名,条件,set子句都作为参数传递,这种性能优势还存在吗?
展开
展开全部
存储过程之所以比单独的语句快,是因为存储过程是预编译好的,运行时无需重新编译,这样省去了编译时间
但是呢,影响语句查询效率的因素有很多,也不单单这一项,比如查询计划是否能重用等等
不要拘泥于单一的因素,要综合考虑
但是呢,影响语句查询效率的因素有很多,也不单单这一项,比如查询计划是否能重用等等
不要拘泥于单一的因素,要综合考虑
追问
如果我通过传表名去调用,而不是创建许多不用传表名的存储过程,这两个孰上孰下?
追答
sqlserver中表名不能被当做变量使用,若要如此使用,必须用字符拼接的方式
而字符拼接的方式对重用查询计划支持性不好
单独的查询语句被称做即席语句,这样与拼接的存储过程效果差不多
存储过程一般处理比较复杂的业务,实现简单语句不容易实现的功能
单就预编译这个优势一般小项目也体现不出来
光点科技
2023-08-15 广告
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件...
点击进入详情页
本回答由光点科技提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询