{eval=Array;=+count(Array);}

问答专栏Q & A COLUMN

自学Oracle数据库都要包含哪些方面?

coordinate35coordinate35 回答0 收藏1
问题描述:最近在自学Oracle数据库,已经学习了Oracle的安装和使用,Oracle的存储过程,Oracle触发器,Oracle游标等高级编程,请问有Java开发工程师能再介绍一下还需要补充学习哪些方面呢?
收藏问题

5条回答

caoym

caoym

回答于2022-06-28 15:19

作为一个开发工程师主要是掌握对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%,而且这还只是第一批。虽然因为裁员规模较大引起了人们的注意,但毕竟甲骨文给离职员工的补偿也较为良心,这件事也就慢慢过去了,但没想到不过几天的时间,网上曝出了甲骨文的老板曾经对中国发表过一些偏激的言论,表示中国是美国最大的竞争对手,要遏制中国,不能给中国培养出很多的工程师。

期待ucloud、ucloud这样的大公司都已经优化改良了开源的数据库拥有自己的一套体系,希望能够出比ORACLE更加优秀的数据出来。在科技领域工作里面的你我他一起加油吧

评论0 赞同0
  •  加载中...
cangck_X

cangck_X

回答于2022-06-28 15:19

java工程师,用的比较多的还是写些sql,存储过程,触发器等等。看你介绍已经学习了存储过程了,可以看看sql。包括sql的语法,内置的函数,自定义函数,可以根据些小例子试着练习(安装pl/sql),sql左连接,右连接,sql的优化,提高sql查询的性能。

后面可以熟悉oracle的备份,用户权限管理等等,也是对自己技术提升也是比较有助的。

评论0 赞同0
  •  加载中...
objc94

objc94

回答于2022-06-28 15:19

首先要学会安装卸载oracl,学习基础的SQL编程, PL/SQL编程

数据库的操作无非是增、删、改、查 多练习即可掌握

最后学习数据库的设计和SQL查询优化.和SQL 基本操作

可编程的PL_SQL

索引 存储过程 触发器 游标 包 视图 任务等等。这些知识我个人的看法你们有什么需要的还可以学习

评论0 赞同0
  •  加载中...
Youngdze

Youngdze

回答于2022-06-28 15:19

作为一个开发工程师主要是掌握对SQL语句的使用,在应用系统开发初期,由于开发数据库数据比较少,对于查询sql语句,复杂试图的编写等体会不出sql语句各种写法的性能优劣,但是如果将应用系统提交实际应用后,随着数据库中数据的增加,系统的响应速度就成为目前系统需要解决的最主要问题之一。系统优化中一个很重要的方面就是sql语句的优化。对于海量数据,劣质sql语句和优质sql语句之间的速度差别可以达到上百倍,可见对于一个系统不是简单地能实现其功能就行,而是要写出高质量的sql语句,提高系统的可用性。

评论0 赞同0
  •  加载中...
ningwang

ningwang

回答于2022-06-28 15:19

Oracle的用户、权限、角色及表空间的管理;Oracle数据库表的管理;Oracle的基本查询;Oracle的单行函数;Oracle的分组函数与数据分组;Oracle的多表查询;Oracle的子查询;Oracle数据库对象--视图;PlSql入门、游标、异常错误处理;Oracle的数据备份与恢复

评论0 赞同0
  •  加载中...

最新活动

您已邀请0人回答 查看邀请

我的邀请列表

  • 擅长该话题
  • 回答过该话题
  • 我关注的人
向帮助了您的网友说句感谢的话吧!
付费偷看金额在0.1-10元之间
<