|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
与其他数据库相比,MySQL易学易用。oracle|数据|数据库
Oracle数据库体系利用履历六则
----1.having子句的用法
----having子句对groupby子句所断定的行组举行把持,having子句前提中只同意触及常量,聚组函数或groupby子句中的列.
----2.内部连接"+"的用法
----内部连接"+"按其在"="的右边或右侧分左连接和右连接.若不带"+"运算符的表中的一个行不间接婚配于带"+"预算符的表中的任何行,则前者的行与后者中的一个空行相婚配并被前往.若两者均不带+,则两者中没法婚配的均被前往.使用内部连接"+",能够替换效力非常低下的notin运算,年夜年夜进步运转速率.比方,上面这条命令实行起来很慢
selecta.empnofromempawherea.empnonotin
(selectempnofromemp1wherejob=SALE);
----倘使使用内部连接,改写命令以下:
selecta.empnofromempa,emp1b
wherea.empno=b.empno(+)
andb.empnoisnull
andb.job=SALE;
----能够发明,运转速率分明进步.
----3.删除表内反复纪录的办法
----能够使用如许的命令来删除表内反复纪录:
deletefromtable_namea
whererowid<(selectmax(rowid)fromtable_name
wherecolumn1=a.column1andcolumn2=a.column2
andcolum3=a.colum3and...);
----不外,当表对照年夜(比方50万条以上)时,这个办法的效力之差使人没法忍耐,必要另想举措(可参看拙文《电信计费中远程反复话单的手艺处置》,《盘算机与通讯》,1999-07).
----4.settransaction命令的用法
----在实行年夜事件时,偶然oracle会报出以下的毛病:
ORA-01555:snapshottooold(rollbacksegmenttoosmall)
----这申明oracle给此事件随机分派的回滚段太小了,这时候能够为它指定一个充足年夜的回滚段,以确保这个事件的乐成实行.比方
settransactionuserollbacksegmentroll_abc;
deletefromtable_namewhere...
commit;
----回滚段roll_abc被指定给这个delete事件,commit命令则在事件停止以后作废了回滚段的指定.
----5.利用索引的注重事项
----select,update,delete语句中的子查询应该有纪律地查找少于20%的表行.假如一个语句查找的行数凌驾总行数的20%,它将不克不及经由过程利用索引取得功能上的进步.
----索引大概发生碎片,由于纪录从表中删除时,响应也从表的索引中删除.表开释的空间能够再用,而索引开释的空间却不克不及再用.频仍举行删除操纵的被索引的表,应该阶段性地重修索引,以免在索引中形成空间碎片,影响功能.在允许的前提下,也能够阶段性地truncate表,truncate命令删除表中一切纪录,也删除索引碎片.
----6.数据库重修应注重的成绩
----在使用import举行数据库重修过程当中,有些视图大概会带来成绩,由于布局输出的按次大概形成视图的输出先于它低条理表的输出,如许创建视图就会失利.要办理这一成绩,可接纳分两步走的办法:起首输出布局,然后输出数据.命令举比方下(uesrname:jfcl,password:hfjf,hoststing:ora1,数据文件:expdata.dmp):
impjfcl/hfjf@ora1file=empdata.dmprows=N
impjfcl/hfjf@ora1file=empdata.dmpfull=Ybuffer=64000
commit=Yignore=Y
----第一条命令输出一切数据库布局,但无纪录.第二次输出布局和数据,64000字节提交一次.ignore=Y选项包管第二次输出既使工具存在的情形下也能乐成.
任何规模的组织都可能受益于外包服务,并在一个标准化和优化的平台上统一其数据库管理任务。基于其本身的特性,DBaaS提供了敏捷和高效的数据库服务,它可以支持多变的需求。 |
|