以下例子来做说明
select c2 from t1 where c1='A';
假设要找的数据块是[10.120]
1、把该数据块的地址和数据块类型(data of index)作为传入参数,传给hash函数,得到hash value,假设是3.
2、到3号buffer chain上找该数据块是否存在。
3、如果不存在,找一个可用的buffer
4、发出IO调用,从数据文件里拷贝该数据块到第三步找到的buffer。
5、把该buffer的header玻璃出来,并挂载到3号chain上。
select c2 from t1 where c1='A';
假设要找的数据块是[10.120]
1、把该数据块的地址和数据块类型(data of index)作为传入参数,传给hash函数,得到hash value,假设是3.
2、到3号buffer chain上找该数据块是否存在。
3、如果不存在,找一个可用的buffer
4、发出IO调用,从数据文件里拷贝该数据块到第三步找到的buffer。
5、把该buffer的header玻璃出来,并挂载到3号chain上。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29952014/viewspace-2120352/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/29952014/viewspace-2120352/
本文通过一个具体的SQL查询案例,详细解析了数据库查询的过程,包括如何使用hash函数定位数据块、如何进行缓存查找以及必要的I/O操作等步骤。
1553

被折叠的 条评论
为什么被折叠?



