首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在使用SQL Server2005/2008的最新jdbc驱动程序时,准备好的语句、视图和存储过程在性能方面有何比较?

在使用SQL Server2005/2008的最新jdbc驱动程序时,准备好的语句、视图和存储过程在性能方面有何比较?
EN

Stack Overflow用户
提问于 2008-12-30 17:13:06
回答 3查看 889关注 0票数 1

在使用SQL Server 2005/2008的最新Microsoft jdbc驱动程序时,准备好的语句、视图和存储过程在性能方面有何比较?

如果我有一个带有一些动态where子句的普通老式select语句,我会看到从准备语句中的直接SQL转移到视图甚至存储过程中的好处吗?

更具体地说,像这样的内容如何:

代码语言:javascript
运行
复制
select foo.name, bar.name, baz.name, belch.burp
from foo 
inner join bar on foo.id=bar.fooID
inner join baz on bar.id=baz.barID
inner join belch on baz.id = belch.bazID
where foo.name like '%<USERINPUT>%' and bar.name like '%<USERINPUT>%'
EN

Stack Overflow用户

发布于 2008-12-30 18:40:30

由于up的缓存执行计划,您不太可能看到显著的性能差异,因为执行计划也缓存在SQL Server 2005甚至更高版本的即席SQL中。

在参数嗅探可能会由于某些参数值的基数估计错误而对性能产生负面影响的情况下,可以使用WITH RECOMPILE指示器。

视图和存储过程的好处将体现在安全性和维护方面,其中的好处可能太多,无法在此详细介绍,但包括以下功能:

限制从SELECT语句读取受保护的数据,而不必在基础表上分配单独的列权限。

从其他SQL代码和应用程序中的多个位置重用参数化SP。

将应用程序SP作为系统的命名数据库接口组件进行检测、日志记录、性能分析和调整,而不会影响或重新部署应用程序代码。

重构数据库,而不影响或重新部署应用程序代码。

提供与数据库的抽象层和接口契约,该抽象层和接口契约提供对系统所需和提供的数据库服务的良好可见性,这可能包括自动生成关于接口的元数据的可能性,可以具有自动测试的单独层,并且还可以用作后端可移植性的分界点。

票数 2
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/400881

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档