在更新/创建期间创建/更改存储过程超时

问题描述:

创建或更改SQL Server(2008+)存储过程时,是否“运行”存储过程的内容或仅检查语法错误?我一直觉得它只是检查语法。在更新/创建期间创建/更改存储过程超时

我有一个相当简单的存储过程,它调用几个子过程,其中一个连接到链接服务器(mysql数据库)以从中取回信息。进行任何例行更新将导致整个过程运行,并且在更改之前经常超时。我可以确认它正在运行部分代码,因为它从mysql表中“拉”出数据。

我一直在寻找,看看它是SSMS选项还是仅仅是因为我使用的是链接服务器。

任何想法或建议,将不胜感激。

+0

检查你的连接,将它连接起来的唯一的东西...打开一个新的查询窗口,把一些选择语句,并检查..第二件事postbthe错误在这里 – 2014-10-16 18:51:52

+0

我不关心查询的内容或性能,但是,如果默认情况下,SQL Server将执行存储过程作为CREATE/ALTER的一部分。如果是这样,这可以禁用? – user2162331 2014-10-16 18:56:36

+0

据我所知,我从来没有一个CREATE/ALTER执行存储过程。你确定你没有改变任何表吗? – Paparazzi 2014-10-16 19:42:40

默认情况下,查询被发送到解析器。

“解析查询

当你传递一个T-SQL查询的SQL Server系统,首先它去是关系引擎。[1]

由于T-SQL到达,它通过一个过程来检查T-SQL是否正确写入,它是否正确形成,这个过程称为查询解析。解析器过程的输出是一个解析树或查询树(或者甚至是序列树)。分析树表示执行已请求查询所需的逻辑步骤。“

https://www.simple-talk.com/sql/performance/execution-plan-basics/

通过查询解析过程步骤。这就是你在“运行”sql时混淆的一步。

+0

因此,解析确实是“执行/运行”存储过程中的SQL代码,是否正确? – user2162331 2014-10-16 22:40:24