【优化】使用反向索引(Reverse Key Indexes)减少索引热点块
反向索引就是将正常的键值头尾调换后再进行存储,比如原值是“1234”,将会以“4321”形式进行存储,这样做可以高效地打散正常的索引键值在索引叶块中的分布位置。1.反向索引应用场合1)发现索引叶块成为热...
【Tip】使用TO_DATE和TO_CHAR函数让Oracle自己去数数
Oracle从1977年的雏形成长到现在已经32岁了,她是相当的聪明可人,您看,她都会数数了。看一下TO_DATE和TO_CHAR函数“混合打法”能给我们带来怎样的神奇。1.“一”的发音sec@ora10g> col count_number for a60se...
【恢复】临时表空间损坏的两种恢复方法
当排序在内存中无法完成时就会使用临时表空间进行排序,如果临时表空间出现了问题会严重地影响系统运行性能。当临时表空间出现异常不可用时,该如何进行恢复呢?常用的有两种方法,一种方法我称其为“重新启动法...
【11g】使用SEC_CASE_SENSITIVE_LOGON参数控制密码大小写敏感性
在Oracle的11g之前的版本中密码是不区分大小写的(使用双引号强制除外)。在Oracle的11g版本中对此有所增强。从此密码有了大小写的区分,这个大小写敏感特性是通过SEC_CASE_SENSITIVE_LOGON参数来控制的。简...
【Tip】解决like中无法匹配下划线的问题
如果想检索出字段中包含下划线“_”的内容,该如何书写SQL语句呢?之所以问这个问题,是因为在Oracle中下划线在like中有着特殊的含义,它表示匹配任意一个字符。因此在查询包含下划线内容的时候需要“特殊关照”一下...
【表压缩】使用表压缩技术将表所占用空间降低到最小
很多情况下,Oracle默认的表存储策略并不符合我们使用数据的实际情况。例如,在OLAP类型的系统中,数据的使用方式一般是定期批量初始化大量数据,此后的工作便是查询、分析和统计,很少的修改动作。基于这样...
【Flashback】使用闪回功能快速恢复用户的误操作
Oracle提供的闪回特性对于快速恢复误操作的数据起到了非常大的帮助。在没有这个特性的Oracle早期版本,如果需要恢复因用户错误导致的数据丢失,需要大量的时间和精力去做不完全恢复。不过,这种用空间换时间...
【PL/SQL】使用变量传递方法生成表更名的SQL语句
在某些情况下需要将PL/SQL中的一个变量的值修改后传给另外一个变量以便实现复杂的需求,这也是变量传递魅力所在。这里我以一个通过变量传递的方法生成修改表名的SQL语句为例给大家演示一下,供参考。1.为演示方...
【保留字】使用视图V$RESERVED_WORDS得到Oracle的保留字
在创建表时如果使用了Oralce的某些保留字,将会收到系统提示的“无效名”等错误,那么Oracle都有哪些保留字需要回避呢?这个问题完全可以使用Oralce自带的V$RESERVED_WORDS视图来回答,不同的版本中这个视图中记...
【maxmem】利用Oracle的maxmem小工具得到系统可用内存大小
在ORACLE_HOME/bin目录下有很多有意义的工具,如耳熟能详的exp(expdp)、imp(impdp)、rman等等。其中有一个工具叫做“maxmem”,要知道这个可不是操作系统上的命令,这个命令是Oracle提供的,使用这个命令可...
【视图】利用USER_TAB_MODIFICATIONS视图辅助监控表的增删改等操作
USER_TAB_MODIFICATIONS视图记录了当前用户中表自最后一次分析之后所有增、删、改等操作信息。通过对其查询可以得到一个简化版的审计功能效果。因为该视图中记录的信息会因表的分析自动清除,同时Oracle从性能上...
【orakill】使用Oracle的orakill命令彻底杀死Windows环境下Oracle线程
1.orakill命令怎么用?通过在command命令行直接使用orakill命令便可得到简单但清晰的实用使用指导。需要注意的是:“sid”指的是“instance name”,不要被名字误导!C:\>orakillUsage: orakill sid threa...
【IMP】使用IMP的SHOW参数轻松获取EXP命令的DUMP文件内容
使用IMP的SHOW参数可以轻松获取EXP的DUMP文件内容,通过读取其内容我们可以获得很多有价值的信息。简单列两点:1.创建数据库对象的SQL语句我们可以从中得到非常详细的数据库对象创建SQL语句。在此基础上如能...
【USER】使用“基表修改法”快速修改Oracle用户名
Oracle中没有提供直接修改用户名的方法,即使在11gR2中也没有提供具体的手段。由于没有直接修改用户名的方法,因此在Oracle中若要修改用户名,通常是比较周折的。通常修改用户名的一种方法...
【索引】使用索引分析快速得到索引的基本信息
我们在使用“validate structure”对索引进行分析后,通过查询index_stats可以得到很多有关索引本身的属性信息。通过这个实验简单展示一下几个重要的信息列。1.创建测试表t,在t表的x列上存在主键。2.对索引(主键)...
【优化】INDEX FULL SCAN (MIN/MAX)访问路径
Oracle对单独使用max或min函数时给出了一种非常高效的访问路径,就是“INDEX FULL SCAN (MIN/MAX)”,该方法可以避免索引的全部读取,进一步提高数据结果的获取效率。通过这个实验简单记录一下。1.创建...
【SQLLDR】使用SQL*Loader辅助生成外部表创建语句
如果想使用外部表技术完成数据的加载,一般的步骤如下:1.因为外部表需要directory对象,首先需要创建一个directory数据库对象;2.需要对创建外部表所需的参数和格式非常了解,以便完成外部表创建语句的...
【进制转换】十进制与十六进制相互转换方法
Oracle提供的to_char和to_number函数在进制转换上也有贡献。简单演示一下。1.使用TO_CHAR函数将十进制数转换为十六进制数的方法和效果如下sec@ora10g> select TO_CHAR (1, 'XX') as "1", 2 &...
【UNDO】使用重建UNDO表空间方法解决UNDO表空间过大问题
经过之前的大数据量测试,目前系统中的undo表空间被撑大到近20G。释放其占用的空间的工作摆在案头。通过此文将此项维护工作做一个简单梳理,供大家参考。思路很简单,就是通过启用一个新的undo表空间,然后...
【Direct-Path】直接路径加载提升插入效率及其自身限制
在加载大量数据的时候,可以考虑使用直接路径加载技术来加速。不过该技术本身也存在一些弊端,在使用前需要权衡利弊。本文将通过实验介绍该技术的一些点滴细节,供大家参考。1.初始化实验用表共两张表。表t...