使用Oracle数据库进行企业开发(二)

简介:
 工欲善其事,必先利其器。Oracle自身带了一些辅助的客户端工具,但是都不太好用,但真正的DBA都喜欢用命令行方式来操作数据库。我们不是DBA,我们是程序员,所以我们很有必要去找一些好用的工具以提高我们的工作效率。下面推荐两款工具:
    1.PL/SQL Developer
    这个工具从名字就可以看出,非常适合开发人员使用,这个工具对数据库本身的管理功能很弱,给DBA使用的功能也很少。这个工具的版本更新较快,目前常用的是5.0和7.0,6.0的好像不太稳定。
    使用这个工具,可以实现建表、建视图等基本功能,还可以运行命令文件。在如下所指的菜单中可以找到相应的功能。
o_o1.JPG

    如果SQL为查询语句,则直接在主窗口的表格中可以显示查询内容,如下图:
o_o2.JPG

    图上有几个比较重要的按钮,第一个表示锁定,点击成功后,可以对表格中的数据进行编辑;紧接着的绿色向下,表示向下翻一页的数据,因为这个工具默认不会取出所有的数据,这样可以提高性能;再后面的两个三角加一个横线的按钮,表示可以把所有的数据全部取出放在表格中,这种方式使用的时候要注意,如果数据量很大,会造成客户端内存不足;“竖向按钮”可以把一个记录行竖向排版,更方便显示和编辑,如下图:
o_o3.JPG

    如果需要编辑数据,有两种办法:
    使用update命令,如update table_name set column_name=’value’;
    也可以使用表格自身的编辑功能,如:select * from table_name for update
    上面虽然是个查询语句,但是因为最后带着for update子句,则这句话同时将数据库这个表锁定,并且在表格上面的“锁”标志可以使用,实现数据的编辑,如下图:
o_o4.JPG

    如果不喜欢for update子句,还有另外一个更简单的办法,在左侧菜单中找到相对应的表,然后点右键,出现一个“Edit Data”
o_o5.JPG

    这个功能会自动新建一个SQL窗口,并实现对数据的编辑。
    以上几种方式作用相同,可根据实际情况来决定。
    说过了如何编辑数据,下面说一下PL/SQLDeveloper一个比较好用的功能:单步调试。
    在编写存储过程的时候,都会像一般写程序一样调试,但是如果不借用一些工具的话,对存储过程的调试是相当困难的,不过好在我们现在有了这个好用的工具。
o_o6.JPG

    上图是一个最简单的存储过程的例子,中间过程对一个变更进行多次赋值,最后返回,我们只来看一下中间变量值的变化过程:
    首先在函数名Test上点右键,出现菜单,选择Test(测试):
o_o7.JPG

    然后会出现专门的调试窗口,如下图:
o_o8.JPG

    如果函数有参数,在最底下还会出现输入参数的地方。如何开始调试呢,看一下上图中的齿轮的地方,点击它,即可进入调试状态,然后后面的一系列按钮都变为可用状态,如下图:
o_o9.JPG

    其中绿色的三角表示运行,直到碰到断点才结束,后面几个按钮和其它语言一样,分别表示单步、把子函数作为一个语句、从子函数中跳过,最后的红色我没有试验过。
    上面提到了断点,那么如何添加断点呢?这要回到存储过程的编辑状态,在下图红色位置单击一下,就会自动添加一个断点,也可以使用Ctrl+B功能键来处理。
o_o10.JPG

    有了以上断点后,程序运行到这里,系统会自动停下来等待处理,当然这种方式只适用于调试模式,对于正常F8运行模式无效。
o_o11.JPG

    当系统停在某个断点的时候,把鼠标放在某个变量上,就会自动显示这个变量的当前值,如上图,当然,也可以添加监控,实时看某个变量的变化过程,在下图的位置来添加监控。
o_o12.JPG

    上图红线的位置是新添加的一个监控变量,可以随着程序的运行而不断变化,并可以根据需要添加多个变量同时监控。
    当然有时您可能会被告之当前函数无法取得调试信息,这时就要手动添加一下,添加的方式是在package的名字上点右键,菜单中选择“Add Debug Information”
o_o13.JPG

    说完了单步调试,再来看一下执行计划
    在大型数据库中,都有执行计划的概念,也就是数据库会很公正的告诉你,它用什么样的方式(路径)来执行你提交的请求,你可以自己判断一下它的执行路线是否正确,如果不正确,你可以很明确的告诉它去修改运行路径。
    在正常的情况下,F8按钮可以运行一个SQL语句,当你点击F5功能键的时候,就是启动执行计划的分析了,这比命令行方式要方便很多倍,而且效果非常直观,如下图:
o_o14.JPG

    上面一部分是SQL语句,下面就是相对应的执行计划。与实际运行不同,在这里查看执行计划,不会真正的运行SQL语句,所以会很快得到计划结果,而不论数据量到底有多大。
    上面已经看到执行计划,那看这个计划有什么用呢?从计划里,我们可以清楚的看到是否使用了索引,如上图,TABLE ACCESS FULL(FTS)就是没有使用索引,如果数据量很大,而需要检查一条记录的时候,FTS将把所有数据进行扫描,速度是非常慢的,也就是利用这个执行计划,可以知道如何调优,比如建立索引等。还有一些更深入的用法,属于调优部分,不再多讲。
    这个工具还有很多的小功能,非常实用的亮点,大家可以在使用过程中不断发现。
    2.TOAD
    与上一个工具不同,这个工具更侧重于DBA管理功能,要说写代码的支持,我觉得还是上面的工具更人性化。
    作为开发人员,在TOAD里,我们可以做以下几个工作:
    A.导入导出功能
    TOAD的导入导出功能,实际上也是调用了Oracle自己的EXP/IMP功能,只是加上了UI界面,操作更加友好,可以实现更好的交互,因为使用命令行方式,交互很容易出错。在TOAD的菜单“DBA”中,可以找到导入和导出的功能,先看一下导出:
o15_o.JPG

    首先要指定导出方式,一般来说,常规的备份是按用户来备份,即第二个,其它各有个的功能,可以查询一下相关的文档。然后进行下一步:
o_o16.JPG

    选中需要备份的用户后,把它们放入右侧的框中,一次可以选择多个用户,然后再进行下一步,如果没什么特别需要,全按默认参数处理即可:
o_o17.JPG

    以此类推,一直点下一步,即可实现数据的导出。这种导出一般作为数据库的逻辑备份策略,与rman备份可以互为补充。
    导入的方式与导出基本相似,操作方式也相似,就不再多讲了,总之,用TOAD的导入导出会比较方便。 
    B.表分析
    从理论上讲,我觉得这个功能应该是DBA来操作的,但是程序员如果有权限,也可以自己操作,不过最好是在测试环境,对于正式环境,发现问题,需要申请DBA进行协助,因为有些不当的操作,会破坏原有的执行计划,甚至更严重的后果。
    说到这里,要说一下为什么要进行表分析。如果要回答这个问题,首先要说一下Oracle是怎么进行SQL查询的:查询中有一个步骤就是对所需要的SQL进行分析,得出正确的执行计划。在上一个工具中,我们已经提到怎么样检查执行计划,现在要做的就是当发现执行计划不对的时候,我们做一下表分析,有可能再检查执行计划就对了(只是有可能),因为执行计划需要依靠表分析的信息。
    这个功能位于Tools目录的Analyze All Objects,如下图:
o_o18.JPG

    点击后,出现新的窗口,对于程序员来说,我们只需要分析我们自己的表即可。
o_o19.JPG

    点击后,就把当前用户自己的所有表列出为供选择了,如下图:
o_o20.JPG

    然后选中左侧的复选框,点绿色的箭头,就开始了表分析,一般不做任务参数调整的话,会很快完成,并且在工具栏上有进度指示,大家可以自己看一下。     TOAD里的功能实在是太多了,大家有权限的话,自己试一下吧,记住不要在生产环境做测试噢。


本文转自Aicken(李鸣)博客园博客,原文链接:http://www.cnblogs.com/isline/archive/2010/04/07/1706109.html,如需转载请自行联系原作者

相关文章
|
6天前
|
SQL Oracle 关系型数据库
【Oracle】玩转Oracle数据库(一):装上去,飞起来!
【Oracle】玩转Oracle数据库(一):装上去,飞起来!
41 7
|
24天前
|
Oracle 关系型数据库 数据库
Oracle数据库基本概念理解(3)
Oracle数据库基本概念理解(3)
17 2
|
6天前
|
SQL Oracle 关系型数据库
【Oracle】玩转Oracle数据库(七):RMAN恢复管理器
【Oracle】玩转Oracle数据库(七):RMAN恢复管理器
29 5
|
6天前
|
存储 SQL Oracle
【Oracle】玩转Oracle数据库(二):体系结构、存储结构与各类参数
【Oracle】玩转Oracle数据库(二):体系结构、存储结构与各类参数
31 7
|
Oracle 关系型数据库 数据库
|
1月前
|
Oracle 关系型数据库 数据库
|
2月前
|
开发框架 Oracle 关系型数据库
ASP.NET实验室LIS系统源码 Oracle数据库
LIS是HIS的一个组成部分,通过与HIS的无缝连接可以共享HIS中的信息资源,使检验科能与门诊部、住院部、财务科和临床科室等全院各部门之间协同工作。 
35 4
|
2月前
|
SQL Oracle 关系型数据库
【Oracle】玩转Oracle数据库:装上去,飞起来!
本文是一篇关于Oracle数据库安装和使用的博文摘要。作者以轻松幽默的笔调介绍了自己在实验中掌握的Oracle数据库基本操作,包括使用组件查看命令、配置数据库监听器等。作者也分享了在实验中遇到的一些有趣问题,如SQL语句缺少分号导致的意外错误。此外,作者还强调了登录sys用户和启动实例加载数据库的注意事项,并鼓励读者面对挑战时保持乐观,不断提升自己的能力。整体风格风趣严谨,引人入胜。
339 0
|
1月前
|
关系型数据库 分布式数据库 数据库
PolarDB PostgreSQL版:Oracle兼容的高性能数据库
PolarDB PostgreSQL版是一款高性能的数据库,具有与Oracle兼容的特性。它采用了分布式架构,可以轻松处理大量的数据,同时还支持多种数据类型和函数,具有高可用性和可扩展性。它还提供了丰富的管理工具和性能优化功能,为企业提供了可靠的数据存储和处理解决方案。PolarDB PostgreSQL版在数据库领域具有很高的竞争力,可以满足各种企业的需求。
|
1月前
|
Oracle 关系型数据库 数据库
如何利用 Docker 安装 Oracle 数据库
【2月更文挑战第14天】
89 0

推荐镜像

更多