Toad快速入门
一、 Toad功能综述
在 Oracle 应用程序的开发过程中,访问数据库对象和编写SQL程序是一件乏味且
耗费时间的工作,对数据库进行日常管理也是需要很多 SQL脚本才能完成的。
Quest Software为此提供了高效的 Oracle应用开发工具-Toad(Tools of Oracle
Application Developers)。在Toad的新版本中,还加入了 DBA模块,可以帮助
DBA完成许多日常管理工作。它最大的特点就是简单易用,访问速度快。使用
Toad,我们可以通过一个图形化的用户界面快速访问数据库,完成复杂的SQL和
PL/SQL代码编辑和测试工作。Toad由 Oracle开发专家专门为开发人员而设计,是
一个功能强大、结构紧凑的专业化 PL/SQL开发环境。
Toad 主要具有如下特点:
模式浏览:
模式浏览功能可以让我们快速访问数据字典,浏览数据库中的表、索引、存储过
程。Toad 提供对数据库的快速访问,使用极为方便,用户界面简洁,结构安排合
理。当我们点击一个单独的数据库对象,Toad立即显示此对象的详细信息。例
如,当我们点一个数据库的表,所有和此表相关的索引、约束、存储过程、SQL
语句以及和其他表的相互引用关系都在同一界面显示出来。为了简化操作,用户可
以在浏览窗口操作数据库对象。
SQL 编辑器:
SQL 编辑器的主要功能是编辑、运行和调整 SQL语句。TOAD 的高级编辑窗口包
括众多的特性来提高开发人员编写SQL语句的产品化程度。例如,简单地生成代
码模板,在编写 SQL前自动发现包的内容和列的名字等等。
SQL 编辑器包括一个编辑窗口和运行结果窗口,允许开发人员在编辑的过程中测
试运行结果。SQL编辑器中不仅包括标准的编辑命令,也包括一些增强的功能,
如快速查询表中的字段、将 SQL语句的内容格式化等等。这个窗口可以处理大到
4GB 的内容,对大的开发项目来说非常有用。便捷的书签可以让开发人员非常容
易地找到相关位置。在运行结果窗口可提供用户定义的配置功能,支持 LONG 和
LONG RAW列,可以将数据卸出到磁盘、打印数据、编辑数据等等。
存储过程编辑器:
存储过程编辑器的主要功能是编辑、编译、测试、调试存储过程和触发器。TOAD
提供语法标识、错误标识和其他很多易于使用的功能,如在弹出窗口显示表名、列
名和 Oracle函数。和其他的 PL/SQL 编辑工具不同,TOAD 允许在一个文件中操作
多个数据库对象,可以编译一个对象、编译多个对象、编译到当前光标、从光标开
始编译。在运行出现错误时,存储过程停止到有问题的语句。用户可以使用快捷方
式或模板来快速编写PL/SQL,也可以根据需要生成自己的模板。使用 Toad可以非
常方便地进行编辑工作,可如设置书签、取消注释、格式化 SQL语句等等。 PL/SQL Debugger选项:
Toad 提供简单易用的 PL/SQL 调试功能,可以节省开发人员在大型项目中用于开
发和测试的宝贵时间,提高应用开发的质量。在存储过程开发的过程中,Toad可
以逐行编辑、调试和运行代码。运行时可以根据需要输入参数,观察相关参数的变
化来检查存储过程的正确性。在调式过程中,Toad 可以通过窗口显示所有的断
点、参数, 调用堆栈和输出参数。使用 Toad,非常容易检测到存储过程的错误,开
发人员可以一步一步运行 PL/SQL语句来识别问题。调试会话可以和其他程序会话
同时进行。
SQLab Xpert Option:
帮助开发人员优化SQL,为他们提供各种优化模式下SQL执行计划,并且能够给
出优化的建议,能够比较各种模式下实际的 SQL运行结果,帮助开发人员真正高
速地开发高效地代码。
Toad 还可以外挂一些别的产品,比如 PL/Formatter, RevealNet Knowledge Base ,
SQL Impact等,这些都能够和 Toad紧密集成,共同提供了一个完美的集成开发环
境。新版本还新增加了DBA模块,更加拓广了Toad这个产品的适用范围。
二、系统要求:
客户端:
ü Windows 95 / 98 / NT/2000中英文均可
ü 完整安装的 SQL*Net 2.0或者 Net8
ü 磁盘:一般安装需要 20M左右的空间,根据所选择模块的不同和安装方式的不
同,最少也要 5M的磁盘空间(从网络服务器读取)
ü 内存:Windows 9x/Me:16M 内存;Windows NT/2000: Min 32M]
ü Tuning模块需要额外的 25M空间
服务器端:
ü Oracle 7.3 或者更高,在任何硬件平台上。
ü 需要一个 DBA用户帐号
三.安装:
1. 三种安装方式的选择:
a) TOAD and Personal Configuration Files to PC
默认安装选择,完成一个完整的 Client端的安装,把所有需要的文件拷贝到本地
Toad目录。
绝大多数用户应该选择使用这个安装方式。
b) Personal Config Files to PC, read TOAD from Network Server
从网络服务器读取Toad程序,在本地计算机安装一些自定义的文件,并且创建到
服务器文件的快捷方式,一般不推荐使用这个方式,而且要求网络服务器已经配
置。 c) TOAD to Network Server
把 Toad安装到网络服务器上,以便这样别的用户能够进行Personal Config Files to
PC, read TOAD from Network Server这种方式的安装。
2. 根据需要使用到的特性,需要运行一些脚本(都在 Toad\temps目录下)
ü 如果需要用 Toad来查看执行计划,必须运行脚本PrepToad.sql或者notoad.sql
n 如果希望专门建立一个 Toad 用户来存放 Toad需要使用的对象的话,就运行
preptoad.sql。
n 如果希望在当前连接用户模式下建立 toad需要使用的对象的话,就运行
notoad.sql。
n 注意,如果是选择了专门建立 toad这个用户的话,需要先修改一下脚本,指定用
户的默认表空间和临时表空间。
ü 需要使用 Oracle8i 的Profile analyzer,必须运行 ToadProfiler.sql
ü 需要加强 Toad的安全性,必须运行ToadSecurity.sql
四、Toad使用快速入门
1. Schema Browser:
Schema browser是 Toad的极为有特色的模块。在 schema browser的帮助下,可以
方便的浏览数据库内部的各类数据库对象,比如表,索引,序列,存储过程等,而
且可以方便的倒出 DDL语句和进行各种修改,重建工作。定位到某一类对象上,
这列对象允许的操作都会自动列出来。
特色:
l 支持 Oracle数据库里面所有对象的新建、查看、修改,集成了几乎对所有数据库
对象的管理所需要的功能。
l 按照 模式->对象类别 ->对象->对象可操作属性 -> 对象本身的详细信息和对象相
关的信息 来组织,非常有条理,容易定位对象,也能够看到所有你需要的对象的
相关信息。
l 对于表:
i. 完备的建表向导,不用输入冗长的语法,更加全面地替你考虑。
ii. 可以修改表的各种逻辑和物理属性,修改列的属性,增加列,删除列(在
Oracle8i里面),修改表的物理存储属性,Truncate,Drop等。
iii. 可以生成建表的完整的 DDl语句,包括存储信息,权限信息,约束,索引和触
发器等,而这些手工很难做到。
iv. 可以方便的对表进行分析,查看表地所有信息,可以有条件的倒出表里面的数
据,并且保存为sql语句。
v. 可以方便的对表进行重组,可以完成exp/imp作不到的事情,而且更少地人工参
与,更加安全。
l 对于视图,存储过程:
i. 可以保存建立视图、存储过程的语句为文本,
ii. 重新编译失效的视图,存储过程,修改视图的定义语句等。方便的查看存储过
程的代码,相互依赖关系,权限信息等保存为文本等。 l 回滚段,
i. 简洁明了的 online,offline状态,方便地online/offline操作
ii. 详细的回滚段物理信息和当前状态。
iii. 可以方便的修改物理存储属性
l 表空间:
i. Tablespace Map;直观的显示数据物理的在表空间上的分布
ii. 直观的查看各个表空间的利用率、剩余空间、破碎情况等信息
iii. 可以进行各种 alter操作:online, offline, 增加数据文件,改变数据文件大小,改
变物理存储属性等
l 对其他数据库对象也有完备的操作支持。
2. SQL Editor:
a) 激活 SQL Editor的三种方式:
i. 连接到数据库之后,Toad自动打开SQL Editor这个窗口。
ii. 点击总工具栏上最左边的那个按钮
iii. 从菜单栏:Database -> SQL Editor
b) 特点:
l 允许同时打开多个编辑窗口,同时编辑多个 SQL语句
l 支持同时连接到多个数据库,同时对多个数据库进行操作
l 允许编辑 SQL,PLSQL,JAVA,HTML和文本
l 使用书签功能,可以在大量SQL语句里,快速定位某个语句所在位置
l SQL Editor本身具有强大的编辑功能,非常方便编辑 SQL语句。
l 强大的快捷键支持和工具栏快速按钮的支持,更加高效编写(很多快捷键可以自己
定义,在 View ->options ->SQL Editor里面)
l 能够根据前面的条件,智能推测需要输入的代码,可以做到某种程度的代码智能
填充
l 把鼠标定位到表/视图/存储过程名称之上,按F4,可以打开对象描述窗口,方便
的查看表和视图的定义,存储过程的源代码,
l 非常容易对 SQL语句的分析其执行计划:单击工具栏上的 按钮就可以看到
Explain Plan的结果
l 支持部分 SQL*Plus命令,可以方便的执行大量的为SQL*Plus编写的数据库脚本
l 可以通过 SQLab xpert来对当前 SQL语句进行全面的分析,给出各种合理的调优
意见,只需要单击工具栏上的 Tuning按钮:
l 可以方便的保存,打开和运行SQL脚本
l 支持对查询结果进行修改,
l 可以把查询结果以多种格式保存起来,可以保存为 HTML,纯文本,XLS等多种
格式
l 很容易的得到 SQL函数的列表和用法描述(Show SQL help Window 按钮)
l 可以查看 SQL语句的执行情况:通过下方的AutoTrace窗口 ,看到SQL语句的
实际执行结果和执行效率。 l 支持历史 SQL(F8) :可以方便的查询以前执行过的SQL,不用反复重新输入。
l 可以执行匿名块,存储过程,从下方的窗口看到 DBMS_OUTPUT的结果,如:
3. Stored Procedure Editor
a) 打开存储过程编写器的几个途径:
l 单击总菜单栏上的第三个按钮:
l 点击 Database - > Procedure Editor ,
l 可以通过 Schema browser来调用
b) 一些特点和优点:
1. 强大的自定义设置:从保留字的显示方式,到自动替换,到各种快捷键的定义
等等,用得越熟越顺手。
2.
3. 自动用不同颜色显示 SQL和PL/SQL关键字,语法清晰明了,可根据自己的
习惯来具体定制各类关键字的具体显示方式。可以自定义存储过程得模板,在新建
存储过程的时候,自动生成程序的框架可以方便的调用Schema Browser,把鼠标
定位于某个对象上,F4,Schema Browser打开该对象的详细描述,帮助顺利快速
开发程序。支持代码自动更正,如输入ndf,自动替换成 NO_DATA_FOUND,输
入 the自动替换成 the,类似的自动替换还可以自己修改和添加。
7. 方便的左边行号显示,单击左边行号就可以实现调试断点的增加/删除
8. 对各种快捷键的支持,不但包括常见的编辑操作,还可以有自己定义的
PLSQL块的支持(自己定义快捷方式)。如可以定义CTRL+SHIFT+D:弹出所有
PLSQL Block的类型,可以自己选择。
9. 可以在一个集成开发环境里面,一边编码,一边调试,不用多处切换
10. 方便的同时打开多个存储过程,通过页面快速切换
11. 快速编译存储过程,快速定位错误所在,自己选择是否同时编译依赖的存储
过程
12. 内置对 PL/Formatter,可以用 PL/Formatter对存储过程进行格式化,并且可以
提供存储过程的概要分析和修改建议
PL/Formatter可以对现有的存储过程进行高速的格式化,使所有的存储过程都符合
同样的编写标准,这样既有利于提高程序的可读性,避免不同人写的模块的风格上
的很差异。
PL/Formatter 还有助于提高程序的模块化,增强程序的结构清晰度,增强 SQL的共
用性。
PL/Formatter 还可以帮助完成 PL/SQL和 Oracle版本之间的管理。
13. 内置 RevealNet Knowledge Base,单击鼠标右键就可以打开,快速得到技术上
的支持,解决技术难题
nPL/SQL:
n包含整个开发过程中可能遇到问题的答案
nCode Library:大量的严谨的 PL/SQL代码例子和现成过程,完全源代码提供
n各种错误处理模块可供参考,各类字符日期函数
n包含 1400多个主题
nAdmin:
n解答 DBA日常工作中80%的常见问题,覆盖 2400多个主题
n从网络到性能优化,从备份恢复到Error message,一应俱全
例子:遇到失效的存储过程怎么办?
4. 如何对存储过程进行 Debug?
u 需要 Toad单独的 Debug Option(Standard Version 没有这个选项)
u 要用 Toad对存储过程进行 debug,必须安装Oracle的系统包:dbms_debug,而
且必须安装 Oracle Probe API v2.0 或者更高的版本。
u 集成在 Stored Precedure Editor里面,可以一边编写一边调试,大大提高开发效率
u 打开 Procedure Editor后,Debug菜单激活,可以开始进行 Debug工作。
u 允许对存储过程进行逐行调试、断点调试,也支持对触发器进行调试。
u 可以有断点支持,支持 Watch变量,允许运行时改变变量的值
u 允许对多层调用的 Debug支持
调试步骤具体举例:
1. 点击菜单栏的第三个按钮: ,打开 Procedure Editor
2. 点击 Procedure Editor的菜单栏的 按钮,调出需要调试的存储过程
3. 单击工具栏上的按钮 ,输入需要传入的参数,如果不需要传入参数,可以直接
单击工具栏上的按钮: ,直接开始调试,如下图输入传入参数:
4. 单击菜单栏的按钮: ,可以单步跟踪,也可以定义一个断点,直接运行到断点
在单步执行,在存储过程运行的过程中,当前语句会高亮度显示,并且把鼠标指针
定位到变量上,Toad自动显示该变量的当前值。
5. 可以随时中止程序的执行,只要点Debug ->Halt Execution,或者菜单栏上的按
钮 ,就可以中止程序的执行
6. 当碰到一个存储过程调用另外一个存储过程的时候,可以选择跳过(Step
Over) ,这样就直接运行那个被调用的存储过程,返回调用结果,继续这个存储过
程的调试,也可以选择Trace Into ,这样就打开被调用的存储过程,进一步深入调
试那个被调用的子存储过程。如果需要保持Debug信息,在编译的时候应该选择
Compile Dependencies with Debug Information,就是 Procedure Editor工具栏最右边的那个按钮 。
7. 支持对变量实时追踪:使用 Watch:
可以在运行前,或者运行过程中对某个变量进行实时跟踪:Add Watch,把鼠标定
位到该变量上,然后点击 Debug ->Add Watch At Cursor,该变量就会出现在
Debug状态窗口上,而且实时反应该变量的当前值。如上图中的变量
v_empname。可以运行时刻修改
8. 断点支持:
单击存储过程需要加断点的地方的行号,该行颜色变红,输入参数,单击执行按
钮 ,可以直接运行到断点处,可以不必逐行追踪,更加高效率的进行调试。
Debug Option还支持条件断点,只有当满足条件的时候才会在那个地方停止,否则
就好像不存在这个断点一样继续运行。
?? 注意DBMS_OUTPUT.PUT_LINE的结果只有当程序执行完成以后才会出现,在
程序执行过程中是没有结果的。
4. 如何用 SQLab Xpert对存储过程进行调优?
我们知道,Oralce数据库的优化,最主要的步骤就在于 SQL的优化。而在没有专
门的工具(如Toad)的帮助下,进行 SQL优化是一件非常困难和乏味的事情,并
且需要对 Oracle的深入理解和高超的 Oracle调优技巧。使用 Toad的 SQLab Xpert
Tuning模块,可以使我们普通开发人员也能够非常快速,精确的对 SQL进行专家
级的分析
在 SQL Editor和 Procedure Editor里面,选中需要调试的SQL语句(SQLab Xpert
只能调试Select,Insert, Update,Delete语句),复制到 SQL Editor里面,然后点击工
具栏上的调优按钮 ,Toad会自动打开SQLab xpert 窗口,捕获当前的 SQL语句,
并且把它转化为符合 explain plan格式的语句。
第一次打开 Xpert的时候,Toad会提示你,需要安装一些 Server端的表、视图和
包等对象,可以把表存储到某个指定的表空间(如 Tools)里面。可以简单的按照提
示一步一步做就可以了。如果系统设定不允许Job的话
(Job_queue_process=0),Toad提示有些部件不会现在安装,可以忽略。安装完成
以后,可以选择让某些非DBA用户也可以使用Toad的 SQLab Xpert调优功能。
安装完成以后,Toad会提示你一些关于优化目标方面的问题,你可以选择每次优
化都可以重新设定,或者一次设定,以后一直使用这个设定。当然如果需要,还是
可以更改的,在 SQLab Option xpert的窗口的 Administration和 Preference下面重新
设定。
例子:
下面这个 SQL语句涉及到多表之间的关联,有一定的复杂性,我们可以借助 Toad
的 SQLab Xpert Option来帮助分析:
select a.name. b.name, c.emp_name
from dep a, manager b,emp c
where a.dep_no=c.DEP_NO
and b.manag_id=c.manag_id and c.emp_no=3
我们把这个 SQL复制到 SQL Editor里面,单击上面的调优按钮,Toad打开
SQLab Xpert Option窗口。
如下图:
从上面的图中我们可以方面的看到:在各种优化模式下,该SQL语句的执行计划
分别是什么样的,Toad给出了每一种执行计划的具体每一个步骤,每个步骤的成
本,该表涉及的相关的数据等,如果SQL存取的表还没有经过分析,Toad会以红
色警告显示,并且很方便的帮助你对该表进行分析,收集统计数据,重建索引等,
以有助于优化器作出最好的选择。可以把当前的分析结果保存到它的资料库里边,
以备以后再次调用之需。
我们还可以求助与SQLab 的自动优化功能:点击 Original SQL下面的 auto tune按
钮,Toad会对执行结果按照 tkprof进行分析(当然,这需要你在 initsid.ora里面设
置好 utl_file_dir,如果服务器是在Unix机器上的话,还需要通过 FTP方式得到
Trace文件,有一些小小的设置)。
自动优化非常高效的对所有执行计划进行实际运行比较,并且给出实际执行的时
间的对比,如下图:
我们还可以让 Toad给出实际的优化建议:点击 Original SQL,单击下面的 Advice
按钮,Toad根据对 SQL的分析和执行结果给出合理的建议:
如:
1. 把表和索引分别放到两个不同的表空间,因为我们在创建表,加上约束的时候
没有指定 USING INDEX子句,所以表和索引都建立在了用户的默认表空间上了。
2. 对表 EMP,DEP和MANAGER进行分析,收集最新的统计数据,有利于 CBO
得到最优的执行计划
3. 在合适的列上创建索引:EMP的 manag_id和 dep_no。当表中存在大量的数据
的时候,这样可以大大减少由于全表扫描带来的成本。
5. SQL Modeler:
SQL Modeler可以帮助开发人员很容易的写出各种复杂的SQL语句,只需通过简
单的拖动鼠标,就能够写出复杂的 SQL语句来。
打开 SQL Modeler的几个途径:
i. 菜单栏 Database -> SQL Modeler ,打开窗口
ii. 单击工具栏第四个按钮 ,打开 SQL Modeler窗口
窗口由三个主要部分组成:
n 表选择区域:最右边的那个部分,用来选择 From子句中用到的表。拖动到左边
的区域或者双击就选择了该表。
n 表模型区域:用来图形化的显示选择的表和表之间的关联关系。
n 生成SQL区域:这里显示用图形化方式创建的查询对应的 SQL语句, 在 SQL Modeler里面,还支持对生成的 SQL进行 Explain Plan,调试 SQL的性
能,运行 SQL,看是否得到了希望的结果,保存生成的语句,或者把语句粘贴到
SQL Editor里面。
有了 SQL Modeler的帮助,即使是初级的程序员也能编写出复杂而又高效的 SQL
查询来。
比如下面的例子;
生成步骤:
1. 选出表 emp, dep, manager
2. 用鼠标拖住 emp的 emp_name和 emp_no, dep的 name,manager的name
3. 双击criteria窗口的 emp_no condition列,弹出窗口,输入查询条件,比如
emp_no=3
4. 由于结果里面不希望emp_no出现,双击 emp_no列的 visible,设置为false
5. 这样就出来了需要的查询,现在可以运行查询得到结果,对查询SQL进行分
析,或者在SQL Editor里面打开这个SQL,或者保存为 SQL Model文件,或者再
进一步处理,比如加排序, 汇总等。
DBA方面的功能:
Toad在 DBA日常管理方面的能力是非常强大的,可以帮助 DBA安全快速地完成
许多日常工作,还有Toad特有的一些小工具能完成一些普通方法很难做到的功
能。下面大概讲述了各个常用模块的主要功能:
a) Database Monitor
提供直观的Oracle数据库运行状况,包括下面这些详细信息:
可以看到逻辑IO,物理 IO,各个状态的 session数目,SGA的利用率,共享池的
使用状况,各类事件的等待状况,以及各类事件随着时间的变化情况
b) Instance Monitor
i. 可以用来检查本地tnsnames.ora文件里面定义的所有节点、Listener和数据库的运
行状态和版本等相关信息。
ii. 可以远程启动、关闭数据库(如果设置了password验证方式)
c) Unix Monitor:
i. 可以监控 Unix机器的运行状况比如详细的机器启动时间,CPU利用率,主要的
进程以及这些进程占用的资源,主要的磁盘 IO等。
d) Trace/Kill session
i. 方便的查看所有的连接用户相关信息:比如终端,程序,连接时间等
ii. 对某个用户进行跟踪,查看用户执行的 SQL语句,查看语句的执行计划,
iii. 方便的查阅系统的Lock对象,有没有什么等待别的事务释放锁的情况,并能够
轻易查出等待什么用户的什么事件结束,那个用户执行的是什么 SQL。
iv. 查看回滚段的使用状态,什么用户,什么语句,使用的什么回滚段,多少读写
量等
e) Oracle Parameter
i. 可以方便的查看 Oracle系统的参数:是否默认值,参数作用的简要描述,是否可以用 alter session/alter system来动态改变,对于那些可以动态改变的参数,可以双
击鼠标来进行修改
f) NLS_PARAMETER:
i. 方便的查看 session,instance,database一级的 NLS参数值,
ii. 可以动态修改session的NLS参数值
g) Extents
i. 可以查看某个用户下的表和索引的详细的存储情况,
ii. 发现那些占用大量空间的表和索引,可以考虑使用相应的对策,比如分区
iii. 发现那些即将达到 max_extents的表和索引并可以及时纠正
iv. 发现那些索引和表处于同一个表空间的情况,并可以及时纠正。
h) Tablespace
i. 直观的查看每个表空间的利用率,总空间,已使用空间,剩余可是用空间以及默
认存储参数,和表空间是否需要整理等信息
ii. 查看每个表空间的状态,组成的数据文件, 以及每个数据文件的详细信息
iii. 查看每个表空间里面存在的对象和这些对象的详细存储特性
i) Tablespace Map:
i. 图形化的显示表空间里面各个表/索引所占用的空间,各个 segment的大小,
segment是否连续等信息,非常直观
ii.
j) Server Statistics:
i. 可以非常直观的看到系统总体运行情况,迅速定位系统瓶颈所在
ii. 可以查看系统范围内各类等待事件的状况,查看每个连接会话的状况,
k) Pinned Code:
i. 我们知道,频繁执行的大的存储过程最好 Pin起来,这样可以避免被 Oracle在内
存不足的情况下换出内存,避免动态加载,也避免flush shared pool的时候被清出
内存。
ii. 根据每个模块的大小,执行次数,决定是否要把某个存储过程PIN起来。一个
按钮就搞定了。
l) Control Files:
可以查看当前系统有哪几个控制文件,以及控制文件内部记录的详细信息。
(实际上就是V$CONTROLFILE, V$CONTROLFILE_RECORD_SECTION)
m) Redo Log Manager:
i. 可以方便的查看 LOG的组,当前日志,每个组里面的成员名字,大小,方便的
增加、删除 log组,切换当前日志,对日志归档进行具体的控制。
ii. 可以在这个界面里完成几乎所有的对redo log的操作。
n) Repair chained rows:
i. Chained rows影响系统性能,处于系统性能的考虑,需要把chained rows修复成
普通的表的行。使用 repaie chained rows,就可以比较容易的做到这一点。选择需要
分析的表,然后分析一下,看有没有chained rows,如果有,点击 repair,Toad就帮你把那些 chained rows给修复了。
o) Identify Space Deficits
如果系统出现 1659,1653错误,就是一个不合格的 DBA。但是要即时预见这些错
误,还是有一定的难度的。有了 Toad的这个小工具之后,一点某个表空间,就知
道这个表空间里面的剩余自由空间是否允许任何表能够扩展到下一个 extent。并能
够在发现问题之后,直接改正问题。
p) Estimate Table/Index Size
i. 数据库的物理规划中,表/索引的存储子句的定义是非常重要的,影响系统。但
是没有什么工具的话,要为表定义合理的存储子句也不容易。
ii. 在 Toad里面,专门有工具帮助你合理定义表/索引的存储情况:
1. 自己可以定义将来表中需要存储的数据的数目
2. 多种估计方式:
a) 根据对已有的数据的分析来定义表的大小(最精确,但是比较慢)
b) 根据表定义数据类型来定义表的大小
c) 根据数据字典中以前分析过的数据来估计大小(需要近期分析过该表)
q) Analyze All Tables
i. 基于 CBO的 SQL需要 CBO提供最优化的执行路径来提高程序的执行效率,但
是假如对表进行大量的 DML操作之后,不及时更新表的统计数据,这时候CBO
就不能选择最为有效的执行路径,导致程序执行效率低。
ii. 手工分析表比较麻烦,一个一个做。
iii. 用 Toad的 Analyze Alltables这个工具,可以一次分析整个模式下面的所有表,
有丰富的控制选项,包括是采用估计还是完全,是否同时分析索引,估计的话,采
用多大的百分比等。
r) Rebuild Table
i. 当表中的数据被反复大量的 DML之后,而且 PCTFREE和PCTUSED定义的不
合理的情况下,表可能会变得非常破碎,占用大量的extent,索引也会相当破碎,
导致效率相当低下。
ii. 传统的方式是通过exp/imp来解决这个问题,但是步骤实在比较麻烦,手工操作
也有一定的危险性。
iii. 使用 Rebuild Table工具,轻松搞定,而且可以手工修改一些通过 EXP/IMP无法
修改的参数,比如freelists ,freelists group, tablespace,initial等,还能够更改列的名
字。
s) Relocate Index
i. 我们知道,表和索引一般都需要分开存放到不同的表空间,这样比较便于管理,
性能上也会有一定的提高,因为可以对表和索引同时存取。
ii. 但是实际上很多时候,由于这样那样的原因,常常忽略了索引单独存放这个基
本概念,比如建立主键约束的时候没有加USING INDEX子句,后来 disable/enable
了主键约束/唯一性约束等,都会导致把索引直接存放到和表同一个表空间里面。
iii. 手工发现这些索引,再逐个移动非常麻烦,容易出错,在 Toad里面,就很容易
根据用户/表空间来发现那些不恰当存放的索引,可以批量移动这些索引,并且允许重新定义索引的存储子句。
t) Generate Schema Scripts:
i. 可以用来生成整个用户下所有/部分对象的 DDL语句。可以把结果保存为sql语
句或者保存为 TOAD的自定义格式。
ii. 可以用来复制表结构,(EXP/IMP有非常严重的缺陷,就是从一个大的数据库
倒出的表结构,无法导入到一个小的数据库里面,因为里面包含了原来表的存储信
息,即使选择 rows=N,也要在导入数据库里面占用相当大的空间)
u) Compare Schema:
i. 在开发的时候,有时候同时在几个开发库上开发,但是最后两个库的结构不完全
一样,很难比较
ii. 用TOAD的这个功能,可以对两个数据库的模式(用户)下面的所有对象(包
括存储过程)进行比较,可以选择具体的比较内容。
iii. 可以通过直接打开两个到各自数据库的连接,或者根据 Toad generate schame
scripts生成的文件进行对比。
iv. 可以直接生成同步两个数据库的sql脚本,给出汇总的区别简要和详细报告等。
--------------------------------------------------------------------------------
toad 进门学习
最新推荐文章于 2022-05-02 11:57:01 发布