自-开发高性能的数据库SQL

上传人:洛** 文档编号:190104630 上传时间:2021-08-08 格式:DOC 页数:27 大小:88.50KB
返回 下载 相关 举报
自-开发高性能的数据库SQL_第1页
第1页 / 共27页
自-开发高性能的数据库SQL_第2页
第2页 / 共27页
自-开发高性能的数据库SQL_第3页
第3页 / 共27页
自-开发高性能的数据库SQL_第4页
第4页 / 共27页
自-开发高性能的数据库SQL_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《自-开发高性能的数据库SQL》由会员分享,可在线阅读,更多相关《自-开发高性能的数据库SQL(27页珍藏版)》请在金锄头文库上搜索。

1、1 SQ执行顺序1.1 SLECT语句一般seect 语句处理按以下步骤顺序执行:1) 建立游标。2) 分析语句。3) 定义输出:指定位置,类型,结果集的数据类型。4) 绑定变量:如果查询使用变量的话,Orale就要知道变量的值。5) 是否能并行运行(如果有多个服务器时)。6) 执行查询。7) 检索出数据。8) 关闭游标。1.2 DM语句一般INSERT,UPADTE,DELETE 语句处理执行顺序是:1) 建立游标(Oracle建立一个隐含的游标。)2) 分析语句。3) 绑定变量:如果语句用了变量,Orc要知道变量的值。4) 看语句是否能以并行方式运行(如果有多个服务器时)。5) 执行语句。

2、6) 通知用户,语句已执行完毕。7) 关闭游标。1.3 CMIT语句当事务提交时,race分配一个唯一的顺序号SCN(System ChneNumber)给事务。数据库恢复总是基于该SCN号来进行处理。SCN号是记录在控制文件、数据文件、块头及重做日志文件中。Orcle 在下面情况提交事务:发出一个COMM语句、执行DD语句时、离开Orl时。Orcle处理CMT的顺序:1) 服务器为每个COMT产生一个S。使改变永久化。2) LGW进程将日志缓冲区数据并带有SC一起写到重做日志文件。3) 服务器释放表级和行级锁。4) 用户被提示COM完成。5) 服务器使事务已完成。1.4 ROLBACK语句当

3、下面情况发生时,数据库执行回滚:发出ROLLACK命令、服务器进程放弃地终止、会话被DBA终止。RACLE处理ROLLBACK的顺序:1) 服务器进程不做任何的改变。2) 服务器释放表级和行级锁。3) 服务器使事务已完成。2 访问表中记录2.1 访问表中记录的方式RALE只有两种访问表中记录的方式:a.全表扫描全表扫描就是顺序地访问表中每条记录。 RACL采用一次读入多个数据块(daabasblk)的方式优化全表扫描。b.通过RWID访问表你可以采用基于OW的访问方式情况,提高访问表的效率, RWID包含了表中记录的物理位置信息,ORACLE采用索引(INDEX)实现了数据和存放数据的物理位置

4、(D)之间的联系。 通常索引提供了快速访问OD的方法,因此那些基于索引列的查询就可以得到性能上的提高。2.2 SQ对表与索引的可能操作情况OACE的执行一个SQL对表与索引的可能操作情况有三种:A 只读表该情况只出现在全表扫描的情况。B 只读索引该情况只出现在全索引扫描的情况。rce对全索引扫描限制为SQL请求的全部列(colum)必须驻留在索引树中;也就是说,SELCT和WHERE字句中的所有数据列必须存在于索引中C 读取索引和表最普遍的查询方式,数据库先根据索引查询到满足要求的id,再根据owid查询表。2.3 全表扫描与高水位线做全表扫描的时候,影响性能最大的不是表内记录数的多少,也不是

5、该表所分配的空间,而是这个表的高水位线下的空间的大小。比如说表A,在创建的时候分配了100空间,然后在表A内插入数据的时候,表A的高水位线下的空间会逐渐加大;而删除表内的数据的时候,表的高水位线并不会变化,也就是说高水位线下的空间不会减少。随着高水位线的不断上移,以上查询的效率就会越来越低。2.3.1 解除高水位线过高的处理移动表所在的表空间,然后再移回原来的表空间Altr tale benm mo talespcablesa_nae;缺点:需要足够的空间,并且需要另外一个足够空间的表空间,移动表后需重建该表的索引,需要放在系统空闲时做,会影响业务对该表的使用。Ex/imp将该表expor后再

6、iprt缺点:iport前需要将该表do,需要中断业务,有该表参与的过程,函数等需要进行重编译。将原表改名后重新建立新表再用inset int elct 方式转移数据缺点:需要中断业务,需要足够的空间,比较移动表空间的方式可以在同一表空间上进行处理;改名时还需要对索引,约束,触发器等进行处理(影响建立新表)通过crte tble a asslt * m 建立表a保存数据,将表b trcate后将保存的数据用inr int .elect 恢复。缺点:需要中断业务,需要足够的空间,存在外键时需要先drop外键2.4 表与索引相关的系统对象dba_able;dba_tb_cols;dba_ab_co

7、luns;da_ta_commnts;dba_iexes;dba_i_columns;d_egmnt;ser_tabls;us_tabcl;user_abcolumns;ur_tab_oms;useindes;urind_olumns;ser_sements;3 索引的组织结构3.1 基本的多叉树索引NULL-B1MOVE-B2Null-L1Bolan-L2Floyd-L3Move-L4Queen-L5Ziggy-L6ABBA rowidAcdc rowidBolan rowidCed rowidDfg rowidFloyd rowidGed rowidHfg rowidMove rowidO

8、rg rowidPxc rowidQueen rowidRac rowidRdg rowidZiggy rowidZxc rowid第一层为根节点,第二层为分叉节点,第三层为叶节点3.2 索引的结构的变动3.2.1 INSER引起的索引结构变动在ISERT数据时,索引的结构增加,索引占用的空间规模、扫描需要花费的时间规模、插入操作需要花费的时间规模增加。问题:随着数据的增加,插入数据时对索引的变动花费的时间增加。3.2.2 DELETE引起的索引结构变动在delete数据时,在索引中仅置一标志,表明该数据被删除而不影响索引的基本结构。3.2.3 重建索引LTER IEX IDEXNAM REB

9、ULD spus /nolgQ*Plus: Release .2.0.10 -Produci n 星期二 6月 15:16:03203Copyrit () 19, 2002, Oracl Cpotin llrighs reerved.SQL connec ss as sysdb请输入口令:已连接。QL ?rdbmsdiutlpln表已创建。Scret puic synony latableor pla_tabe;同义词已创建。S gntall n lan_tbl tpubi ;授权成功。SQL ?qllusadmplustrcSQLSQLdr rol pltrace;droprle lustr

10、aceRROR 位于第 1 行:O-91:角色PLSRAC不存在QL crea re plustrace;角色已创建SQLSL gran slecovsestattopusrae;授权成功。SL ran selctonv_$statnato usrace;授权成功。QLganteecton v_ssi o lutrace;授权成功。SQL gra urace oda ih dmnopti;授权成功。QLSQLset echo f DB用户首先被授予了ustr角色,然后我们可以把pluse授予publi这样所有用户都将拥有plustrace角色的权限Q gran ustr to ubli;授权成功。SL et aurce o;SL electon(*)m _cell; COT()- 538ExectionPlan- 0 SELEC TAEMENTptimizer=COOSE RT (AGREGAT) 2 TABLACSS (UL)O T_CLStaitics- 0 ue calls 0 db bock gets 27 consistent ges 0physial re red ze 0 bytes sent

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 社会学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号