【问题标题】:Performance and scalability benefits of prepared queries in web applications?Web 应用程序中准备好的查询的性能和可扩展性优势?
【发布时间】:2015-08-05 18:32:37
【问题描述】:

我正在将一个长期存在的 Web 应用程序(基于 .net 网络表单,带有一些经典的 ASP)从 SQL Server 2000 迁移到 SQL Server 2014

我应该重构我的查询以使用准备好的语句吗?在大多数情况下,Web 应用程序将准备然后执行每个查询。同一查询的下一个用户将准备,然后再次执行它。

使用准备好的 SQL 查询代替直接执行是否有任何性能优势或纵向扩展优势?它会帮助表服务器的查询计划器避免重复昂贵的操作吗?

是否有任何安全的方法可以将准备好的查询对象存储在 Web 服务器 (IIS) 中,以便下一个客户端可以重用它们?

我知道 Oracle 这样做有很大的优势;它可以重用准备好的语句的执行计划,其优势远远超过重新准备相同语句的成本。在 SQL Server 2014 上也是如此吗?

(我知道使用准备好的语句来克服 sql 注入漏洞;我不是在问这个问题。)

这里的问题专门针对 Microsoft 产品 SQL Server。

【问题讨论】:

标签: .net sql-server prepared-statement sql-server-2014 query-performance


【解决方案1】:

很多人在 cmets 中说过,但我将其发布为答案,因为它是对问题的回答:

SQL Server 缓存计划。如果缓存中有查询,它不会重新编译您的查询。准备语句没有任何好处,这已经由缓存完成了。

【讨论】:

    猜你喜欢
    • 2014-09-13
    • 2011-07-09
    • 2010-09-30
    • 2013-12-09
    • 2013-02-26
    • 2011-04-26
    • 2017-07-24
    • 2010-09-24
    • 2011-02-10
    相关资源
    最近更新 更多