求数据库高手帮忙!

我想了解一条SQL语句从客户端发到服务器后,到最后消失的过程,服务器又是怎么处理这条语句的等等谢谢!... 我想了解一条SQL语句从客户端发到服务器后,到最后消失的过程,服务器又是怎么处理这条语句的等等 谢谢! 展开
 我来答
924922279
2010-07-28 · TA获得超过585个赞
知道小有建树答主
回答量:309
采纳率:0%
帮助的人:332万
展开全部
第一步:客户端把语句发给服务器端执行。(客户端用C表示,服务器端用S表示)
当在C执行SQL语句时,它先发给S,让S端启动操作系统进程来处理这条SQL语句,因此C只是简单的启动一个进程把SQL语句发给S端处理,等待服务器端返回。

第二步:S端对SQL进行解析:
1、查询高速缓存,查找是否存在相同的执行计划,如果存在,则直接从内在中读取数据返回。如果不存在,则继续下一步:
2、语句合法性检查:即语法规则检查,如果不符合则返回错误给C端,否则进行下一步
3、语言含义检查:检查字段,表,视图等这些数据库对象是否存在或准确,如果不符合则返回错误给C,否则下一步;
4、获得对象解析锁:对处理的数据库对象加锁,主要是保障数据的一致性,防止在处理过程中并发产生时引起数据的不一致;
5、数据访问权限核对,检查连接的用户是否有这个数据访问的权限,如果没有则返回错误信息,否则下一步;
6、确定最佳执行计划:S端根据一定的算法,对语句进行优化以确定它的执行计划,再把SQL语句与这个执行计划保存到数据的调整缓存中,如此,以后还有相同的处理时,则直接省略上述的2-6个,直接执行SQL语句,提高效率。

第三步:语句执行
若被处理的数据已经被读取到数据缓冲区中,则S端进程会直接把这个数据发到C,而不再去数据库文件中查找,否则S进程会从数据库文件中查询处理相关数据,并把这个数据放到数据缓冲区中

第四步:提取数据:
在S的进程中,会有一个专门负责数据提取的一段代码,专门把查询处理好的数据返回C,从而完成整个过程。
libi2008
2010-07-28 · TA获得超过189个赞
知道小有建树答主
回答量:373
采纳率:0%
帮助的人:123万
展开全部
存储过程
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式