|
|
||||||||||||||||||
|
||||||||||||||||||
|
|
||||||||||||||||||
|
|
【内容摘要】今天有朋友问,如果对时间进行运算,比如对一个时间值加3分钟,或者对一个时间减去1秒..... 【内容摘要】PARALLEL_MAX_SEVERS参数设置并行执行可用的最大进程数量,该参数的缺省值如下得出 【内容摘要】Oracle提供REF CURSOR,通过该功能可以实现在程序间传递结果集的功能,利用REF CURSOR也可以实现BULK SQL,从而提高SQL性能。 【内容摘要】理想的方式应该是,Oracle能够判断之前的Library Cache Pin的模式,如果是共享模式,则可以跳过Pin请求,如果是排他模式,则必须等待,目前的处理并不能从实质上改变竞争。 【内容摘要】在Oracle10g中,这个LAST_DDL_TIME不再变化,这说明在10g中,当我们执行create or replace PROCEDURE 时,Oracle现在先尝试进行过程检查,如果内容没有变化,则不需要对过程进行重新编译,这可以减少Cache中的Invalidation,从而可以减少竞争 【内容摘要】作为对于闪回操作(flashback)的一个增强,Oracle10g提供了函数对于SCN和时间戳进行相互转换。 【内容摘要】经过使用Oracle的外部表对Oracle的警告日志文件、跟踪文件进行获取和分析之后,我发现外部表实在是非常易用,甚至到了随心所欲的境地(当然外部表尚不能修改外部文件)。 使用外部表可以很容易的实现网站的访问日志分析。 虽然使用Awstats等工具也可以实现,可是使用Oracle来分析我们更应该得心应手。 而且这一切还是有那么一点点Cool的。 好了,闲言少叙,让我们来看一下我分析的过程。 【内容摘要】前面说过Oracle的外部表可以用来访问警告日志文件,其实Oracle的外部表可以非常灵活的被使用。 如果用户具有了Create Direcotry的权限,就能通过外部表访问很多主机上的文件。 我们看一下使用外部表访问跟踪文件的例子。 【内容摘要】从Oracle9i开始,Oracle的外部表技术(Oracle External Tables)被极大的增强,通过外部表访问外部数据增强了Oracle数据库和外部数据源进行数据交互的能力,对于数据仓库和ETL来说,这些增强极大的方便了数据访问。 对于DBA来说,最常见一个例子是可以使用外部表来访问警告日志文件或其他跟踪文件. 以下一个例子用来说明外部表的用途。 【内容摘要】经常有朋友问到行列转换的问题,留言板上也有这样的提问。 其实使用分析函数进行处理是很好的方式,翻一下Tom的书,将其中的一个例子收录在这里. 比如查询scott.emp表的用户SAL排序信息,可以使用如下查询 【内容摘要】在ITPUB上有一则非常巧妙的SQL技巧,学习一下,记录在这里。 【内容摘要】从Oracle9i开始,Oracle允许对于视图(view)进行主键、唯一键、外键约束的声名。 【内容摘要】从Oracle9i开始,主键创建时的索引和唯一性约束可以在建表时独立定义。 随后,约束可以被独立drop,而索引可以保留。这是Oracle9i中对于索引增强的几个特性之一。 【内容摘要】通过Leading 和 use_hash 提示连用,我们可以巧妙的影响SQL中表和结果集的Join顺序. 【内容摘要】通过ordered提示,可以避免CBO SQL解析过程中的表连接评估,从而避免Oracle产生错误的执行计划,或者强制Oracle按照我们指定的方式执行。 【内容摘要】由于B*Tree索引不存储Null值,所以在索引字段允许为空的情况下,Oracle查询不会使用索引. 【内容摘要】虽然索引并不总会快于全表扫描,但是很多时候我们希望Oracle使用索引来执行某些SQL,这时候我们可以通过index hints来强制SQL使用index. 【内容摘要】基于自定义函数的Function-Based索引的创建 【内容摘要】 在Oracle8i以前,所有已编译存储对象(包括packages, procedures, functions, triggers, and views)只能以定义者(Definer)身份解析运行;从Oracle8i开始,Oracle引入调用者(invoker)权限,使得对象可以以调用者身份和权限执行。 定义者(Definer)指编译存储对象的所有者. 【内容摘要】通常在SQL语句中给PL/SQL变量赋值叫做绑定(Binding),一次绑定一个完整的集合称为批量绑定(Bulk Binding)。 批量绑定(Bulk binds)可以通过减少在PL/SQL和SQL引擎之间的上下文切换(context switches )提高了性能. 批量绑定(Bulk binds)包括: (i) Input collections, use the FORALL statement,一般用来改善DML(INSERT、UPDATE和DELETE) 操作的性能 (ii) Output collections, use BULK COLLECT clause,一般用来提高查询(SELECT)的性能 【内容摘要】DUMP returns a VARCHAR2 value containing the datatype code, length in bytes, and internal representation of expr. The returned result... 【内容摘要】最近被人批评BLOG有娱乐化倾向,赶紧写点技术文章. 此文用以回答留言板上1224号问题。 BFILE包含二进制数据,所以当通过BFILE方式加载数据到CLOB/NCLOB时,Oracle不进行字符集转化。 如果字符集是可变长的,例如UTF-8或ZHS16GBK,Oracle使用UCS2存储LOB数据。所以如果想BFILE文件数据能够正确加载入数据库,那么文件需要以USC2字符集存储。 那么还有一点需要注意的是,如果以Unicode模式存储文件,那么文件会增加两个字节: 'FF FE'. 在加载文件时我们需要跳过这两个字节。 在Windows上我们存储文件时选择Unicode方式,我输入的字符为: test测试 Oracle BFile数据加载问题 研究 然后我们可以加载这个文件的内容,注意比较前后两个过程不同之处: SQL> create table t ( 2... 【内容摘要】 Tom写过这样一个函数用于把数据转储为逗号分隔符文件,看到很多人问类似的问题,转载这里供参考。 注意,UTL_FILE使用的Directory,需要你预先创建,具体可以参考Using Create directory & UTL_FILE in Oracle create or replace function dump_csv( p_query in varchar2, p_separator in varchar2... 【内容摘要】TOM曾经多次说过: All I need is "CREATE SESSION" and "EXECUTE ANY PROCEDURE" and I can totally do anything I want to... 【内容摘要】 在参考了Using DBMS_SYS_SQL Package to grant Privilege留言板里有朋友继续问道,出现了以下错误: ORA-25191: cannot reference overflow table of an index-organized table ORA-06512: at "SYS.DBMS_SYS_SQL", line... 【内容摘要】此话题源于留言板上的一个提问,看了Itpub上也有很久以前的的提问: 关于用户授权的问题! 在Oracle9i之前,如果你想要把对象权限授予某些用户,那么你需要使用该对象属主或者使用具有该对象with grant option权限的用户。 很多时候你可能需要进行批量授权,那么DBMS_SYS_SQL包可以为你提供简便. 以下过程供参考: declare sqltext varchar2(200); c integer; begin for userlist in (select user_id,username from all_users... 【内容摘要】通过实例介绍如何使用PL/SQL从数据库中读取BLOB对象.. 【内容摘要】以下存储过程用于向数据库加载BLOB对象 1.创建directory并授权 关于Directory可以参考: Using Create directory & UTL_FILE in Oracle C:\>sqlplus "/ as sysdba" SQL*Plus: Release 10.1.0.3.0 - Production on... 【内容摘要】Create directory让我们可以在Oracle数据库中灵活的对文件进行读写操作,极大的提高了Oracle的易用性和可扩展性 【内容摘要】批量删除海量数据通常都是很复杂及缓慢的,方法也很多,但是通常的概念是:分批删除,逐次提交。 【内容摘要】有时候我们需要分配删除数据表的一些记录,分批提交以减少对于Undo的使用,本文提供一个简单的存储过程用于实现该逻辑。 【内容摘要】不管是有意还是无意的,你可能会遇到数据库中重要的数据表等对象被drop掉的情况,这可能会给我们带来巨大的损失. 通过触发器,我们可以实现对于表等对象的数据库级守护,禁止用户drop操作. 【内容摘要】Rowid中包含了记录的详细信息,通过dbms_rowid包可以获得这些信息.本文通过一个定义自定义函数介绍该package的使用 【内容摘要】USE_CONCAT提示强迫优化器扩展查询中的每一个OR谓词为独立的查询块,最后合并所有查询块的结果,返回结果集给用户。 当使用多个in-lists查询时,Oracle可能选择把单个查询扩展为多个查询块。 【内容摘要】从Oracle8i开始Oracle提供采样表扫描特性。 【内容摘要】在Oracle7的年代,这样的SQL语句执行的很快,但是在Oracle8以后的数据库,如果碰巧你用的是CBO,那么这样的语句执行结果可能是Hang了(其实不是死了,只是很多人没有耐心等而已),在Oracle7里,这样的语句毫无疑问使用RBO,很快你就可以得到执行结果。 【内容摘要】我们的数据库使用dbms_stats.gather_schema_stats分析过,具有足够及时的所有数据,然而在CBO的执行计划下,优化器选择了完全不同的执行计划. 【内容摘要】PUSH_SUBQ 可以用来控制子查询的执行 这个是PUSH_SUBQ 的本意 【内容摘要】我们知道,由于使用绑定变量,在Oracle9i之前会导致柱状图信息无法被用到 从Oracle9i开始Oracle提供了Peeking的方式,在使用绑定变量的SQL第一次执行时,使用参数传递成文本sql,此时可以有效的利用存在的柱状图信息进行执行计划的评估,从而在某些数据分布不均和的情况下,可能可以产生更为精确的执行计划.这显然是一个有益的提高,然而这个Peeking有时候也会存在问题,本文通过实例说明这个特性及其不足. 【内容摘要】降低逻辑读是优化SQL的基本原则之一,我们尝试通过降低逻辑读来加快SQL的执行... 【内容摘要】OPTIMIZER_INDEX_COST_ADJ,这个初始化参数代表一个百分比,取值范围在1到10000之间. 该参数表示索引扫描和全表扫描成本的比较。缺省值100表示索引扫描成本等价转换与全表扫描成本。 【内容摘要】DBMS_SUPPORT包从Oracle7.2引入,主要功能用以提供更完整的用户session跟踪信息 |
|||||||||||||||||
CopyRight © 2004 ~ 2008 eygle.com, All rights reserved.
|
||||||||||||||||||