gpt4 book ai didi

sql-server - sql存储过程为什么叫存储过程

转载 作者:行者123 更新时间:2023-12-03 23:14:29 25 4
gpt4 key购买 nike

几天前我被问到这个问题(tel intvw),我被抽空了。我说执行计划存储在服务器中,所以它称为存储过程。但我不确定我是否正确。

我之后的研究表明,SQL Server 内部有专门用于存储执行计划的计划缓存或过程缓存。在 that article还有对所谓的编译计划 stub 的引用。所以看起来是先创建编译计划 stub ,然后创建执行计划。

所以我想知道的是简要的

  • 创建存储过程时会发生哪些步骤?
  • 为什么存储过程称为存储过程 (如果问题有意义)?

  • 如果您可以将我推荐给现有的 SO 问题或其他文章,那也应该没问题。

    最佳答案

    Why is a Stored Procedure called stored procedure



    因为它是 程序存储 在一个数据库中。

    在其他语言/环境中,通常不会存储可以执行的过程。它们以字节码或汇编程序编译。 IE。该程序不再以其原始文本形式存在。无法像在这些环境中创建时那样检索原始过程(尽管逆向工程可以检索该过程的本质)。

    当您在 SQL Server 中创建存储过程时,它完全以原始全文形式存储,相同的缩进、相同的大小写、相同的行,包括注释等等。您可以完整地检索用于创建存储过程的文本。

    Simplified explanation about executing a stored procedure



    当 SQL Server 想要执行一个存储过程时,它会首先检查缓存,看它是否已经被编译过。如果它在缓存中找到一个条目(以执行计划的形式),它将使用这个条目来执行。如果没有找到条目,它会将过程编译为执行计划,将其存储在缓存中以备后用,然后使用执行计划执行它。

    有些情况会强制重新编译存储过程,例如当执行计划缓存被清除(架构更改、统计更新等)或向编译器提供强制重新编译的命令时(存储过程 WITH RECOMPILE ,查询选项 OPTION(RECOMPILE) ,...)。

    关于sql-server - sql存储过程为什么叫存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35265691/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com