这个事针对开发的
Toad For Oracle Develop产品介绍
 目   录
TOAD FOR ORACLE DEVELOP产品介绍 1
1. TOAD简介 3
版本划分 3
2. 数据库开发最佳实践 5
2.1. 开发 6
2.1.1. 项目管理(Project Manager) 6
2.1.2. 模式浏览(Schema Browser) 7
2.1.3. 高级编辑器(SQL Editor) 8
2.1.4. 调试(PL/SQL Debugger) 9
2.1.5. 代码分析(Code Profiling) 10
2.1.6. 代码审核(Code Xpert) 12
2.1.7. 团队开发(Team Coding) 12
2.1.8. 代码测试(Code Tester) 13
2.1.9. 知识库(Knowledge Xpert) 14
2.2. 优化(SQL OPTIMIZER) 15
2.2.1. 分析SQL 15
2.2.1.1. SQL Scanner 15
2.2.1.2. SQL Inspector 16
2.2.1.3. Impact Analysis 17
2.2.2. 优化SQL 18
2.2.3. 优化索引 18
2.3. 验证 19
2.3.1. Bench Factory 20
3. 其它ORACLE产品简介 21
3.1. SPOTLIGHT ON ORACLE 21
3.2. PERFORMANCE ANALYSIS 22
3.3. SPACE MANAGER WITH LIVEREORG 22
3.4. SHAREPLEX 23 
1. Toad简介
什么是Toad,它能做什么啊?
Toad是业界排名第一的数据库开发及管理工具。每天,全球有数十万数据库从业人员使用Toad高效并准确的完成开发与管理工作。Toad简单的功能导航,无缝的工作流安排,先进的SQL编辑、调试、优化功能和数据库管理能力使其成为从数据库初学者到资深专家各种层次技术人员的理想工具。
Toad可以给用户带来如下收益:
 保证代码的质量,以减少由于代码bug导致的风险,用于满足高等级的服务需求。
 保证代码性能,使代码运行更快,降低产品的响应时间和业务中断带来的风险。
 确保可维护性,使开发人员更好地了解数据库的代码,减少代码变化和额外的开发导致的风险。
 增强合作,使团队成员共享模板、脚本和代码,确保代码标准化、一致性,从而减少重复劳动。
 通过任务的自动化和定时执行,提高生产效率。
根据统计显示,Toad可以帮助DBA和开发人员提高100%生产效率,并降低50%的开发及管理成本。
目前Toad支持ORACLE、DB2、SQL SERVER、MYSQL 四种数据库。版本划分
面对不同层次的数据库开发和管理需求,Toad for Oracle共分为五个大版本,不同职责开发人员和DBA可以根据自己的使用要求选择最适合自己的版本。
各个版本之间的关系如下图:
 针对不同的用户角色,可以参考下图,选择对应的toad版本使用:
 
通常情况下,我们推荐开发人员统一选择Toad Development Suite for Oracle(开发套装版),因为它包含了数据库开发中的四个关键特性:代码可维护性、代码质量、应用的性能和团队协作开发。这些特性可以确保开发人员写出具有更高性能和更高质量的代码,并把代码bug降到更低。
2. 数据库开发最佳实践
Quest Software的Toad for Oracle提供完整的Oracle数据库性能保障解决方案,包括开发、优化和验证三项主要内容。
 2.1. 开发
 单个开发人员可以通过Quest Software 提供的上述工作流程减少开发时间、提高开发效率,优化代码质量。具体工作内容包括:
2.1.1. 项目管理(Project Manager)
Project Manager简洁地定义项目工作的所有资源,包括数据库对象、连接、脚本、文件,在所有的Toad用户中共享。当软件可以交付给生产系统使用时,开发团队简单地将Project 文件发送给QA和文档团队既可。通过Project Manager,项目经理配置所有的信息,包括网络和数据库环境,不需要其他人员参与。 而开发人员将精力集中在应用开发方面,新的项目组成员通过共享的统一文档能够快速启动。
使用Project Manager组织项目工作区,以树状结构组织项目有关的文档、代码、数据库对象、任务、代办事项等信息。可以实现:数据库对象管理、代码与文档管理、任务管理。
带来的好处:
• 在Toad一个应用中,完成所有的工作
• 开发团队中文档的共享
• 不再需要反复为ftp、数据库连接输入密码…让PM做好这一切
 
2.1.2. 模式浏览(Schema Browser)
模式浏览器(Schema Browser)可以快速访问数据字典,浏览数据库中的表、索引、存储过程。Toad 提供对数据库的快速访问,使用极为方便,用户界面简洁,结构安排合理。当点击一个单独的数据库对象,Toad立即显示此对象的详细信息。例如,点一个数据库的表,所有和此表相关的索引、约束、存储过程、SQL语句、表中的数据以及和其他表的相互引用关系都在同一界面显示出来。所有针对数据库对象的操作都可以在Schema Browser一个窗口中进行。
 
图 Schema Browser以“Multi Line Tab”方式显示所有数据库对象
2.1.3. 高级编辑器(SQL Editor)
TOAD 的高级编辑器可以编写编辑、运行和调整SQL语句和PL/SQL程序。
TOAD 的高级编辑窗口包括很多提高开发人员编写SQL语句的特性。例如,简单地生成代码模板,在编写SQL前自动发现包的内容和列的名字等等。SQL编辑器包括一个编辑窗口和运行结果窗口,允许开发人员在编辑的过程中测试运行结果。SQL编辑器中不仅包括标准的编辑命令,也包括一些增强的功能,如快速查询表中的字段、将SQL语句的内容格式化等等。这个窗口可以处理大到4GB 的内容,对大的开发项目来说非常有用。便捷的书签可以让开发人员非常容易地找到相关位置。运行结果窗口提供用户定义的配置功能,支持LONG 和LONG RAW列,可以将数据卸出到磁盘、打印数据、编辑数据等等。
 
在SQL编辑器中选择部分SQL代码片段进行执行
对于存储过程和触发器,Toad提供语法标识、错误标识和其他很多易于使用的功能,如在弹出窗口显示表名、列名和Oracle函数。和其他的 PL/SQL 编辑工具不同,TOAD 允许在一个文件中操作多个数据库对象,可以编译一个对象、编译多个对象、编译到当前光标、从光标开始编译。在运行出现错误时,存储过程停止到有问题的语句。用户可以使用快捷方式或模板来快速编写PL/SQL,也可以根据需要生成自己的模板。使用Toad可以非常方便地进行编辑工作,可如设置书签、取消注释、格式化SQL语句等等。
2.1.4. 调试(PL/SQL Debugger) 
Toad 提供强大易用的PL/SQL调试功能,可以节省开发人员在大型项目中用于开发和测试的宝贵时间,提高应用开发的质量。在存储过程开发的过程中,Toad可以逐行编辑、调试和运行代码。运行时可以根据需要输入参数,观察相关参数的变化来检查存储过程的正确性。在调式过程中,Toad 可以通过窗口显示所有的断点、参数、调用堆栈和输出参数。使用Toad,非常容易检测到存储过程的错误,开发人员可以一步一步运行PL/SQL语句来识别问题。调试会话可以和其他程序会话同时进行。
 
图:强大的Debug功能是调试SQL的利器
2.1.5. 代码分析(Code Profiling)
Profiler是ORACLE PL/SQL 的一个调试优化跟踪方案。可以为每一行代码进行性能统计,以帮助评估SQL语句的性能问题时。因为不需要生成和读取服务器端的跟踪文件,所以分析也比较快速,缺点就是命令行的方式,不便于使用。Code Profiling就是Toad对Oracle Profiler技术的可视化包装,对SQL语句的跟踪统计,十分的直观与方便。
 
  
2.1.6. 代码审核(Code Xpert)
CodeXpert可以按照一套预定义的最佳规则集对PL/SQL代码进行检验,对不符合规则的代码提出建议,以此来提高代码质量。Code Xpert检查的内容包括有效性、正确性、可维护性、可读性和程序结构。并且给出相关的检查报告和代码复杂性分析结果。
Toad 提供代码标准化的功能,可以通过预先定义好的选项,进行代码的标准化。除了Toad预定义的最佳规则外,用户还可以定义添加自己的规则集。
 图: CodeXpert对存储过程进行规则检查后,给出检查结果
2.1.7. 团队开发(Team Coding)
Team Coding可实现开发团队间的协作。Team Coding允许多个开发者同时读取源代码和数据库对象,并通过有效的代码锁定,防止对代码和数据库对象的同时重写。同时,Team Coding 支持第三方版本控制系统,如 Merant PVCS、Microsoft Sourc¬eSafe、Rational ClearCase 和 StarBase 的 Star Team 等多种产品。针对版本控制系统(VCS)管理下的数据库模式或对象,Toad 可以从VCS知识库中取出源代码,快速比对以确定VCS代码是否最新;若在数据库上存在新的版本,则向用户发出报警。开发者完全可以信赖 Toad 的变更管理机制。 
2.1.8. 代码测试(Code Tester)
市场上第一个也是唯一的自动化PL/SQL测试工具,可以进行单元测试和回归测试。 由鼎鼎大名的 Steven Feuerstein设计,可以帮你实现完整的代码测试,将BUG消灭在开发阶段。
它不需要编写代码,就可自动返回结果,并提供丰富的报告。
 2.1.9. 知识库(Knowledge Xpert)
Knowledge Xpert™ for PL/SQL为开发人员提供编写高质量代码所需要的最快捷的方法。它是一个功能强大的基于Windows的技术资源库,它覆盖Oracle PL/SQL 开发的整个生命周期,上千种专题提供编写高质量代码所需要的背景信息、最好的经验和程序范例。 
 由包括Mike Ault、Steven Feuerstein、Hugo Toledo 等在内的业界专家开发。
 提供上千种专题,覆盖PL/SQL 编程的整个生命周期,从基本的专题到高级的PL/SQL 编码技术。
 提供一个功能强大的代码库,包括超过 1,000预先设计好的PL/SQL procedures 和 functions,减少大量的开发时间。
 覆盖多个版本 (Oracle 7.3 – 10g),不需要查询不同的手册获得答案。
 快速的Oracle 反馈信息,使用户可以轻松查询不同Oracle版本(包括Oracle 9i)的25000多种错误信息。
 与TOAD的无缝集成使用户可以随时找出问题及解决方案。
2.2. 优化(SQL Optimizer)
SQL语句优化是保障应用系统性能最重要的一个环节,据 Forrester Research分析,60%的性能问题都是因为SQL语句引起的,30%的性能问题和索引使用相关,而其他因素只知占到10%。
 
Quest Software提供全面的SQL优化解决方案SQL Optimizer,采用数据库开发最佳实践,主动地从原代码和内存中识别有问题的SQL语句,自动重写和优化SQL,进行SQL语句的优化。
2.2.1. 分析SQL
2.2.1.1. SQL Scanner
使用非介入的方式,在不实际执行SQL语句的条件下,从源代码文件中或数据库对象中鉴别出问题SQL,并评判出性能问题的可疑等级。 
 2.2.1.2. SQL Inspector
提供了一种简单易用的方式,在数据库SGA区中发现曾经执行过的和正在执行的有问题的SQL语句。用户也可以自定义判别标准,找出自己认为有性能问题的SQL语句。  
2.2.1.3. Impact Analysis
通过记录多个SQL语句的执行计划和执行成本的改变,评估数据库配置调整对SQL语句的影响。用户既可模拟改变数据库配置,通过记录对一些SQL语句的影响,预测出数据库真实改变后可能引起的后果。
 2.2.2. 优化SQL
SQL Optimizer在充分分析SQL源代码的基础上,运用内建的人工智能(AI)技术,穷尽所有的可能的SQL改写方法和Oracle数据库的优化提示(hint),输出一份语意等价、语法正确的SQL语句列表。对列表中所有的SQL语句测试执行之后,就可以得到最适合当前数据库环境的SQL语句。
 2.2.3. 优化索引
Global Index可以分析SQL语句的语法和SQL语句中表和表之间的关系,给出最适合的备选索引建议。所有建议的索引在做评估执行时,都不需要在数据库上真正建立,因此不会对数据库应用造成影响。 
 
2.3. 验证
用户活动的增加,应用的变化和平台的改变都会对数据库的性能产生影响,一个可行的解决方案是进行压力测试。
 
2.3.1. Bench Factory
Bench Factory for Database是一种压力测试解决方案,用于应用上线前的压力测试,能够向数据库系统施加一般测试方法无法提供的巨大负载,这样在试验环境下,就可以得到应用系统在崩溃前的容量和性能瓶颈资料,为减少系统上线后的宕机次数,降低损失提供前瞻性测试。
使用Bench Factory for Database:
 可以获知数据库系统的最大吞吐量和处理能力。
 使用少量的硬件资源,就模拟出数以千计的并发用户。
 找出应用系统在随用户增加时出现的不平衡负载点。
 发现系统性能拐点,薄弱的衔接点和瓶颈。
 量化应用和服务期的性能指标
Bench Factory在测试过程中,收集了大量的统计数据,包括服务器吞吐量(按事务/秒,字节/秒等计量)和每个施加负载的测试工作站产生的事务统计,所有的测试结果都被收集存储于资料库中,用于测量,分析和预测系统的容量。
Bench Factory还可以与其它Quest软件公司的产品进行集成,用于IT部门快速测量系统处理能力与性能,以便于对系统进行优化,降低用户服务响应时间。例如,Bench和Spotlight配合,由Bench产生并发负载,由Spotlight发现和诊断问题,在系统应用上线前,找到系统瓶颈、低效原因与应用缺陷。
 图 Bench运行机制
3. 其它oracle产品简介
3.1. Spotlight On Oracle
Spotlight是一个强有力的Oracle数据库实时性能诊断工具,提供了一个直观的、可视化的数据库活动展现。Spotlight可视化展现性能瓶颈,一旦某个指标超出可接受的阀值的话。而且,通过下钻功能,DBA可以简单、快速地追查性能瓶颈的底层原因。
Spotlight On Oracle特色及主要功能
1. 实时监控诊断最佳工具
Spotlight on Oracle是Windows架构的Oracle 数据库监控诊断工具,它将所有监控下的数据库组件转化为图形显示,Spotlight on Oracle还提供详尽数据库动态,包括数据库各组件间流动速度的实时图解,使用者活动、I/O活动、及操作上经常使用 (Overhead) 等 Database Instance 主要统计数据与量测项目(metrics)的数据库图表,让DBA不须24小时stand-by,就能迅速发掘问题所在,并透过Spotlight的问题诊断与解决方式建议,及早排除数据库运作瓶颈或问题。
2. 自动问题侦测与实时解决
Spotlight on Oracle的数据库行为模式记录,主要在建立一个正常的数据库活动基准,并自动设定活动量的临界点,当数据库发展达临界点时,DBA就会看到或听到警报及声响的提醒。拥有自动化的侦测与记录,DBA可以提前获知活动量最大的使用者、SQL Statement、Lock&Latches、Wait Events、Disk I/O等数据,在问题转为危机前,实时排除数据库瓶颈。
3. 数据库活动的实时显示
监控组件包括I/O、database files、the SGA及Oracle Process。 这些组件移动间的脉冲(Pulse)代表数据传输的相对速率及数据库内的活动程度。Spotlight on Oracle可以透过数据库行为模式记录,自动将数据库调整为指定的工作量(workload),如此流动率就可调整为数据库特定效能特性。
4. 详细的 Session-Tracking 功能
居首位的 Session 及Session Details 屏幕,让DBA人员迅速确定谁是最耗资源的使用者。多层控制板 (Panel) 显示有关Session中使用者活动每一方面信息的详细数据,这些数据可让我们观看目前及前一个 SQL、资源等待、Lock及过度的活动。
3.2. Performance Analysis
Performance Analysis(以下简称PA)是QUEST用来7X24收集Oracle性能指标、分析Oracle性能的强有力工具。PA关注于数据库的负载分布和Top SQL性能上,通过增强的诊断特征和特别设计的用户界面,PA使得DBA对Oracle性能的管理变得更快、更容易、更有效。
PA的主要特征如下: 可以根据当前系统运行状况自动设置性能基线。可以获取任意时间段的性能建议。可以获得每个SQL语句执行的响应时间及相应的性能信息。系统信息的收集独立于ORACLE系统,这样能保证收集到任何时候的Oracle性能数据,即使当Oracle面临巨大的性能压力时。可以获取当前系统的负载视图。可以获得任意时间段的SQL语句的信息。可以从操作系统用户、数据库用户、SQL语句、Action、命令类型、终端等各个角度分析系统在某个时间段的负载情况。支持不断深入的下钻功能。PA通过一个名为StealthCollect的代理程序收集信息,PA本身可以理解成StealthCollect的客户端,用来图形化和以报告形式反映数据库的运行状态。
3.3. Space Manager with LiveReorg
Space Manager with LiveReorg是一个优化Oracle空间使用,并且达到优化Oracle性能目的的完整解决方案。通过SM,可以收集统计信息、可视化空间使用、检测空间问题、重组或重构对象、对表或索引进行分区、规划空间增长等。SM的空间优化理念:
1. 空间问题探测:异常报告和表空间地图(Tablespace Map)使DBA能快速发现空间使用问题,例如行链接、过度的碎片、浪费的空间等。
2. 空间问题解决:通过重组管理器(Reorg Manager)和行链接修复(Chained Row Repair)可以重组或修复探测到的空间问题。所有的重组、修复和分区工具的设计目标都是最大化收益并且最小化对系统的影响。特别是LiveReorg的重组方式,可以使得在不影响应用运行的情况下完成对象重组。
3. 空间容量规划:容量规划报告使DBA能够基于历史空间增长来预测未来空间的需求。
3.4. SharePlex 
SharePlex是Quest公司为关键业务系统推出的一个完全的数据库复制软件。它一个是实时的、冗余、流程化的数据库复制方案,专门为Oracle数据库设计和开发。SharePlex for Oracle采用业界内独特的技术、领先的产品结构确保企业实现其高可用性和高性能的管理目标。
SharePlex for Oracle 是一种基于Oracle Redo Log的复制解决方案。可以将源系统的数据实时复制到目标系统,从而建立一个可以被访问的即席查询和报表系统。目标系统可以是源系统的全集和子集。通过将查询和报表系统放在不同的数据库实例中运行,可以平衡服务器负载并提高OLTP类生产系统的性能。一方面,可以减少OLTP应用和查询报表应用之间的磁盘I/O冲突,提高OLTP应用的效率。另一方面,SharePlex支持不同模式间的复制。可以分别面向OLTP和查询系统的使用特点来进行设计,如建立索引,设置数据库表的参数等等。
下图所示为SharePlex for Oracle的基本结构。
 
数据捕获
SharePlex for Oracle中由捕获进程来收集发生变化的数据,此进程的独特之处在于它几乎不对生产数据库带来任何开销。
此捕获过程中完成的操作为:
• 捕获进程从Oracle redo logs中读取信息,因此复制过程不会给生产数据库实例带来性能问题。
• 只有发生改变的数据被传输,而不是Redo Logs中的全部信息,因此SharePlex的网络负载非常小。
• 尽管需要在Oracle数据库中安装少量的对象用来存储有关复制的一些基本信息,但源数据库不需要参与到数据捕获和传输过程中。
• SharePlex的捕获进程不但可以读取在线的Redo Logs,而且可以读取Archive Log甚至当Archive Log被移动到其它设备上时,SharePlex会发出提示信息。正是这种能力极大地增强了系统的冗余功能。例如,如果捕获进程由于某种原因被停止,当它重新启动后数据同步不会受到影响。
捕获进程连续监控Redo Logs用以捕捉变化信息。当Redo Logs中出现一条新记录时,SharePlex判断其是否属于被复制对象,如果是,则SharePlex为该条记录加入用于决定此记录将被发向那个主机的地址信息并将包含地址信息的记录存放到自己的队列中,存储队列存在于数据库之外。发生改变的数据被立即处理并被发送到目标系统中而不等待提交或回滚动作的完成,因为等待提交或回滚完成将带来延迟。当提交或回滚信息被写入Redo Logs时,它们也将被发送到目标系统中,从而在目标系统中完成相对应的操作。
数据传输
SharePlex结合其自己的网络协议和TCP/IP协议来完成源和目标系统之间的数据传输。其相关的进程确保数据的正确接收和网络数据包的正确顺序,从而提供网络传输冗余,确保数据的完整。整个数据传输过程无需其它的中间件。
应用数据
应用进程将传送到目标系统中的信息转化为SQL语句,然后采用标准的SQL*Plus方式将SQL语句发送给Oracle执行。
SharePlex能够实现精确复制的一个重要原因就是其能保证从源数据库到目标数据库的Oracle读一致性,不但按顺序复制事务,而且也复制上下文信息,将源数据库中发生变化的全部事务信息都复制到目标数据库中。