找回密码
 注册账号

QQ登录

只需一步,快速开始

手机号码,快捷登录

手机号码,快捷登录

初学者课程:T3自学|T6自学|U8自学软件下载课件下载工具下载资料:通资料|U8资料|NC|培训|年结积分规则 | 使用常见问题Q&A
知识库:U8 | | NC | U9 | OA | 政务U8|U9|NCC|NC65|NC65客开|NCC客开新手必读 | 任务 | 快速增金币用友QQ群[微信群]
查看: 2333|回复: 0

[数据库知识] sql存储过程的后继处理

[复制链接]
发表于 2009-2-15 20:19:21 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册账号

×
存储过程的后继处理比初始化处理要快,因为SQL Server使用缓存中的执
行规划。
如果以下条件成立,SQL Server使用内存中的计划来执行后继的查询:
当前环境与计划编译时的环境相同。服务器、数据库和连接的设置决
定了环境。
存储过程所提到的对象不需要名字解析。在对象被具有同一名字的不
同用户拥有时,对象需要进行名字解析。例如,如果sales角色拥有
Products表,而development角色拥有Products表,在Products
表被引用时,SQL Server必须决定所操作的表。SQL Server执行规划中有两个主要的组件:
Excution Plan——大多数的执行规划使用的是多数用户可以使用的
只读数据结构。
Excution Context——每一个用户当前执行的查询具有这种可再度
使用的数据结构,该数据结构保持数据指向其执行,例如参数值。如
果用户执行了一个查询,没有使用任一数据结构,这将为新用户重新
初始化Excution Context。
在大多数情况下,对于每一个唯一的存储过程和环境的组合总是只有一个编
译计划。而对不同环境的同一存储过程来说,在缓存中有多个计划。
以下因素导致了影响编译选择的不同环境:
并行还是串行编译计划。
对象的不明确所有权。
不同的SET选项。
开发者必须为自己的应用程序选择并使用一种环境,具有不明确所有权的对
象必须通过指定对象的所有者来进行明确。SET选项应该是一致的,它们应该在
连接的开始处设置并且不能改变。
在执行规划产生之后,仍然在处理缓存中。在需要空间时,SQL Server将
旧的和不使用的计划移出缓存。
您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

QQ|站长微信|Archiver|手机版|小黑屋|用友之家 ( 蜀ICP备07505338号|51072502110008 )

GMT+8, 2024-11-25 04:03 , Processed in 0.033843 second(s), 7 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表