晶晶实验二十二之直接路径插入篇

晶晶实验二十二之直接路径插入篇

ID:21749415

大小:106.55 KB

页数:9页

时间:2018-10-24

晶晶实验二十二之直接路径插入篇_第1页
晶晶实验二十二之直接路径插入篇_第2页
晶晶实验二十二之直接路径插入篇_第3页
晶晶实验二十二之直接路径插入篇_第4页
晶晶实验二十二之直接路径插入篇_第5页
资源描述:

《晶晶实验二十二之直接路径插入篇》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、晶晶实验二十二之直接路径插入篇上一篇/下一篇2008-04-0223:24:28/个人分类:晶鈕oracle实验系列査看(2019)/评论(33)一、过接路径插入与闷接路径插入的不同这个问题相信很多人都已经知道了,为丫方便初学者,我冉来重帘一遍。createtable表1asselect歹!]1,列2,...select表2insert/*+append7into表1select列1,列2,...select表2如上形式的插入,都叫做直接路径插入。当然,在SQL*LoadePp也旮直接路径插入的形式。所谓直接路径插入,就是绕过Buffercache,直接将数据插入进表所在数据义件中。假如

2、有表AA,要将AA中的数裾插入进表BB,在普通的间接插入卜‘,先将AA的数裾块传进Buffercache,再将BB的块也传进Buffercache,在Buffercache屮从AA的块屮读出行,插入进BB的块中。BB的块就都变成丫脏块,冉等待DBWn把它们写进数据文件。因此,间接路径插入后,AA表的块和BB表的块都会在Buffercache中出现。而直接路径插入卜,将AA表的数据块传进Buffercache十,读出行,直接写进BB表所在的数裾文件。插入完毕后,除丫表尖块外,BB表的数裾块并不会出现在Buffercache中。K面來试验一下:步1:准备试验用表:SQL〉createtabl

3、eaa(idnumber(4),namevarchar2(5));表已创建。SQL〉createtablebb(idnumber(4),namevarchar2(5));表已创建。SQL>insertintoaavalues(1,'aa');已创建1行。SQL>insertintoaavalues(2,'bb');己创建1行。SQL〉insertintoaavalues(3,’cc');已创建1行。SQL〉insertintoaavalues(4,’dd’);已创建1行。SQL>commit;提交完成。SQL>selectdbms_rowid.rowid_relative_fno(row

4、id),dbms_rowid.rowid_block_number(rowid)fromaa;DBMS_ROWID.ROWID_RELATIVE_FNO(ROWID)DBMS_ROWID.ROWID_BLOCK_NUMBER(ROWID)418493418493418493418493现在AA表中有4行,占用块18493。BB表中没有数裾。步2:将buffercache清空,我这甲:使用秉启数掘挥的方法:SQL>shutdownimmediateSQL>startup步3:先川直接路径插入,从AA表向BB表插入数据:SQL>insert/*+append*/intobbselect*fr

5、omaa;已创建4行。SQL〉commit;提交完成。步4:使用V$bh查看Buffercache中的块:SQL〉selectfile#,block#fromv$bhwhereobjd=(selectobjectjdfromuserobjectswhereobject_name='AA');FILE#BLOCK#418491418491418494418492418495418493<-当前也含数据的块418496已选择7行。由于对AA表进行丫全表扫描,因此,AA表中高水点下的所冇块都被读进丫Buffercache,这其中当然包括乜含数裾的块18493。SQL〉selectfile#,b

6、lock#fromv$bhwhereobjd=(selectobjectjdfromuser_objectswhereobject_name=’BB’);FILE#BLOCK#18499418499418497SQL〉selectdbms_rowid.rowid_relative_fno(rowid),dbms_rowid.rowid_block_number(rowid)frombb;DBMS_ROWID.ROWID_RELATIVE_FNO(ROWID)DBMS_ROWID.ROWID_BLOCK_NUMBER(ROWID)418500418500418500418500上面两个查询

7、可以看到,BB表屮的数据占川第18500块,似足,直接路径插入后,18500块并没被调进Buffercache。Buffercache屮只有18499和18497。其中18499足段头块,KU18497是L1块,直接路径插入后,耍修改L1块中的数据块使用怙况。步5:再试一次间接路径插入:SQL>insertintobbselect*fromaa;已创建4行。SQL〉commit;提交完成。SQL>selectfile#,block#

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。