数据库查询语句内部执行过程
Select * from xxx
步骤
分析阶段(parse)
1、 共享池库高速缓存有没有该语句。如果有直接返回结果。
2、 语法分析sql语句是否正确进行下一步分析。
3、 检查表是否存在。(对象解析,查找数据字典表)
4、 翻译*成为所有字段。检查字段是否正确。
5、 获得对象解析锁,表结构锁住,防止其他用户对表结构进行改变。
6、 检查用户权限够不够。
7、 由计划器产生执行计划放到库高速缓存区里(二进制执行代码)。
执行阶段(execute)
1、 看数据库高速缓冲区是否存在,如果存在则提取。
2、 如果不存在则从数据文件中读到数据缓冲区中。
提取阶段(fetch)
1、从数据库缓冲区高速缓存中读取数据给用户。