找回密码
 注册账号

QQ登录

只需一步,快速开始

手机号码,快捷登录

手机号码,快捷登录

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

[数据库知识] sql存储过程的初始化处理

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

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

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

×
处理存储过程包括首次创建并执行它,处理将其执行的规划放在缓存中。过
程缓存是一个内存池,包含了当前要执行的所有Transact-SQL的执行规划。过
程缓存的大小根据活动级别自动变化,它位于SQL主要的记忆单元——内存池中,
包含了在SQL Server中使用内存的大多数数据结构。
1、创建
在存储过程被创建时,其中的语句为语法的精确的目的被解析。在当前数据
库中,SQL Server在syscomments系统表中存放存储过程的名字,在syscomments
系统表中存储放储过程的文本。如果遇到语法错误将返回错误信息,并且该存储
过程也不会创建。
2、被延迟的名字解析
被延迟的名字解析允许存储过程引用在创建存储过程时不存在的对象。该处
理具有灵活性,因为它参照的存储过程和对象没必要以特定的顺序创建。但是在
存储过程被执行时,参照的对象就必须存在。在执行存储过程时,执行被延迟的
名字解析。
3、执行(第一次或重编译)
存储过程第一次执行或存储过程必须被重新编译时,在称为解析的处理过程
中查询处理器读取存储过程。
某些在数据库中产生的变化会导致执行规划无效或不再有用。在以下情况,CSE 2000系列—SQL 2000编程
SQL Server将删除这些变化并重新编译执行规划:
在表中或查询参照的视图中(ALTER TABLE和ALTER VIEW)产生了任何结
构变化。
新的分布统计产生,要么明确地来自语句,例如UPDATE STATISTICS,要
么自动产生。
执行规划使用的索引被删除。
大量的变化发生在查询所参照的表的关键字中(INSERT语句或DELETE语
句)。
4、优化
在存储过程成功地通过了解析阶段后,SQL Server查询优化器分析在存储
过程中的Transact-SQL,并且创建一个包含访问数据最快的方法。为了完成优化,
查询优化器要考虑以下因素:
表中的数据量。
表索引的存在和特征及在索引列上的数据分布情况。
在WHERE条件子句中的比较操作符和比较值。
连接、UNION、GROUPBY或ORDERBY子句的存在。
5、编译
编译分析存储过程的处理过程并创建在处理缓存中的执行规划。处理缓存包
含了存储过程的最大值。增加计划的值因素包括以下这些:
重编译要求的时间(编译花销大)。
经常使用。
您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

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

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

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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