索引是提高数据库查询性能的有力武器。没有索引,就好比图书馆没有图书标签一样,找一本书自己想要的书比登天还难。然而索引在使用的过程中,尤其是在批量的DML的情形下会产生相应的碎片,以及B树高度会发生相应变化,因此可以对这些变化较大的索引进行重构...
索引重建是一个争论不休被不断热烈讨论的议题。当然Oracle官方也有自己的观点,我们很多DBA也是遵循这一准则来重建索引,那就是Oracle建议对于索引深度超过4级以及已删除的索引条目至少占有现有索引条目总数的20% 这2种情形下需要重建索引。近来Oracle也提出...
RAC环境下的阻塞不同于单实例情形,因为我们需要考虑到位于不同实例的session。也就是说之前查询的v$session,v$lock相应的应变化为全局范围来查找。本文提供了2个查询脚本,并给出实例演示那些session为阻塞者,哪些为被阻塞者。有关阻塞的概念以及单实例环...
阻塞是DBA经常碰到的情形,尤其是不良的应用程序设计的阻塞将导致性能严重下降直至数据库崩溃。对DBA而言,有必要知道如何定位到当前系统有哪些阻塞,到底谁是阻塞者,谁是被阻塞者。本文对此给出了描述并做了相关演示。 1、阻塞及其类型 a、什么是阻塞 一个...
分区索引(或索引分区)主要是针对分区表而言的。随着数据量的不断增长,普通的堆表需要转换到分区表,其索引呢,则对应的转换到分区索引。分区索引的好处是显而易见的。就是简单地把一个索引分成多个片断,在获取所需数据时,只需要访问更小的索引片断(块)即...
不能直接用rownum,要查询出来以后用别名转换。 以EMP表为范例,取4至10行: ? 1 select * from ( select rownum id,t.* from emp t) where id between 4 and 10; 有需要排序的,一定要这样处理: ? 1 2 3 4 5 6 7 select * from ( select rownum rn,t.* from...
项目开始拿到了dmp文件,数据库用的是10g的,但是尽然没导成功,后来想可能导出的时候用11导出的,决定试一下。 正好自己的机器是11的客户端,结果不识别imp命令,到安装目录下的bin文件夹下看尽然没有imp执行文件。可能装客户端的时候没选管理者装。 怎么办...
Oracle中查看慢查询进度的脚本分享,本文给出了2个实现脚本,直接给出的代码 Oracle一个大事务的SQL往往不知道运行到了哪里,可以使用如下SQL查看执行进度。 set linesize 400; set pagesize 400; col sql_text format a100; col opname format a15; SELECT se.s...
Oracle中查看正在运行的SQL进程脚本分享,本文使用脚本实现了类似mysql show processlist命令的功能 Oracle的show processlist set linesize 400; set pagesize 400; col sql_text format a100; col machine format a25; col username format a15; SELECT a.us...
Oracle中检查外键是否有索引的SQL脚本分享,本文给出了两个版本的脚本源码,一个查询所有用户,一个查询单用户 COLUMN COLUMNS format a30 word_wrapped COLUMN tablename format a15 word_wrapped COLUMN constraint_name format a15 word_wrapped SELECT TABLE...