在Oracle 10g中如何获得索引建议

   racle 10g的最优秀功能之一是顾问框架(Advisory Framework),它是一个优化顾问集合,可帮助您充分利用数据库。其中的一个顾问——SQL访问顾问(Access Advisor)——建议对模式中的索引和物化视图进行改变来提高性能。

  但是,由于顾问框架(Advisory Framework)被一般化,以支持各种不同的顾问,因此导航DBMS_ADVISOR包中的所有存储过程和函数会十分繁琐。一个CREATE_TASK过程初始化一个新的优化任务,一个SET_TASK_PARAMETER过程修改默认的参数,CTEATE_SQLWKLD过程则建立一个负载对象等等。

  Oracle 10g第二版在DBMS_ADVISOR包中增加了一个QUITE_TUNE过程。这个过程默认所需要的大多数参数来建立一个顾问,对界面进行调整。除建立一个负载对象(即进行优化的QSL语句表)外,它还直接向过程提交一个单独的SQL语句。

  要使用QUITE_TUNE过程——或DBMS_ADVISOR包中的任何其它工具——用户必须具有顾问权限。另外,进行分析的用户必须对查询中引用的表至少拥有选择许可。然后,只要简单地调用过程就行。如列表A所示。

  您可以在各种DBA_视图中查看运行结果。DBA_ADIVSOR_LOG列出您进行的任务和它生成建议的数目。然后可在DBA_ADVISOR_RECOMMENDATIONS视图中看到这些建议,单个的命令可在DBA_ADVISOR_ACTIONS视图中找到。

  而且,您还可以让DBMS_ADVISOR生成执行建议行为所需的完整SQL脚本。GET_TASK_SCRIPT函数返回一个包含脚本的SLOB。

  列表B显示了列表A的运行结果。因为WHERE子句使用的AMOUNT_SOLD栏没有编入索引,需要进行全面表扫描来处理这个语句。此外,它暗示这是一个位图索引,因为栏中的数据有许多重复的值。

时间: 2024-10-02 10:06:43

在Oracle 10g中如何获得索引建议的相关文章

在Oracle 10g中如何获得索引

Oracle 10g的最优秀功能之一是顾问框架(Advisory Framework),它是一个优化顾问集合,可帮助您充分利用数据库.其中的一个顾问--SQL访问顾问(Access Advisor)--建议对模式中的索引和物化视图进行改变来提高性能. 但是,由于顾问框架(Advisory Framework)被一般化,以支持各种不同的顾问,因此导航DBMS_ADVISOR包中的所有存储过程和函数会十分繁琐.一个CREATE_TASK过程初始化一个新的优化任务,一个SET_TASK_PARAMET

如何在Oracle 10g中通过网络连接导入数据

历史上,Oracle的导入及导出功能曾采用磁盘文件作为卸载和再装载数据库的存储中介.对于较大的数据库这样"交换文件"的方式是个大问题.因为过大文件将会超过操作系统对文件大小的限制,使得导出不能实现. 一些有创新精神的数据管理员使用文件压缩功能,例如UNIX中的压缩功能,以获得交换文件的最大容量.后来版本中的导入及导出功能允许使用多种交换文件以减少限制. 在Oracle 10g中,Data Pump版的导入功能能从其他数据库实例中直接导入,从而完全删除交换文件. 第一步是定义一个数据库链

Oracle 10G 中的回收站

在Oracle 10G中,引入了一个回收站(Recycle Bin)的概念. 回收站,从原理上来说就是一个数据字典表,放置用户Drop掉的数据库对象信息.用户进行Drop操作的对象并没有被数据库删除,仍然会占用空间.除非是由于用户手工进行Purge或者因为存储空间不够而被数据库清掉.数据库有了这样的功能,能够减少很多不必要的麻烦.常常看到开发人员误把表删除,急急忙忙找DBA来想办法的情况,相信,随着10G的大范围应用,这种情形应该比较少见了. DBA管理上的相关信息可以从USER_recycle

Oracle 10G 中的"回收站"

oracle Oracle 10G 中的"回收站" by Fenng http://www.DBAnotes.net 在Oracle 10G中,引入了一个回收站(Recycle Bin)的概念. 回收站,从原理上来说就是一个数据字典表,放置用户Drop掉的数据库对象信息.用户进行Drop操作的对象并没有被数据库删除,仍然会占用空间.除非是由于用户手工进行Purge或者因为存储空间不够而被数据库清掉.数据库有了这样的功能,能够减少很多不必要的麻烦.常常看到开发人员误把表删除,急急忙忙找D

Oracle 10g中可以通过列方式指定HINT

看优化文档的时候发现,指定索引的HINT还可以通过列方式. 在9i和以前的版本,索引提示的格式为/*+ index(table_alias) */或/*+ index(table_alias index_name) */,但是在10g中不仅可以通过索引名称来确定HINT的索引,还可以通过指定列名的方式. SQL> select * from v$version; BANNER ------------------------------------------------------------

Oracle 10g中过程PROCEDURE重建的增强

dcba上周有了一个新的发现,在Oracle10g中,当重建一个存储过程时,Oracle的行为和以前有所不同. 在Oracle9i中,即使一个完全相同的过程的重建,Oracle也需要重新编译过程,这个可以从LAST_DDL_TIME看出: [oracle@jumper oracle]$ sqlplus eygle/eygle SQL*Plus: Release 9.2.0.4.0 - Production on Sat Mar 31 17:52:55 2007 Copyright (c) 198

oracle 10g中使用Sqlplus工具以SYSDBA登陆数据库

前两天在ITPUB上看到一个帖子,提到如何用最快的方法以SYSDBA登陆数据库. 有人给出的方法是sqlplus直接回车,然后在提示用户名时输入/ as sysdba: [oracle@yans1 ~]$ sqlplus SQL*Plus: Release10.2.0.3.0 - Production on星期六8月8 22:01:47 2009 Copyright (c) 1982, 2006, Oracle.  All Rights Reserved. Enter user-name: /

Oracle 10G中如何手工创建数据库

最近在网上看到很多初学Oracle或是从旧版的Oracle升级到10G的朋友们都问如何在Oracle 10G里手工 建库的问题.今天正好有空,于是乎把在Oracle 10G里手工建库的全过程写出来,供各位从事Oracle工作 和学习的同朋友们参考,希望能够对大家有所帮助. 在Oracle中建库,通常有两种方法.一是使用Oracle的建库工且DBCA,这是一个图形界面工且,使用 起来方便且很容易理解,因为它的界面友好.美观,而且提示也比较齐全.在Windows系统中,这个工具 可以在Oracle程

Oracle 10g中的闪回查询操作实例

与Oracle 9i相比Oracle 10g的Flashback有了非常大的改进,在Orcle 10g之前,SMON_SCN_TIME由SMON来获取和记录信息的,每5分钟记录一次,从Oracle 10g开始,LGWR首先会在SGA中记录SCN与时间的映射关系(由于LGWR至少每3秒就会被激活一次,所以现在SMON_SCN_TIME能够支持大于3秒的闪回),SMON则定期检查SGA是否内存中的映射大于磁盘上的,如果有就刷新纪录到磁盘, 而且从普通的Flashback Query发展到了多种形式,