kxbin
成功留给有准备的人
posts - 10,  comments - 35,  trackbacks - 0
astingracle执行sql语句过程
1.parse(解析)
  软解析/硬解析(第一次执行sql需要进行硬解析)
  1)从共享池的库缓冲区搜索,确定该语句是否曾经执行过,凡是执行过的sql语句,oracle会使用hash函数进行计算,产生一个很小的文本记录。如果是第一次执行,则进入第二步;
  2)检查语法、权限等等(权限的信息是存放在oracle的数据字典中),oracle先从共享池的数据字典缓冲区中搜索,如果没有找到,再从数据文件(system表空间的数据文件)中读取,然后存放在共享池的数据字典缓冲区中,以便共享;
  3)分析过程中,对访问到的表进行锁操作,目的是为了保护表的结构不被修改;
  4)oracle优化器会根据数据的存储结构(表的存储结构、索引)统计信息等。计算各种读取的代价,选择一条最佳路径(代价最低),生成执行计划,同时编译并存储在共享池的库缓冲区中,以便共享。
2.bind(绑定变量)
3.execute(执行)
  先从数据缓冲区查找数据,如果没有,再从数据文件中读取数据到数据缓冲区、保持,以便共享。
4.fetch
  把结果返回给用户。

posted on 2012-09-27 21:39 kxbin 阅读(645) 评论(1)  编辑  收藏

FeedBack:
# re: oracle sql执行过程
2014-07-07 22:30 | rhgfhj
343678  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航:
 
你恨一个人是因为你爱他;你喜欢一个人,是因为他身上有你没有的;你讨厌一个人是因为他身上有你有的东西;你经常在别人面前批评某人,其实潜意识中是想接近他。

<2012年9月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456

常用链接

留言簿(5)

随笔档案

文章分类

文章档案

相册

收藏夹

J2EE

java技术网站

Linux

平时常去的网站

数据库

电影网站

网站设计

搜索

  •  

最新评论

阅读排行榜

评论排行榜