创建或更改SQL Server(2008+)存储过程时,是否“运行”存储过程的内容或只是检查语法错误?我一直认为它只会检查语法。
我有一个相当简单的存储过程,它调用几个子过程,其中一个连接到链接服务器(mysql数据库)以从中提取信息。进行任何例行更新将导致整个过程运行,并且在更改之前经常超时。我可以确认它正在运行部分代码,因为它从mysql表中“拉”了数据。
我一直在寻找它是否是SSMS选项,或者是因为我使用的是链接服务器。
任何想法或建议都将不胜感激。
答案 0 :(得分:0)
默认情况下,查询将发送给解析器。
“查询解析”
当您将T-SQL查询传递给SQL Server系统时,首先它是关系引擎。 [1]
当T-SQL到达时,它会通过一个进程来检查T-SQL是否正确写入,结果是否正确。此过程称为查询解析。解析器进程的输出是解析树或查询树(甚至是序列树)。解析树表示执行已请求的查询所需的逻辑步骤。“
https://www.simple-talk.com/sql/performance/execution-plan-basics/
解析过程逐步完成查询。这是您在“运行”sql时感到困惑的一步。