??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲成a人无码亚洲成www牛牛,国产亚洲精品成人a v小说,亚洲一区二区三区91http://www.tkk7.com/lvdougao/category/6806.html水狐zh-cnTue, 27 Feb 2007 13:43:24 GMTTue, 27 Feb 2007 13:43:24 GMT60MS SQLServer的数据类?/title><link>http://www.tkk7.com/lvdougao/articles/39020.html</link><dc:creator>水狐</dc:creator><author>水狐</author><pubDate>Mon, 03 Apr 2006 13:24:00 GMT</pubDate><guid>http://www.tkk7.com/lvdougao/articles/39020.html</guid><wfw:comment>http://www.tkk7.com/lvdougao/comments/39020.html</wfw:comment><comments>http://www.tkk7.com/lvdougao/articles/39020.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/lvdougao/comments/commentRss/39020.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/lvdougao/services/trackbacks/39020.html</trackback:ping><description><![CDATA[ <ul> <li> <font color="#663300">bit                           整型</font>                   bit数据cd是整型,其值只能是0?或空倹{这U数据类型用于存储只有两U可能值的数据Q如Yes 或No、True 或False 、On 或Off.</li> </ul> <p> </p> <hr /> <p> </p> <ul> <li> <font color="#663300">int                            整型</font>                   int 数据cd可以存储? 231(-2147483648)?31 (2147483 647)之间的整数。存储到数据库的几乎所有数值型的数据都可以用这U数据类型。这U数据类型在数据库里占用4个字?</li> </ul> <p> </p> <hr /> <p> </p> <ul> <li> <font color="#663300">smallint                     整型</font>                   smallint 数据cd可以存储? 215(-32768)?15(32767)之间的整数。这U数据类型对存储一些常限定在特定范围内的数值型数据非常有用。这U数据类型在数据库里占用2 字节I间.</li> </ul> <p> </p> <hr /> <p> </p> <ul> <li> <font color="#663300">tinyint                       整型</font>                    tinyint 数据cd能存储从0?55 之间的整数。它在你只打存储有限数目的数值时很有用。这U数据类型在数据库中占用1 个字?</li> </ul> <p> </p> <hr /> <p> </p> <ul> <li> <font color="#663300">numeric               _数值型</font>             numeric数据cd与decimal 型相?</li> </ul> <p> </p> <hr /> <p> </p> <ul> <li> <font color="#663300">decimal               _数值型</font>             decimal 数据cd能用来存储从-1038-1?038-1的固定精度和范围的数值型数据。用这U数据类型时Q必L定范围和_ֺ?范围是小数点左右所能存储的数字的M数。精度是数点右边存储的数字的位?</li> </ul> <p> </p> <hr /> <p> </p> <ul> <li> <font color="#663300">money                    货币?/font>                  money数据cd用来表示钱和货币倹{这U数据类型能存储?9220亿到9220 亿之间的数据Q精到货币单位的万分之一  </li> </ul> <p> </p> <hr /> <p> </p> <ul> <li> <font color="#663300">smallmoney             货币?/font>                  smallmoney 数据cd用来表示钱和货币倹{这U数据类型能存储?214748.3648 ?14748.3647 之间的数据,_到货币单位的万分之一 </li> </ul> <p> </p> <hr /> <p> </p> <ul> <li> <font color="#663300">float                      q似数值型</font>            float 数据cd是一U近似数值类型,供QҎ(gu)使用。说点数是q似的,是因为在其范围内不是所有的数都能精表C。QҎ(gu)可以是从-1.79E+308?.79E+308 之间的Q意数 </li> </ul> <p> </p> <hr /> <p> </p> <ul> <li> <font color="#663300">real                        q似数值型</font>           real 数据cd像QҎ(gu)一P是近似数值类型。它可以表示数值在-3.40E+38?.40E+38之间的QҎ(gu)</li> </ul> <p> </p> <hr /> <p> </p> <ul> <li> <font color="#663300">datetime                日期旉?/font>          datetime数据cd用来表示日期和时间。这U数据类型存储从1753q??日到9999q?2?1日间所有的日期和时间数据, _C癑ֈ之一U或3.33毫秒 .</li> </ul> <p> </p> <hr /> <p> </p> <ul> <li> <font color="#663300">Smalldatetime         日期旉?/font>          smalldatetime 数据cd用来表示?900q??日到2079q??日间的日期和旉Q精到一分钟 </li> </ul> <p> </p> <hr />   <p></p><ul><li><font color="#663300">cursor                     Ҏ(gu)数据?/font>          cursor 数据cd是一U特D的数据cdQ它包含一个对游标的引用。这U数据类型用在存储过E中Q而且创徏表时不能用?/li></ul><p></p><hr />   <p></p><ul><li><font color="#663300">timestamp                Ҏ(gu)数据?/font>          timestamp 数据cd是一U特D的数据cdQ用来创Z个数据库范围内的唯一数码?一个表中只能有一个timestamp列。每ơ插入或修改一行时Qtimestamp列的值都?x)改变。尽它的名字中有“time”, 但timestamp列不是h们可识别的日期。在一个数据库里,timestamp值是唯一的?</li></ul><p></p><hr /><p></p><ul><li><font color="#663300">Uniqueidentifier        Ҏ(gu)数据?/font>          Uniqueidentifier数据cd用来存储一个全局唯一标识W,即GUID。GUID实是全局唯一的。这个数几乎没有Z(x)在另一个系l中被重建。可以用NEWID 函数或{换一个字W串为唯一<br />标识W来初始化具有唯一标识W的列?</li></ul><p></p><hr /><p></p><ul><li><font color="#663300">char                             字符?/font>              char数据cd用来存储指定长度的定镉Kl一~码型的数据。当定义一列ؓ(f)此类型时Q你必须指定列长。当你总能知道要存储的数据的长度时Q此数据cd很有用。例如,当你按邮政编码加4个字W格式来存储数据Ӟ你知道总要用到10个字W。此数据cd的列宽最大ؓ(f)8000 个字W?</li></ul><p></p><hr /><p></p><ul><li><font color="#663300">varchar                         字符?/font>              varchar数据cdQ同charcd一P用来存储非统一~码型字W数据。与char 型不一P此数据类型ؓ(f)变长。当定义一列ؓ(f)该数据类型时Q你要指定该列的最大长度?它与char数据cd最大的区别是,存储的长度不是列长,而是数据的长度?.</li></ul><p></p><hr /><p></p><ul><li><font color="#663300">text                               字符?/font>              text 数据cd用来存储大量的非l一~码型字W数据。这U数据类型最多可以有231-1?0亿个字符.</li></ul><p></p><hr /><p></p><ul><li><font color="#663300">nchar                       l一~码字符?/font>   nchar 数据cd用来存储定长l一~码字符型数据。统一~码用双字节l构来存储每个字W,而不是用单字?普通文本中的情?。它允许大量的扩展字W。此数据cd能存?000U字W,使用的字节空间上增加?jin)一?</li></ul><p></p><hr /><p></p><ul><li><font color="#663300">nvarchar                  l一~码字符?/font>    nvarchar 数据cd用作变长的统一~码字符型数据。此数据cd能存?000U字W,使用的字节空间增加了(jin)一?</li></ul><p></p><hr /><p></p><ul><li><font color="#663300">ntext                        l一~码字符?/font>    ntext 数据cd用来存储大量的统一~码字符型数据。这U数据类型能存储230 -1或将q?0亿个字符Q且使用的字节空间增加了(jin)一?/li></ul><p></p><hr /><p></p><ul><li><font color="#663300">binary                     二进制数据类?/font>   binary数据cd用来存储可达8000 字节长的定长的二q制数据。当输入表的内容接近相同的长度时Q你应该使用q种数据cd.</li></ul><p></p><hr /><p></p><ul><li><font color="#663300">varbinary                二进制数据类?/font>   varbinary 数据cd用来存储可达8000 字节长的变长的二q制数据。当输入表的内容大小可变Ӟ你应该用这U数据类型?</li></ul><p></p><hr /><p></p><ul><li><font color="#663300">image                      二进制数据类?/font>    image 数据cd用来存储变长的二q制数据Q最大可?31-1或大U?0亿字节?</li></ul><img src ="http://www.tkk7.com/lvdougao/aggbug/39020.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/lvdougao/" target="_blank">水狐</a> 2006-04-03 21:24 <a href="http://www.tkk7.com/lvdougao/articles/39020.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>TOAD 中文文档http://www.tkk7.com/lvdougao/articles/26967.html水狐水狐Sat, 07 Jan 2006 04:30:00 GMThttp://www.tkk7.com/lvdougao/articles/26967.htmlhttp://www.tkk7.com/lvdougao/comments/26967.htmlhttp://www.tkk7.com/lvdougao/articles/26967.html#Feedback0http://www.tkk7.com/lvdougao/comments/commentRss/26967.htmlhttp://www.tkk7.com/lvdougao/services/trackbacks/26967.html目录

一QToad功能lD
二.pȝ需?
三.安装指南
四.快速入?
1Q?Schema browser的用法简?
2Q?SQL Editor的用介l?
3Q?Procedure Editor的用法介l?
4Q?如何q行PLSQL的debug
5Q?如何使用SQLab Xpert优化SQL
6Q?如何使用SQL Modeler来编写查?
7Q?如何使用Toad的DBA斚w的功?/EM>


一?Toad功能lD

在Oracle应用E序的开发过E中Q访问数据库对象和编写SQLE序是一件乏味且耗费旉的工作,Ҏ(gu)据库q行日常理也是需要很多SQL脚本才能完成的。Quest Software为此提供?jin)高效的Oracle应用开发工?ToadQTools of Oracle Application DevelopersQ。在Toad的新版本中,q加入了(jin)DBA模块Q可以帮助DBA完成许多日常理工作。它最大的特点是单易用,讉K速度快。用ToadQ我们可以通过一个图形化的用L(fng)面快速访问数据库Q完成复杂的SQL和PL/SQL代码~辑和测试工作。Toad由O(jin)racle开发专家专门ؓ(f)开发h员而设计,是一个功能强大、结构紧凑的专业化PL/SQL开发环境?
Toad 主要h如下特点Q?
模式览Q?
模式览功能可以让我们快速访问数据字典,览数据库中的表、烦(ch)引、存储过E。Toad 提供Ҏ(gu)据库的快速访问,使用极ؓ(f)方便Q用L(fng)面简z,l构安排合理。当我们点击一个单独的数据库对象,Toad立即昄此对象的详细信息。例如,当我们点一个数据库的表Q所有和此表相关的烦(ch)引、约束、存储过E、SQL语句以及(qing)和其他表的相互引用关p都在同一界面昄出来。ؓ(f)?jin)简化操作,用户可以在浏览窗口操作数据库对象?

SQL ~辑器:(x)
SQL ~辑器的主要功能是编辑、运行和调整SQL语句。TOAD 的高U编辑窗口包括众多的Ҏ(gu)来提高开发h员编写SQL语句的品化E度。例如,单地生成代码模板Q在~写SQL前自动发现包的内容和列的名字{等?
SQL~辑器包括一个编辑窗口和q行l果H口Q允许开发h员在~辑的过E中试q行l果。SQL~辑器中不仅包括标准的编辑命令,也包括一些增强的功能Q如快速查询表中的字段、将SQL语句的内Ҏ(gu)式化{等。这个窗口可以处理大?GB 的内容,对大的开发项目来说非常有用。便L(fng)书签可以让开发h员非常容易地扑ֈ相关位置。在q行l果H口可提供用户定义的配置功能Q支持LONG 和LONG RAW列,可以数据卸出到盘、打印数据、编辑数据等{?

存储q程~辑器:(x)
存储q程~辑器的主要功能是编辑、编译、测试、调试存储过E和触发器。TOAD提供语法标识、错误标识和其他很多易于使用的功能,如在弹出H口昄表名、列名和Oracle函数。和其他?PL/SQL ~辑工具不同QTOAD 允许在一个文件中操作多个数据库对象,可以~译一个对象、编译多个对象、编译到当前光标、从光标开始编译。在q行出现错误Ӟ存储q程停止到有问题的语句。用户可以用快h式或模板来快速编写PL/SQL,也可以根据需要生成自q模板。用Toad可以非常方便地进行编辑工作,可如讄书签、取消注释、格式化SQL语句{等?

PL/SQL Debugger选项Q?
Toad 提供单易用的PL/SQL 调试功能Q可以节省开发h员在大型目中用于开发和试的宝贉|_(d)提高应用开发的质量。在存储q程开发的q程中,Toad可以逐行~辑、调试和q行代码。运行时可以Ҏ(gu)需要输入参敎ͼ观察相关参数的变化来(g)查存储过E的正确性。在调式q程中,Toad 可以通过H口昄所有的断点、参? 调用堆栈和输出参数。用ToadQ非常容易检到存储q程的错误,开发h员可以一步一步运行PL/SQL语句来识别问题。调试会(x)话可以和其他E序?x)话同时q行?

SQLab Xpert OptionQ?
帮助开发h员优化SQLQؓ(f)他们提供各种优化模式下SQL执行计划Qƈ且能够给Z化的Q能够比较各U模式下实际的SQLq行l果Q帮助开发h员真正高速地开发高效地代码?

Toadq可以外挂一些别的品,比如PL/Formatter, RevealNet Knowledge Base , SQL Impact{,q些都能够和Toad紧密集成Q共同提供了(jin)一个完的集成开发环境。新版本q新增加?jin)DBA模块Q更加拓q了(jin)Toadq个产品的适用范围?


二、系l要求:(x)
客户端:(x)
ü Windows 95 / 98 / NT/2000中英文均?
ü 完整安装的SQL*Net 2.0或者Net8
ü 盘Q一般安装需?0M左右的空_(d)Ҏ(gu)所选择模块的不同和安装方式的不同,最也?M的磁盘空_(d)从网l服务器dQ?
ü 内存QWindows 9x/Me:16M 内存QWindows NT/2000: Min 32M]
ü Tuning模块需要额外的25MI间

服务器端Q?
ü Oracle 7.3 或者更高,在Q何硬件^C?
ü 需要一个DBA用户帐号

三.安装Q?
1Q?三种安装方式的选择Q?
a) TOAD and Personal Configuration Files to PC
默认安装选择Q完成一个完整的Client端的安装Q把所有需要的文g拯到本地Toad目录?
l大多数用户应该选择使用q个安装方式?
b) Personal Config Files to PC, read TOAD from Network Server
从网l服务器dToadE序Q在本地计算机安装一些自定义的文Ӟq且创徏到服务器文g的快h式,一般不推荐使用q个方式Q而且要求|络服务器已l配|?
c) TOAD to Network Server
把Toad安装到网l服务器上,以便q样别的用户能够q行Personal Config Files to PC, read TOAD from Network Serverq种方式的安装?
2Q?Ҏ(gu)需要用到的特性,需要运行一些脚?都在Toad\temps目录?
ü 如果需要用Toad来查看执行计划,必须q行脚本PrepToad.sql或者notoad.sql
n 如果希望专门建立一个Toad 用户来存放Toad需要用的对象的话Q就q行preptoad.sql?
n 如果希望在当前连接用h式下建立toad需要用的对象的话Q就q行notoad.sql?
n 注意Q如果是选择?jin)专门徏立toadq个用户的话Q需要先修改一下脚本,指定用户的默认表I间和(f)时表I间?
ü 需要用Oracle8i 的Profile analyzerQ必运行ToadProfiler.sql
ü 需要加强Toad的安全性,必须q行ToadSecurity.sql

四、Toad使用快速入?
1Q?Schema BrowserQ?
Schema browser是Toad的极为有特色的模块。在schema browser的帮助下Q可以方便的览数据库内部的各类数据库对象,比如表,索引Q序列,存储q程{,而且可以方便的倒出DDL语句和进行各U修改,重徏工作。定位到某一cd象上Q这列对象允许的操作都会(x)自动列出来?
特色Q?
l 支持Oracle数据库里面所有对象的新徏、查看、修改,集成?jin)几乎对所有数据库对象的管理所需要的功能?
l 按照 模式->对象cd ->对象->对象可操作属?-> 对象本n的详l信息和对象相关的信?来组l,非常有条理,Ҏ(gu)定位对象Q也能够看到所有你需要的对象的相关信息?
l 对于表:(x)
i. 完备的徏表向|不用输入冗长的语法,更加全面地替你考虑?
ii. 可以修改表的各种逻辑和物理属性,修改列的属性,增加列,删除?在Oracle8i里面)Q修改表的物理存储属性,TruncateQDrop{?
iii. 可以生成的完整的DDl语句Q包括存储信息,权限信息Q约束,索引和触发器{,而这些手工很隑ց到?
iv. 可以方便的对表进行分析,查看表地所有信息,可以有条件的倒出表里面的数据Qƈ且保存ؓ(f)sql语句?
v. 可以方便的对表进行重l,可以完成exp/imp作不到的事情Q而且更少Ch工参与,更加安全?

l 对于视图Q存储过E:(x)
i. 可以保存建立视图、存储过E的语句为文本,
ii. 重新~译失效的视图,存储q程Q修改视囄定义语句{。方便的查看存储q程的代码,怺依赖关系Q权限信息等保存为文本等?
l 回滚D,
i. z明?jin)的onlineQoffline状态,方便地online/offline操作
ii. 详细的回滚段物理信息和当前状态?
iii. 可以方便的修改物理存储属?

l 表空_(d)(x)
i. Tablespace MapQ直观的昄数据物理的在表空间上的分?
ii. 直观的查看各个表I间的利用率、剩余空间、破情늭信息
iii. 可以q行各种alter操作Qonline, offline, 增加数据文gQ改变数据文件大,改变物理存储属性等
l 对其他数据库对象也有完备的操作支持?

2Q?SQL Editor:
a) ȀzSQL Editor的三U方式:(x)
i. q接到数据库之后QToad自动打开SQL Editorq个H口?
ii. 点击dh上最左边的那个按?
iii. 从菜单栏QDatabase -> SQL Editor
b) 特点Q?
l 允许同时打开多个~辑H口Q同时编辑多个SQL语句
l 支持同时q接到多个数据库Q同时对多个数据库进行操?
l 允许~辑SQLQPLSQLQJAVAQHTML和文?
l 使用书签功能Q可以在大量SQL语句里,快速定位某个语句所在位|?
l SQL Editor本nh强大的编辑功能,非常方便~辑SQL语句?
l 强大的快捷键支持和工h快速按钮的支持Q更加高效编?很多快捷键可以自己定义,在View ->options ->SQL Editor里面)
l 能够Ҏ(gu)前面的条Ӟ推测需要输入的代码Q可以做到某U程度的代码填充
l 把鼠标定位到?视图/存储q程名称之上Q按F4Q可以打开对象描述H口Q方便的查看表和视图的定义,存储q程的源代码Q?
l 非常Ҏ(gu)对SQL语句的分析其执行计划Q单dh上的 按钮可以看到Explain Plan的结?
l 支持部分SQL*Plus命o(h)Q可以方便的执行大量的ؓ(f)SQL*Plus~写的数据库脚本
l 可以通过SQLab xpert来对当前SQL语句q行全面的分析,l出各种合理的调优意见,只需要单dh上的Tuning按钮Q?
l 可以方便的保存,打开和运行SQL脚本
l 支持Ҏ(gu)询结果进行修改,
l 可以把查询结果以多种格式保存hQ可以保存ؓ(f)HTMLQ纯文本QXLS{多U格?
l 很容易的得到SQL函数的列表和用法描述QShow SQL help Window 按钮Q?
l 可以查看SQL语句的执行情况:(x)通过下方的AutoTraceH口 Q看到SQL语句的实际执行结果和执行效率?
l 支持历史SQL(F8) Q可以方便的查询以前执行q的SQLQ不用反复重新输入?
l 可以执行匿名块,存储q程Q从下方的窗口看到DBMS_OUTPUT的结果,如:(x)

3Q?Stored Procedure Editor
a) 打开存储q程~写器的几个途径Q?
l 单击总菜单栏上的W三个按钮:(x)
l 点击Database - > Procedure Editor Q?
l 可以通过Schema browser来调?
b) 一些特点和优点Q?
1Q?强大的自定义讄Q从保留字的昄方式Q到自动替换Q到各种快捷键的定义{等Q用得越熟越手?
2Q?
3Q?自动用不同颜色显CSQL和PL/SQL关键字,语法清晰明了(jin)Q可Ҏ(gu)自己的习(fn)惯来具体定制各类关键字的具体昄方式。可以自定义存储q程得模板,在新建存储过E的时候,自动生成E序的框架可以方便的调用Schema BrowserQ把鼠标定位于某个对象上QF4QSchema Browser打开该对象的详细描述Q帮助顺利快速开发程序。支持代码自动更正,如输入ndfQ自动替换成NO_DATA_FOUNDQ输入the自动替换成theQ类似的自动替换q可以自׃改和d?
7Q?方便的左边行hC,单击左边行号可以实现调试断点的增加/删除
8Q?对各U快捷键的支持,不但包括常见的编辑操作,q可以有自己定义的PLSQL块的支持Q自己定义快h式)(j)。如可以定义CTRL+SHIFT+D:弹出所有PLSQL Block的类型,可以自己选择?
9Q?可以在一个集成开发环境里面,一边编码,一边调试,不用多处切换
10Q?方便的同时打开多个存储q程Q通过面快速切?
11Q?快速编译存储过E,快速定位错误所在,自己选择是否同时~译依赖的存储过E?
12Q?内置对PL/FormatterQ可以用PL/Formatter对存储过E进行格式化Qƈ且可以提供存储过E的概要分析和修改徏?
PL/Formatter可以对现有的存储q程q行高速的格式化,使所有的存储q程都符合同L(fng)~写标准Q这h有利于提高程序的可读性,避免不同人写的模块的风格上的很差异?
PL/Formatter q有助于提高E序的模块化Q增强程序的l构清晰度,增强SQL的共用性?
PL/Formatter q可以帮助完成PL/SQL和Oracle版本之间的管理?














13Q?内置RevealNet Knowledge BaseQ单击鼠标右键就可以打开Q快速得到技术上的支持,解决技术难?
nPL/SQL:
n包含整个开发过E中可能遇到问题的答?
nCode Library:大量的严谨的PL/SQL代码例子和现成过E,完全源代码提?
n各种错误处理模块可供参考,各类字符日期函数
n包含1400多个主题
nAdminQ?
n解答DBA日常工作?0%的常见问题,覆盖2400多个主题
n从网l到性能优化Q从备䆾恢复到Error message,一应俱?
例子Q遇到失效的存储q程怎么办?
4. 如何对存储过E进行DebugQ?
u 需要Toad单独的Debug Option(Standard Version 没有q个选项)
u 要用Toad对存储过E进行debugQ必d装Oracle的系l包Qdbms_debugQ而且必须安装Oracle Probe API v2.0 或者更高的版本?
u 集成在Stored Precedure Editor里面Q可以一边编写一边调试,大大提高开发效?
u 打开Procedure Editor后,Debug菜单Ȁz,可以开始进行Debug工作?
u 允许对存储过E进行逐行调试、断点调?也支持对触发器进行调试?
u 可以有断Ҏ(gu)持,支持Watch变量Q允许运行时改变变量的?
u 允许对多层调用的Debug支持
调试步骤具体举例Q?
1Q?点击菜单栏的W三个按钮:(x) Q打开Procedure Editor
2Q?点击Procedure Editor的菜单栏?按钮Q调出需要调试的存储q程
3Q?单击工具栏上的按?Q输入需要传入的参数Q如果不需要传入参敎ͼ可以直接单击工具栏上的按钮:(x) Q直接开始调试,如下图输入传入参敎ͼ(x)

4Q?单击菜单栏的按钮Q?Q可以单步跟t,也可以定义一个断点,直接q行到断点在单步执行Q在存储q程q行的过E中Q当前语句会(x)高亮度显C,q且把鼠标指针定位到变量上,Toad自动昄该变量的当前倹{?

5Q?可以随时中止E序的执行,只要点Debug ->Halt ExecutionQ或者菜单栏上的按钮 Q就可以中止E序的执?
6Q?当碰C个存储过E调用另外一个存储过E的时候,可以选择跌(Step Over) Q这样就直接q行那个被调用的存储q程Q返回调用结果,l箋q个存储q程的调试,也可以选择Trace Into Q这样就打开被调用的存储q程Q进一步深入调试那个被调用的子存储q程。如果需要保持Debug信息Q在~译的时候应该选择Compile Dependencies with Debug InformationQ就是Procedure Editor工具栏最双的那个按??
7Q?支持对变量实时追t:(x)使用WatchQ?
可以在运行前Q或者运行过E中Ҏ(gu)个变量进行实时跟t:(x)Add WatchQ把鼠标定位到该变量上,然后点击Debug ->Add Watch At CursorQ该变量׃(x)出现在Debug状态窗口上Q而且实时反应该变量的当前倹{如上图中的变量v_empname。可以运行时M?
8Q?断点支持Q?
单击存储q程需要加断点的地方的行号Q该行颜色变U,输入参数Q单?yn)L行按?Q可以直接运行到断点处,可以不必逐行q踪Q更加高效率的进行调试?
Debug Optionq支持条件断点,只有当满x件的时候才?x)在那个地方停止Q否则就好像不存在这个断点一L(fng)l运行?

? 注意DBMS_OUTPUT.PUT_LINE的结果只有当E序执行完成以后才会(x)出现Q在E序执行q程中是没有l果的?


4Q?如何用SQLab Xpert对存储过E进行调优?
我们知道QOralce数据库的优化Q最主要的步骤就在于SQL的优化。而在没有专门的工P如ToadQ的帮助下,q行SQL优化是一仉常困隑֒乏味的事情,q且需要对Oracle的深入理解和高超的Oracle调优技巧。用Toad的SQLab Xpert Tuning模块Q可以我们普通开发h员也能够非常快速,_的对SQLq行专家U的分析
在SQL Editor和Procedure Editor里面Q选中需要调试的SQL语句QSQLab Xpert只能调试Select,Insert, Update,Delete语句Q,复制到SQL Editor里面Q然后点dh上的调优按钮 QToad?x)自动打开SQLab xpert H口Q捕获当前的SQL语句Qƈ且把它{化ؓ(f)W合explain plan格式的语句?
W一ơ打开Xpert的时候,Toad?x)提CZQ需要安装一些Server端的表、视囑֒包等对象Q可以把表存储到某个指定的表I间(如Tools)里面。可以简单的按照提示一步一步做可以了(jin)。如果系l设定不允许Job的话QJob_queue_process=0Q?Toad提示有些部g不会(x)现在安装Q可以忽略。安装完成以后,可以选择让某些非DBA用户也可以用Toad的SQLab Xpert调优功能?
安装完成以后QToad?x)提CZ一些关于优化目标方面的问题Q你可以选择每次优化都可以重新设定,或者一ơ设定,以后一直用这个设定。当然如果需要,q是可以更改的,在SQLab Option xpert的窗口的Administration和Preference下面重新讑֮?
例子Q?
下面q个SQL语句涉及(qing)到多表之间的兌Q有一定的复杂性,我们可以借助Toad的SQLab Xpert Option来帮助分析:(x)
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里面Q单M面的调优按钮QToad打开SQLab Xpert OptionH口?
如下图:(x)

从上面的图中我们可以斚w的看刎ͼ(x)在各U优化模式下Q该SQL语句的执行计划分别是什么样的,Toadl出?jin)每一U执行计划的具体每一个步骤,每个步骤的成本,该表涉及(qing)的相关的数据{,如果SQL存取的表q没有经q分析,Toad?x)以U色警告昄Qƈ且很方便的帮助你对该表进行分析,攉l计数据Q重建烦(ch)引等Q以有助于优化器作出最好的选择。可以把当前的分析结果保存到它的资料库里边,以备以后再次调用之需?
我们q可以求助与SQLab 的自动优化功能:(x)点击Original SQL下面的auto tune按钮QToad?x)对执行l果按照tkprofq行分析Q当?dng)q需要你在initsid.ora里面讄好utl_file_dirQ如果服务器是在Unix机器上的话,q需要通过FTP方式得到Trace文gQ有一些小的讄Q?
自动优化非常高效的对所有执行计划进行实际运行比较,q且l出实际执行的时间的Ҏ(gu)Q如下图Q?

我们q可以让Toadl出实际的优化徏议:(x)点击Original SQL,单击下面的Advice按钮QToadҎ(gu)对SQL的分析和执行l果l出合理的徏议:(x)
如:(x)
1Q?把表和烦(ch)引分别放C个不同的表空_(d)因ؓ(f)我们在创Q加上约束的时候没有指定USING INDEX子句Q所以表和烦(ch)引都建立在了(jin)用户的默认表I间上了(jin)?
2Q?对表EMPQDEP和MANAGERq行分析Q收集最新的l计数据Q有利于CBO得到最优的执行计划
3Q?在合适的列上创徏索引QEMP的manag_id和dep_no。当表中存在大量的数据的时候,q样可以大大减少׃全表扫描带来的成本?


5Q?SQL ModelerQ?
SQL Modeler可以帮助开发h员很Ҏ(gu)的写出各U复杂的SQL语句Q只需通过单的拖动鼠标Q就能够写出复杂的SQL语句来?
打开SQL Modeler的几个途径Q?
i. 菜单?Database -> SQL Modeler Q打开H口
ii. 单击工具栏第四个按钮 Q打开SQL ModelerH口
H口׃个主要部分组成:(x)
n 表选择区域Q最双的那个部分,用来选择From子句中用到的表。拖动到左边的区域或者双d选择?jin)该表?
n 表模型区域:(x)用来囑Ş化的昄选择的表和表之间的关联关pR?
n 生成SQL区域Q这里显C用囑Ş化方式创建的查询对应的SQL语句Q?

在SQL Modeler里面Q还支持对生成的SQLq行Explain PlanQ调试SQL的性能Q运行SQLQ看是否得到?jin)希望的l果Q保存生成的语句Q或者把语句_脓(chung)到SQL Editor里面?

有了(jin)SQL Modeler的帮助,即是初U的E序员也能编写出复杂而又高效的SQL查询来?
比如下面的例子;

生成步骤Q?
1Q?选出表emp, dep, manager
2Q?用鼠标拖住emp的emp_name和emp_no, dep的name,manager的name
3Q?双击criteriaH口的emp_no condition列,弹出H口Q输入查询条Ӟ比如emp_no=3
4Q?׃l果里面不希望emp_no出现Q双击emp_no列的visibleQ设|ؓ(f)false
5Q?q样出来了(jin)需要的查询Q现在可以运行查询得到结果,Ҏ(gu)询SQLq行分析Q或者在SQL Editor里面打开q个SQLQ或者保存ؓ(f)SQL Model文gQ或者再q一步处理,比如加排序, 汇ȝ?

DBA斚w的功能:(x)
Toad在DBA日常理斚w的能力是非常强大的,可以帮助DBA安全快速地完成许多日常工作Q还有ToadҎ(gu)的一些小工具能完成一些普通方法很隑ց到的功能。下面大概讲qC(jin)各个常用模块的主要功能:(x)
a) Database Monitor
提供直观的Oracle数据库运行状况,包括下面q些详细信息Q?
可以看到逻辑IOQ物理IOQ各个状态的session数目QSGA的利用率Q共享池的用状况,各类事g的等待状况,以及(qing)各类事g随着旉的变化情?
b) Instance Monitor
i. 可以用来(g)查本地tnsnames.ora文g里面定义的所有节炏VListener和数据库的运行状态和版本{相关信息?
ii. 可以q程启动、关闭数据库Q如果设|了(jin)password验证方式Q?
c) Unix MonitorQ?
i. 可以监控Unix机器的运行状冉|如详l的机器启动旉QCPU利用率,主要的进E以?qing)这些进E占用的资源Q主要的盘I(y)O{?
d) Trace/Kill session
i. 方便的查看所有的q接用户相关信息Q比如终端,E序Q连接时间等
ii. Ҏ(gu)个用戯行跟t,查看用户执行的SQL语句Q查看语句的执行计划Q?
iii. 方便的查阅系l的Lock对象Q有没有什么等待别的事务释N的情况,q能够轻易查出等待什么用L(fng)什么事件结束,那个用户执行的是什么SQL?
iv. 查看回滚D늚使用状态,什么用P什么语句,使用的什么回滚段Q多读写量{?
e) Oracle Parameter
i. 可以方便的查看Oraclepȝ的参敎ͼ(x)是否默认|参数作用的简要描qͼ是否可以用alter session/alter system来动态改变,对于那些可以动态改变的参数Q可以双击鼠标来q行修改

f) NLS_PARAMETER:
i. 方便的查看sessionQinstanceQdatabase一U的NLS参数|
ii. 可以动态修改session的NLS参数?

g) Extents
i. 可以查看某个用户下的表和索引的详l的存储情况Q?
ii. 发现那些占用大量I间的表和烦(ch)引,可以考虑使用相应的对{,比如分区
iii. 发现那些卛_辑ֈmax_extents的表和烦(ch)引ƈ可以?qing)时U正
iv. 发现那些索引和表处于同一个表I间的情况,q可以及(qing)时纠正?

h) Tablespace
i. 直观的查看每个表I间的利用率Qȝ_(d)已用空_(d)剩余可是用空间以?qing)默认存储参敎ͼ和表I间是否需要整理等信息
ii. 查看每个表空间的状态,l成的数据文Ӟ 以及(qing)每个数据文g的详l信?
iii. 查看每个表空间里面存在的对象和这些对象的详细存储Ҏ(gu)?
i) Tablespace MapQ?
i. 囑Ş化的昄表空间里面各个表/索引所占用的空_(d)各个segment的大,segment是否q箋{信息,非常直观
ii.
j) Server Statistics:
i. 可以非常直观的看到系lMq行情况Q迅速定位系l瓶颈所?
ii. 可以查看pȝ范围内各cȝ待事件的状况Q查看每个连接会(x)话的状况Q?
k) Pinned CodeQ?
i. 我们知道Q频J执行的大的存储q程最好PinhQ这样可以避免被Oracle在内存不的情况下换出内存,避免动态加载,也避免flush shared pool的时候被清出内存?
ii. Ҏ(gu)每个模块的大,执行ơ数Q决定是否要把某个存储过EPINh。一个按钮就搞定?jin)?
l) Control Files:
可以查看当前pȝ有哪几个控制文gQ以?qing)控制文件内部记录的详细信息?
Q实际上是V$CONTROLFILE, V$CONTROLFILE_RECORD_SECTIONQ?
m) Redo Log Manager:
i. 可以方便的查看LOG的组Q当前日志,每个l里面的成员名字Q大,方便的增加、删除logl,切换当前日志Q对日志归档q行具体的控制?
ii. 可以在这个界面里完成几乎所有的对redo log的操作?
n) Repair chained rows:
i. Chained rows影响pȝ性能Q处于系l性能的考虑Q需要把chained rows修复成普通的表的行。用repaie chained rows,可以比较容易的做到q一炏V选择需要分析的表,然后分析一下,看有没有chained rowsQ如果有Q点击repairQToad帮你把那些chained rowsl修复了(jin)?
o) Identify Space Deficits
如果pȝ出现1659,1653错误Q就是一个不合格的DBA。但是要x预见q些错误Q还是有一定的隑ֺ的。有?jin)Toad的这个小工具之后Q一Ҏ(gu)个表I间Q就知道q个表空间里面的剩余自由I间是否允许M表能够扩展到下一个extent。ƈ能够在发现问题之后,直接Ҏ(gu)问题?

p) Estimate Table/Index Size
i. 数据库的物理规划中,?索引的存储子句的定义是非帔R要的Q媄(jing)响系l。但是没有什么工L(fng)话,要ؓ(f)表定义合理的存储子句也不Ҏ(gu)?
ii. 在Toad里面Q专门有工具帮助你合理定义表/索引的存储情况:(x)
1. 自己可以定义来表中需要存储的数据的数?
2. 多种估计方式Q?
a) Ҏ(gu)对已有的数据的分析来定义表的大小Q最_Q但是比较慢Q?
b) Ҏ(gu)表定义数据类型来定义表的大小
c) Ҏ(gu)数据字典中以前分析过的数据来估计大小Q需要近期分析过该表Q?

q) Analyze All Tables
i. ZCBO的SQL需要CBO提供最优化的执行\径来提高E序的执行效率,但是假如对表q行大量的DML操作之后Q不?qing)时更新表的l计数据Q这时候C(j)BO׃能选择最为有效的执行路径Q导致程序执行效率低?
ii. 手工分析表比较麻?ch),一个一个做?
iii. 用Toad的Analyze Alltablesq个工具Q可以一ơ分析整个模式下面的所有表Q有丰富的控刉项Q包括是采用估计q是完全Q是否同时分析烦(ch)引,估计的话Q采用多大的癑ֈ比等?
r) Rebuild Table
i. 当表中的数据被反复大量的DML之后Q而且PCTFREE和PCTUSED定义的不合理的情况下Q表可能?x)变得非常破,占用大量的extentQ烦(ch)引也?x)相当破,D效率相当低下?
ii. 传统的方式是通过exp/imp来解册个问题,但是步骤实在比较ȝ(ch)Q手工操作也有一定的危险性?
iii. 使用Rebuild Table工具Q轻松搞定,而且可以手工修改一些通过EXP/IMP无法修改的参敎ͼ比如freelists ,freelists group, tablespaceQinitial{,q能够更改列的名字?
s) Relocate Index
i. 我们知道Q表和烦(ch)引一般都需要分开存放C同的表空_(d)q样比较便于理Q性能上也?x)有一定的提高Q因为可以对表和索引同时存取?
ii. 但是实际上很多时候,׃q样那样的原因,常常忽略?jin)?ch)引单独存放这个基本概念,比如建立主键U束的时候没有加USING INDEX子句Q后来disable/enable?jin)主键约?唯一性约束等Q都?x)导致把索引直接存放到和表同一个表I间里面?
iii. 手工发现q些索引Q再逐个Ud非常ȝ(ch)Q容易出错,在Toad里面Q就很容易根据用?表空间来发现那些不恰当存攄索引Q可以批量移动这些烦(ch)引,q且允许重新定义索引的存储子句?
t) Generate Schema ScriptsQ?
i. 可以用来生成整个用户下所?部分对象的DDL语句。可以把l果保存为sql语句或者保存ؓ(f)TOAD的自定义格式?
ii. 可以用来复制表结构,QEXP/IMP有非怸重的~陷Q就是从一个大的数据库倒出的表l构Q无法导入到一个小的数据库里面Q因为里面包含了(jin)原来表的存储信息Q即佉K择rows=NQ也要在导入数据库里面占用相当大的空_(d)(j)
u) Compare SchemaQ?
i. 在开发的时候,有时候同时在几个开发库上开发,但是最后两个库的结构不完全一P很难比较
ii. 用TOAD的这个功能,可以对两个数据库的模式(用户Q下面的所有对象(包括存储q程Q进行比较,可以选择具体的比较内宏V?
iii. 可以通过直接打开两个到各自数据库的连接,或者根据Toad generate schame scripts生成的文件进行对比?
iv. 可以直接生成同步两个数据库的sql脚本Q给出汇ȝ区别要和详细报告{?/FONT>

水狐 2006-01-07 12:30 发表评论
]]>
վ֩ģ壺 WWWѹۿƵ| ˸徫Ʒѹۿ| ȾѾƷ| һ˿wwwƵ| AVһȾþ| ĻѴƬ| ˬִ̼߳| ˳ӰԺ| 3Dһ| ѿAAƬƵ| ѵĻɫҳѹۿ| ޾ƷƵѿ| avպavŷv| | Ʒ1024| Ľղ2021| | ŮëƬƵ| ѰvƷƵַ| պۺϾƷ| ޹Ů޹| ޾Ʒ| ѹۿҹŷëƬ| ɫվַ| ɫƵվ| ݺady޾Ʒ| ˳վ߲| ޵һƷ| ƷV޾ƷVպƷ | ĻƵ߹ۿ| ҹþþþ| ޹Ʒþ66| ޹һ| Ů18ؼһëƬƵ| 2021Ƶ| þ㽶߿| þóѲ| ŮƵ| ղƷһ| ޹ۺ| Ļ|