SQL数据库中的一条select到底执行了什么过程?

Java灵风

对于数据库方面的面经,总会有意无意被问到,比如,事务啊,锁啊,索引啊等等。

这些在网上都能罗列出一大堆,理解理解相关的概念,我想都能答出一二。

恰好某天,有个靓仔胸有成竹去面试了一家心意的东家,似乎脑海里已经浮现出了“答教十条”。

后面迎来了当头一棒道:说一下,一条select语句大概执行了哪些过程?

靓仔:???啊这......

那么,一条查询语句,到底执行了哪些过程?接下来就详细讲讲。

1.当计算机执行一条SELECT语句时,就会先启动DBMS(数据库管理系统)

2.DBMS首先对该语法进行检查,然后从数据字典DD中找出该应用程序对应的外模式(相当于关系数据库视图),检查是否存在所要的查询关系,并进行权限检查,即检查该操作是否在合法的授权范围内。如果有问题,则返回信息。

3.在决定执行该语句后,DBMS从DD(数据字典)中调出相应的模式描述,并从外模式映像到模式,从而确定所需要的逻辑数据。

4.DBMS从DD调出相应的内模式描述,并从模式映像到内模式,从而确定应读入的物理数据和具体地址信息。在查询过程中,DBMS的查询处理程序将根据DD中的信息进行查询和优化,并把查询命令转换成遗传单元记录(元组)的读出操作序列。随后DBMS执行读出操作序列。

5.DBMS在查看内模式决定从哪个文件、用什么方式读取哪个物理记录之后,向操作系统发出从指定地址读取物理记录的命令,同时在系统缓冲区记下运行记录。相当于物理记录全部读完时,查询语句执行完毕。

6.OS(操作系统)执行读出的命令,按指定地址从数据库中把记录读入OS的系统缓冲区,随后读入数据库(DB)的系统缓冲区。

7.DBMS根据查询命令和数据字典的内容把系统缓冲区中的记录转换成应用程序所要求的记录格式。

8.DBMS把数据记录从系统缓冲区传送到应用程序的用户工作区

9.DBMS 把执行成功与否的状态信息返回给应用程序。

10.DBMS 把系统缓冲区的运行记录记入运行日志,以备以后查阅或发生意外时用于系统恢复。

11. DBMS 在系统缓冲区查找下一记录,若找到就转到第7点,否则转到第5点。

12.查询语句执行完毕,应用与程序做后续处理。

cn/post/7162140385606074381

版权声明:SQL数据库中的一条select到底执行了什么过程?内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请联系 删除。本文链接:https://www.qi520.com/n/17103.html