作为一个开发工程师主要是掌握对SQL语句的使用,在应用系统开发初期,由于开发数据库数据比较少,对于查询sql语句,复杂试图的编写等体会不出sql语句各种写法的性能优劣,但是如果将应用系统提交实际应用后,随着数据库中数据的增加,系统的响应速度就成为目前系统需要解决的最主要问题之一。系统优化中一个很重要的方面就是sql语句的优化。对于海量数据,劣质sql语句和优质sql语句之间的速度差别可以达到上百倍,可见对于一个系统不是简单地能实现其功能就行,而是要写出高质量的sql语句,提高系统的可用性。
Oracle的sql调优第一个复杂的主题,甚至需要长篇概论来介绍OracleSQL调优的细微差别。不过有一些基本的规则是每个OracleDBA都需要遵从的,这些规则可以改善他们系统的性能。
如果要学会优化SQL语句必须知道SQL语句在ORACLE当中的执行计划也是一个长篇大论我简要的说一下
通常一条SQL有多个执行计划,那我们如何选择?那种执行开销更低,就意味着性能更好,速度更快,我们就选哪一种,这个过程叫做Oracle的解析过程,然后Oracle会把更好的执行计划放到SGA的Shared Pool里,后续再执行同样的SQL只需在Shared Pool里获取就行了,不需要再去分析。
Oracle提供了6种执行计划获取方法,各种方法侧重点不同:
选择时一般遵循以下规则:
1.如果sql执行很长时间才出结果或返回不了结果,用方法1:explain plan for
2.跟踪某条sql最简单的方法是方法1:explain plan for,其次是方法2:set autotrace on
3.如果相关察某个sql多个执行计划的情况,只能用方法
4:dbms_xplan.display_cursor或方法6:awrsqrpt.sql4.如果sql中含有函数,函数中有含有sql,即存在多层调用,想准确分析只能用方法5:10046追踪
5.想法看到真实的执行计划,不能用方法1:explain plan for和方法2:set autotrace on
6.想要获取表被访问的次数,只能用方法3:statistics_level = all
学会这些明白SQL语句如何执行,遵循怎样的执行计划最为重要。
其次就是要会oracle数据泵和radmin的使用,冷备、还原,以及常见的故障处理,部署调优,作为一个程序员其实都可以学习
Data Pump从oracledatabase 10g开始引入了data pump(数据泵)工具,它提供了一种基于服务器的数据导出导入使用程序。所有的data pump都作为一个服务器进程,数据不再必须由一个客户程序处理。Data Pump工具的导出和导入实现Oracle数据库之间数据的传输。Data Pump工具中包含Data Pump Export和Data Pump Import,所使用的命令行客户程序为expdp和impdp。
【注意】在10g之前,传统的导出导入分别使用exp工具和imp工具。从oracle database 10g开始,不仅保留了原有的exp和imp工具,还提供了数据泵导出导入工具expdp和impdp。从11g开始,在传统的export和import应用程序中可用的任何特性在data pump中都可用。在使用expdp和impdp工具时,应该注意以下几点:1 exp和imp是客户端工具程序,它们既可以在客户端使用,也可以在服务器端使用。2 expdp和impdp是服务器工具程序,它们只能在oracle服务器端使用,不能再客户端使用。3 imp只适用于exp导出的文件,不适用于expdp导出文件;impdp只适用与expdp导出的文件,不适用于exp导出文件。data pump导出导入所得到的文件跟传统的import/export应用程序导出导入的文件不兼容。
【pump特点】
与原有的export和import使用程序相比,oracle的data pump工具的功能特点如下:
1 在导出或者导入作业中,能够控制用于此作业的并行线程的数量。
2 支持在网络上进行导出导入,而不需要是使用转储文件集。
3 如果作业失败或者停止,能够重新启动一个data pump作业。并且能够挂起恢复导出导入作业。
4 通过一个客户端程序能够连接或者脱离一个运行的作业。
5 空间估算能力,而不需要实际执行导出。
6 可以指定导出导入对象的数据库版本。允许对导出导入对象进行版本控制,以便与低版本数据库兼容。
【pump数据字典】
数据字典
说明dba_datapump_jobs
显示运行数据泵作业的信息,也可以使用user_datapump_jobs变量dba_datapump_sessions 提供数据泵作业会话级别的信息datapump_paths
提供一系列有效的对象类型,可以将其与export或者impdp的include或者exclude参数关联起来dba_directories
不过现在oracle的口碑也在走下坡路已经进入中国市场30年的甲骨文突然开始大裁员,且这波裁员来势极为凶猛,目前已经有900余人被迫离职,裁员幅度高达60%,而且这还只是第一批。虽然因为裁员规模较大引起了人们的注意,但毕竟甲骨文给离职员工的补偿也较为良心,这件事也就慢慢过去了,但没想到不过几天的时间,网上曝出了甲骨文的老板曾经对中国发表过一些偏激的言论,表示中国是美国最大的竞争对手,要遏制中国,不能给中国培养出很多的工程师。
期待阿里、华为这样的大公司都已经优化改良了开源的数据库拥有自己的一套体系,希望能够出比ORACLE更加优秀的数据出来。在科技领域工作里面的你我他一起加油吧
原创文章,作者:普尔小编,如若转载,请注明出处:http://www.puerpx.cn/pxwd/1196.html