当前位置:知识百科 > 正文

sqlserver编译

更新时间:2026-04-18 03:05 阅读量:60

sqlserver里调试存储编译后重新调试必须重启managementstudio才能生效吗

sqlserver

摘自:

【IT专家网独家】SQL Server用户自定义函数和存储过程有类似的功能,都可以创建捆绑SQL语句,存储在server中供以后使用.这样能够极大地提高工作效率,通过以下的各种做法可以减少编程所需的时间:

重复使用编程代码,减少编程开发时间.

隐藏SQL细节,把SQL繁琐的工作留给数据库开发人员,而程序开发员则集中处理高级编程语言.

维修集中化,可以在一个地方做业务上的逻辑修改,然后让这些修改自动应用到所有相关程序中.

乍看之下,用户自定义函数和存储过程的功能似乎一摸一样.但是,其实这两者之间还有一些虽然细微但是很重要的差异:

存储过程是使用EXEC命令独立调用的,而用户自定义函数是在另一个SQL语句中调用的.

l存储程序是允许用户和程序去使用存储过程,而不是允许其存取表格,这样能够增强程序安全性.与标准的SQL Server相比,存储程序限制用户行动权限方面更为细化.例如,如果你有一个货存表格,每次卖出一个货物收银员都要对表格进行更新一次(从货存中把该货品减去一件).你可以给收银员设置权限,允许其使用decrement_item存储过程,而不是允许他们有任意修改或村表格的权限.

函数必须始终返回一个值(一个标量值或一个表格).而存储过程可以返回一个标量值、一个表值或无需返回值.

都说到这里了大家应该明白,存储程序对SQL Server开发员来说是最有价值的宝物之一,用于数据库中,能够大大的提高工作效率,增强安全性,绝对超值.

关于sqlserver存储过程的编译的问题

只编译一次.

在发布存储过程时就编译一次,页面上只要调用就可以,两次打开就是调用两次存储过程

SQLSERVER 什么时候重新编译执行计划

根据数据库新状态的不同,数据库中的某些更改可能导致执行计划效率降低或无效.SQL Server 将检测到使执行计划无效的更改,并将计划标记为无效.此后,必须为执行查询的下一个连接重新编译新的计划.导致计划无效的情况包括:

对查询所引用的表或视图进行更改(ALTER TABLE 和 ALTER VIEW).

对执行计划所使用的任何索引进行更改.

对执行计划所使用的统计信息进行更新,这些更新可能是从语句(如 UPDATE STATISTICS)中显式生成,也可能是自动生成的.

删除执行计划所使用的索引.

显式调用 sp_recompile.

对键的大量更改(其他用户对由查询引用的表使用 INSERT 或 DELETE 语句所产生的修改).

对于带触发器的表,插入的或删除的表内的行数显著增长.

使用 WITH RECOMPILE 选项执行存储过程.

为了使语句正确,或要获得可能更快的查询执行计划,大多数都需要进行重新编译.

语句级重新编译有助于提高性能,因为在大多数情况下,只有少数语句导致了重新编译并造成相关损失(指 CPU 时间和锁).所以呢,避免了批处理中其他不必重新编译的语句的这些损失.

跟踪事件 SQL:StmtRecompile 报告语句级重新编译.此跟踪事件可用于跟踪和调试重新编译.SP:Recompile 仅针对存储过程和触发器生成,而SQL:StmtRecompile 则针对存储过程、触发器、即席批查询、使用 sp_executesql 执行的批处理、已准备的查询和动态 SQL 生成.

SP:Recompile 和 SQL:StmtRecompile 的 EventSubClass 列都包含一个整数代码,用以指明重新编译的原因.

什么叫重编译

例如:SQLSERVER编译与重编译这种行为叫"重用(reuse)或者叫重用执行计划".但是有时候,哪怕是一模一样的语句,SQL下次执行还是要再做一次编译. 这种行为叫"重编译(recompile)".

以上就是日讯小常识小编为大家整理的sqlserver编译相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!