在更新/创建期间创建/更改存储过程超时
创建或更改SQL Server(2008+)存储过程时,是否“运行”存储过程的内容或仅检查语法错误?我一直觉得它只是检查语法。在更新/创建期间创建/更改存储过程超时
我有一个相当简单的存储过程,它调用几个子过程,其中一个连接到链接服务器(mysql数据库)以从中取回信息。进行任何例行更新将导致整个过程运行,并且在更改之前经常超时。我可以确认它正在运行部分代码,因为它从mysql表中“拉”出数据。
我一直在寻找,看看它是SSMS选项还是仅仅是因为我使用的是链接服务器。
任何想法或建议,将不胜感激。
默认情况下,查询被发送到解析器。
“解析查询
当你传递一个T-SQL查询的SQL Server系统,首先它去是关系引擎。[1]
由于T-SQL到达,它通过一个过程来检查T-SQL是否正确写入,它是否正确形成,这个过程称为查询解析。解析器过程的输出是一个解析树或查询树(或者甚至是序列树)。分析树表示执行已请求查询所需的逻辑步骤。“
https://www.simple-talk.com/sql/performance/execution-plan-basics/
通过查询解析过程步骤。这就是你在“运行”sql时混淆的一步。
因此,解析确实是“执行/运行”存储过程中的SQL代码,是否正确? – user2162331 2014-10-16 22:40:24
检查你的连接,将它连接起来的唯一的东西...打开一个新的查询窗口,把一些选择语句,并检查..第二件事postbthe错误在这里 – 2014-10-16 18:51:52
我不关心查询的内容或性能,但是,如果默认情况下,SQL Server将执行存储过程作为CREATE/ALTER的一部分。如果是这样,这可以禁用? – user2162331 2014-10-16 18:56:36
据我所知,我从来没有一个CREATE/ALTER执行存储过程。你确定你没有改变任何表吗? – Paparazzi 2014-10-16 19:42:40