(Oracle管理)ORACLE数据库操作手册2[1]0

上传人:管****问 文档编号:118932548 上传时间:2019-12-30 格式:DOC 页数:20 大小:350.04KB
返回 下载 相关 举报
(Oracle管理)ORACLE数据库操作手册2[1]0_第1页
第1页 / 共20页
(Oracle管理)ORACLE数据库操作手册2[1]0_第2页
第2页 / 共20页
(Oracle管理)ORACLE数据库操作手册2[1]0_第3页
第3页 / 共20页
(Oracle管理)ORACLE数据库操作手册2[1]0_第4页
第4页 / 共20页
(Oracle管理)ORACLE数据库操作手册2[1]0_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《(Oracle管理)ORACLE数据库操作手册2[1]0》由会员分享,可在线阅读,更多相关《(Oracle管理)ORACLE数据库操作手册2[1]0(20页珍藏版)》请在金锄头文库上搜索。

1、ORACLE 数据库操作手册2.0中国通信集团公司安徽有限公司计费业务部7年11月修改记录版本日期编辑者编辑内容1.02006/2/10见春蕾形成初稿1.12007/8/31见春蕾根据实际情况修订部分章节2.02007/11/05见春蕾一、在第一章(数据库使用注意事项)中增加了关于批量更新数据的大事务分次提交的要求、客户端的配置方法、修改密码方法;二、在第二章(SQL编写注意事项)中增加了关于提示(Hints)的使用。三、增加了第四章(跟踪SQL执行计划),阐述了相关的理论知识和SQL执行计划的跟踪方法。目录ORACLE 数据库操作手册2.01第一章数据库使用注意事项5二、不使用数据库时请及时

2、关闭数据库连接,但是也不能频繁的连接和断开5三、执行了DML操作,请按业务规则,不要忘记执行COMMIT或ROLLBACK。5四、如果是查询和统计不涉及到当天的业务时,不要在生产环境里操作,在BCV库中操作。BCV每天晚上12点同步一次,数据和用户口令、密码和生产环境相同。5五、关联表都很大的查询和统计也尽量用BCV库。6六、生产环境营业时间(特别是营业高峰时间,目前是上午8:00-10:00,下午3:00-4:00)禁止做大数据量的查询和统计,每个查询的执行时间要控制在分钟内。6七、不要执行索引和表的信息的收集。6八、编写程序的时候,注意语句规范,尽量使用变量绑定,减少共享池的使用。6九、按

3、照标准要求编写pl/sql等程序,注意事务的提交、回滚和对各种异常情况的处理。6十、要查看表字段名或随机的少量数据时候,使用desc、也可以使用where1=2或者rowcountn来查看,而尽量不要直接执行select * from tablename,然后kill会话。6十一、尽量使用索引,避免出现全表扫描,性能影响比单机更大。6十二、对分区表建立索引时,使用local选项。6十三、不要在事务中引入Trigger,建议在事务中实现。6十四、批量更新数据的大的事务分次提交。6十五、客户端的配置。7十六、修改密码。7第二章SQL编写注意事项9一、SELECT 子句中避免使用*9二、查找总记录数

4、时,尽量不要用count(*),而要指定一个有索引的字段。9三、将大的历史表创建为分区表,便于数据转储和删除。9四、使用分区表进行查询时,尽量把分区键作为查询条件的第一个条件。9五、Sequence采用cache/noorder,如果在使用sequence上的列建索引,建议加大cache值。9六、在FROM子句中包含多个表的情况下,选择记录条数最少的表作为基础表,放在FROM子句的最后面。9七、WHERE子句中的连接顺序10八、在需要无条件删除表中数据时,用truncate代替delete。11九、语句中尽量使用表的索引字段,避免做大表的全表扫描。11十、 带通配符(%)的like语句11十一

5、、用EXISTS替代IN11十二、用NOT EXISTS替代NOT IN12十三、尽可能的用UNION-ALL 替换UNION12十四、Order by语句建议13十五、避免使用NOT13十六、使用DECODE函数来减少处理时间14十七、删除重复记录14十八、如果可以使用where条件,尽量不要在having中限制数据14十九、尽量不要使数据排序14二十、使用提示(Hints)15第三章oracle和sybase的SQL区别15一、大小写15二、限制记录数量15三、列的选择16四、连接16五、字符串函数16六、日期函数16七、数据类型转换函数:17八、空值替代函数:17九、sybase的whe

6、re语句执行 正则符号,但是oracle9i不支持。17十、数字取舍17第四章 跟踪SQL执行计划18一、理论18(一)ORACLE优化器18(二)访问TABLE的方式18(三) 索引访问方式19二、SET TRACE跟踪sql执行计划19第一章数据库使用注意事项一、对BOSS1.5营帐库,营业网址严格按照要求进行配置,不可随意更换。营业网址要求按照下面方式进行分配配置,如果随意更换,会增加营业主机间的数据交互,影响数据库性能,降低营业工作效率。合肥、六安、阜阳、宿州、亳州、淮北、黄山、铜陵配置: http:/10.147.132.5:7001/WebRoot/login.jsp或者http:

7、/main.webA1.amcc/WebRoot/login.jsp芜湖、蚌埠、淮南、马鞍山、安庆、滁州、宣城、巢湖、池州,配置如下:http:/10.147.132.6:8001/WebRoot/login.jsp或者http:/main.webB1.amcc/WebRoot/login.jsp二、不使用数据库时请及时关闭数据库连接,但是也不能频繁的连接和断开数据库连接也是数据库的宝贵资源,数据库支持的数据库连接有限,当不需要使用数据库时,请“优雅”的退出数据库吧,如果能正常退出,请别“结束任务”或KILL -9。如果正在执行SQL的时候突然异常终端,请联系数据库管理员检查处理,以防止数据库

8、一直占用该SQL相关资源。三、执行了DML操作,请按业务规则,不要忘记执行COMMIT或ROLLBACK。不要只执行语句,而不控制事务。当你执行一条DML语句时,数据库会为你分配锁、回滚段、REDO LOG BUFFER等资源。事务结束后,这些资源才能得以释放。四、如果是查询和统计不涉及到当天的业务时,不要在生产环境里操作,在BCV库中操作。BCV每天晚上12点同步一次,数据和用户口令、密码和生产环境相同。bcv是一个节点的数据库,所有的地市的查询的连接配置是同一个,如下: YZDBBCV = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCO

9、L = TCP)(HOST = 10.153.192.45)(PORT = 1521) ) (CONNECT_DATA = (SERVICE_NAME = yzdb) ) )五、关联表都很大的查询和统计也尽量用BCV库。六、生产环境营业时间(特别是营业高峰时间,目前是上午8:00-10:00,下午3:00-4:00)禁止做大数据量的查询和统计,每个查询的执行时间要控制在分钟内。七、不要执行索引和表的信息的收集。八、编写程序的时候,注意语句规范,尽量使用变量绑定,减少共享池的使用。九、按照标准要求编写pl/sql等程序,注意事务的提交、回滚和对各种异常情况的处理。十、要查看表字段名或随机的少量数

10、据时候,使用desc、也可以使用where1=2或者rowcountn来查看,而尽量不要直接执行select * from tablename,然后kill会话。十一、尽量使用索引,避免出现全表扫描,性能影响比单机更大。十二、对分区表建立索引时,使用local选项。十三、不要在事务中引入Trigger,建议在事务中实现。十四、批量更新数据的大的事务分次提交。在营帐数据库系统繁忙时候,大于300万的数据刷新,建议分次提交,减少异常发生。系统空闲时,大于800万的数据刷新,建议分次提交。十五、客户端的配置。方法一、直接修改tnsnames.oraYZDBBCV = (DESCRIPTION = (

11、ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.147.192.45)(PORT = 1521) ) (CONNECT_DATA = (SERVICE_NAME = yzdb) ) )方法二、使用客户端工具十六、修改密码。用sql*plus使用账号连接数据库 可以从菜单进入 也可以从命令行窗口进入方法一、使用password命令方法二、使用alter命令Alter user 账号 identified by 密码 密码规则问题:有字符、数字、特殊字符要六位以上和以前密码不能有三个以上相同的字符第二章SQL编写注意事项一、SELECT 子

12、句中避免使用*在SELECT子句中列出所有的列时,使用*很方便,但是效率低。因为ORACLE在解析的过程中,会查询数据字典,将*依次转换成所有的列名。所以,直接在SELECT子句中写出想要显示的列。二、查找总记录数时,尽量不要用count(*),而要指定一个有索引的字段。例如索引列为index,使用count(index),这样能利用索引。三、将大的历史表创建为分区表,便于数据转储和删除。四、使用分区表进行查询时,尽量把分区键作为查询条件的第一个条件。五、Sequence采用cache/noorder,如果在使用sequence上的列建索引,建议加大cache值。六、在FROM子句中包含多个表

13、的情况下,选择记录条数最少的表作为基础表,放在FROM子句的最后面。因为在基于规则的优化器中,ORACLE的解析器按照从右到左的顺序处理FROM子句中的表名。FROM子句中写在最后的表将被最先处理。例如:表 TAB1 16,384 条记录表 TAB2 5 条记录选择TAB2作为基础表 (最好的方法)select count(*) from tab1,tab2. 执行时间0.96秒选择TAB1作为基础表 (不佳的方法)select count(*) from tab2,tab1. 执行时间26.09秒如果有3个以上的表连接查询,那就需要选择交叉表作为基础表,交叉表是指那个被其他表所引用的表例如:

14、EMP表描述了LOCATION表和CATEGORY表的交集SELECT *FROM LOCATION L,CATEGORY C,EMP EWHERE E.EMP_NO BETWEEN 1000 AND 2000AND E.CAT_NO = C.CAT_NOAND E.LOCN = L.LOCN将比下列SQL更有效率SELECT *FROM EMP E ,LOCATION L ,CATEGORY CWHERE E.CAT_NO = C.CAT_NOAND E.LOCN = L.LOCNAND E.EMP_NO BETWEEN 1000 AND 2000七、WHERE子句中的连接顺序ORACLE采用自下而上的顺序解析WHERE子句。根据这个原理,表之间的连接必须写在其他WHERE条件之前,那些可以过滤掉最大数量记录的条件必须写在WHERE子

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

最新文档


当前位置:首页 > 商业/管理/HR > 经营企划

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