文档章节

查看索引的状态

易野
 易野
发布于 2017/08/26 21:54
字数 845
阅读 16
收藏 0
点赞 0
评论 0

https://support.oracle.com/epmos/faces/DocumentDisplay?_afrLoop=34212043984587&id=1019722.6&_adf.ctrl-state=jbg21eo77_41

Script 1: Index Fragmentation 
 
TFSIFRAG.SQL provides information critical in determining whether an 
index is a candidate for rebuilding.  An index is a candidate for 
rebuilding when a relatively high number of index leaf row deletes have 
occured. 
 
 Please note: This report does not indicate the actual index "balance."  

 
Script 2: Index Statistics 
 
TFSISTAT.SQL prints a variety of statistics about the given index.
Statistics include B*tree height, the number of distinct and repeated
keys, the number of  branch rows and blocks, the number of leaf rows
and blocks and information about space utilization. 
 
 Please note: You will receive an "ORA-01476:  divisor is equal to
 zero" for an index on a table into which no rows have been inserted.  
 
 
Script 3: Index Keys for a Table  
 
TFSINKEY.SQL prints uniqueness, name and column information of indexes for the
given table and owner.  The arguments are not case-sensitive, but may not 
include wildcards.  The script will behave unreliably for an index not owned 
by the owner of its base table.

 

========= 
Script #1: 
==========
 
SET ECHO off 
REM NAME:   TFSIFRAG.SQL 
REM USAGE:"@path/tfsifrag schema_name index_name" 
REM ------------------------------------------------------------------------ 
REM REQUIREMENTS: 
REM    SELECT on INDEX_STATS 
REM ------------------------------------------------------------------------ 
REM PURPOSE: 
REM    Reports index fragmentation statistics 
REM ------------------------------------------------------------------------ 
REM EXAMPLE: 
REM                     Index Fragmentation Statistic 
REM                 
REM    index name        S_EMP_USERID_UK 
REM    leaf rows deleted            0 
REM    leaf rows in use            25 
REM    index badness            0.000   
REM  
REM ------------------------------------------------------------------------ 
REM Main text of script follows: 
set verify off  
def ownr  = &&1  
def name  = &&2  
  
ttitle - 
  center 'Index Fragmentation Statistic'   skip 2 
  
set heading off  
  
col name                 newline  
col lf_blk_rows          newline  
col del_lf_rows          newline  
col ibadness newline   
  
validate index &ownr..&name;  
  
select  
  'index name        '||name,  
  'leaf rows deleted '||to_char(del_lf_rows,'999,999,990')  del_lf_rows,  
  'leaf rows in use  '||to_char(lf_rows-del_lf_rows,'999,999,990')  lf_blk_rows,	  
  'index badness     '||to_char(del_lf_rows/(lf_rows+0.00001),'999,990.999') ibadness  
from  
  index_stats  
/  
  
undef ownr  
undef name  
set verify on
 
 
==============
Sample Output: 
==============
 
                         Index Fragmentation Statistic 
 
 
index name                   S_EMP_USERID_UK 
leaf rows deleted            0 
leaf rows in use             25 
index badness                0.000 
 
 
 
 
========== 
Script #2: 
==========
 
SET ECHO off 
REM NAME:   TFSISTAT.SQL 
REM USAGE:"@path/tfsistat schema_name index_name" 
REM ------------------------------------------------------------------------ 
REM REQUIREMENTS: 
REM    SELECT on INDEX_STATS 
REM ------------------------------------------------------------------------ 
REM PURPOSE: 
REM    Report index statistics. 
REM ------------------------------------------------------------------------ 
REM EXAMPLE: 
REM                                Index Statistics  
REM 
REM    S_EMP_USERID_UK  
REM    ----------------------------------------------------------  
REM    height                          1 
REM    blocks                          5 
REM    del_lf_rows                     0  
REM    del_lf_rows_len                 0 
REM    distinct_keys                  25 
REM    most_repeated_key               1  
REM    btree_space                 1,876 
REM    used_space                    447  
REM    pct_used                       24 
REM    rows_per_key                    1 
REM    blks_gets_per_access            2  
REM    lf_rows                        25            br_rows               0  
REM    lf_blks                         1            br_blks               0 
REM    lf_rows_len                   447            br_rows_len           0  
REM    lf_blk_len                  1,876            br_blk_len            0   
REM  
REM ------------------------------------------------------------------------ 
REM Main text of script follows: 
set verify off
def ownr        = &&1 
def name        = &&2 
 
ttitle - 
  center  'Index Statistics'  skip 2 
 
set heading off 
 
col name   newline 
col headsep              newline 
col height               newline 
col blocks               newline 
col lf_rows              newline 
col lf_blks        	 newline 
col lf_rows_len          newline 
col lf_blk_len           newline 
col br_rows              newline 
col br_blks              newline 
col br_rows_len          newline 
col br_blk_len           newline 
col del_lf_rows          newline 
col del_lf_rows_len      newline 
col distinct_keys        newline 
col most_repeated_key    newline 
col btree_space          newline 
col used_space    	 newline 
col pct_used             newline 
col rows_per_key         newline 
col blks_gets_per_access newline 
 
validate index &ownr..&name; 
 
select 
  name, 
  '----------------------------------------------------------'    headsep, 
  'height               '||to_char(height,     '999,999,990')     height, 
  'blocks               '||to_char(blocks,     '999,999,990')     blocks, 
  'del_lf_rows          '||to_char(del_lf_rows,'999,999,990')     del_lf_rows, 
  'del_lf_rows_len      '||to_char(del_lf_rows_len,'999,999,990') del_lf_rows_len, 
  'distinct_keys        '||to_char(distinct_keys,'999,999,990')   distinct_keys, 
  'most_repeated_key    '||to_char(most_repeated_key,'999,999,990') most_repeated_key, 
  'btree_space          '||to_char(btree_space,'999,999,990')       btree_space, 
  'used_space           '||to_char(used_space,'999,999,990')        used_space, 
  'pct_used                     '||to_char(pct_used,'990')          pct_used, 
  'rows_per_key         '||to_char(rows_per_key,'999,999,990')      rows_per_key, 
  'blks_gets_per_access '||to_char(blks_gets_per_access,'999,999,990') blks_gets_per_access, 
  'lf_rows      '||to_char(lf_rows,    '999,999,990')||'        '||+ 
  'br_rows      '||to_char(br_rows,    '999,999,990')                  br_rows, 
  'lf_blks      '||to_char(lf_blks,    '999,999,990')||'        '||+ 
  'br_blks      '||to_char(br_blks,    '999,999,990')                  br_blks, 
  'lf_rows_len  '||to_char(lf_rows_len,'999,999,990')||'        '||+ 
  'br_rows_len  '||to_char(br_rows_len,'999,999,990')                  br_rows_len, 
  'lf_blk_len   '||to_char(lf_blk_len, '999,999,990')||'        '||+ 
  'br_blk_len   '||to_char(br_blk_len, '999,999,990')                br_blk_len 
from 
  index_stats 
/ 
 
undef ownr 
undef name 
set verify on
 
 
==============
Sample Output: 
==============
 
                                Index Statistics                
S_EMP_USERID_UK 
----------------------------------------------------------  
height                          1  
blocks                          5  
del_lf_rows                     0  
del_lf_rows_len                 0   
distinct_keys                  	25  
most_repeated_key               1  
btree_space                 	1,876 
used_space                    	447  
pct_used                       	24  
rows_per_key                    1  
blks_gets_per_access            2  
lf_rows                		25         
br_rows                 	0 
lf_blks				1         
br_blks                 	0  
lf_rows_len           		447         
br_rows_len            		0  
lf_blk_len          		1,876         
br_blk_len              	0 
 
 
 
 
========== 
Script #3: 
==========  
 
SET ECHO off 
REM NAME:   TFSIKEYS.SQL 
REM USAGE:"@path/tfsikeys idx_owner table_name" 
REM ------------------------------------------------------------------------ 
REM REQUIREMENTS: 
REM    SELECT on DBA_IND_COLUMNS and DBA_INDEXES 
REM ------------------------------------------------------------------------ 
REM PURPOSE: 
REM Shows the index keys for a particular table. 
REM ------------------------------------------------------------------------ 
REM EXAMPLE: 
REM             Index Keys Summary 
REM 
REM    Uniqueness                Index Name                    Column Name 
REM    ---------- ----------------------------------------  ------------------ 
REM    UNIQUE                    SCOTT.S_EMP_ID_PK               ID  
REM 
REM    UNIQUE                    SCOTT.S_EMP_USERID_UK           USERID 
REM   
REM ------------------------------------------------------------------------ 
REM Main text of script follows: 
set verify off
def ixowner	= &&1 
def tabname	= &&2 
 
ttitle - 
   center  'Index Keys Summary'  skip 2 
 
col uniq    format a10 heading 'Uniqueness'  justify c trunc 
col indname format a40 heading 'Index Name'  justify c trunc 
col colname format a25 heading 'Column Name' justify c trunc 
 
break - 
  on indname skip 1 - 
  on uniq 
 
select 
  ind.uniqueness                  uniq, 
  ind.owner||'.'||col.index_name  indname, 
  col.column_name                 colname 
from 
  dba_ind_columns  col, 
  dba_indexes      ind 
where 
  ind.owner = upper('&ixowner') 
    and 
  ind.table_name = upper('&tabname') 
    and 
  col.index_owner = ind.owner  
    and 
  col.index_name = ind.index_name 
order by 
  col.index_name, 
  col.column_position 
/ 
 
undef ixowner 
undef tabname 
set verify on


==============
Sample Output: 
==============

 
         Index Keys Summary 
 
 
Uniqueness                Index Name                    Column Name 
---------- ---------------------------------------- ---------------------- 
UNIQUE                SCOTT.S_EMP_ID_PK                        ID 
                                                                       
UNIQUE                SCOTT.S_EMP_USERID_UK                    USERID

© 著作权归作者所有

共有 人打赏支持
易野
粉丝 2
博文 142
码字总数 114058
作品 0
深圳
Elasticsearch 5.4 Indices(索引) API

前言 声明:本博客根据ELasticsearch官网文档翻译整理,转载请注明出处:http://blog.csdn.net/napoay 一、索引管理 1.1 创建索引 创建索引 默认分片为5,副本为1. 创建索引并指定分片数和副...

napoay ⋅ 2017/06/15 ⋅ 0

mysql 主从同步备份

网站有一个后台业务,叫searchEngine项目,基于Lucene 构建。主要提供索引构建和检索的功能,搜索引擎查询mysql 数据库然后根据数据状态来构建索引,这里采用的是 程序每隔一段时间主动轮询 ...

从前 ⋅ 2013/06/18 ⋅ 0

MongoDB学习笔记(四)--索引 && 性能优化

索引 基础索引 用到ensureIndex方法建立索引,1为升序,-1为降序。 MongoDB数据库在创建集合的时候,默认会为_id创建索引。 注:当系统已有大量数据时,创建索引就是一个非常耗时的工作,只需...

老朱教授 ⋅ 2017/10/01 ⋅ 0

查看Oracle当前用户下的信息(用户,表视图,索引,表空间,同义词等)

1、用户   查看当前用户的缺省表空间 SQL>select username,defaulttablespace from userusers;   查看当前用户的角色 SQL>select * from user_role_privs;   查看当前用户的系统权限和...

lq2011 ⋅ 2017/12/16 ⋅ 0

mysql性能优化(一)

mysql性能优化、慢查询分析、优化索引和配置 一.每项的基本思路步骤 1.性能瓶颈定位:show命令、慢查询日志、explain分析查询、profiling分析查询、 2.索引及查询优化 3.配置优化 二.mysql是...

攀岩人生 ⋅ 2017/06/16 ⋅ 0

MongoDB常用命令

MongoDB常用命令: 超级用户相关: 客户端连接: 增删改: 索引: 查询: 管理:

mahout ⋅ 2012/03/07 ⋅ 1

ElasticSearch数据备份与恢复

ES备份快照的时候可以用或者。有点麻烦,我们使用。 1.安装hdfs插件(如果已安装,则忽略这一步): 注意下载后会提示是否安装,一定要输入 ,否则视为取消安装。 安装完之后要重启ES集群. 2...

cjsoldier ⋅ 2017/12/01 ⋅ 0

Oracle 12.2新特性----在线把非分区表转为分区表

在Oracle12.2版本之前,如果想把一个非分区表转为分区表常用的有这几种方法:1、建好分区表然后insert into select 把数据插入到分区表中;2、使用在线重定义(DBMS_REDEFINITION)的方法。它们...

hbxztc ⋅ 2017/07/21 ⋅ 0

Git & CocoaPods & 私有化,你不得不知的组件化基础!

Git 理解Git的设计思想和基本的工作原理,对更好的使用Git至关重要。 Git思想 直接记录快照,而非比较差异。和其他版本控制系统不同的是,Git存储数据时将数据看成小型的文件系统的一组快照,...

Owenli_千 ⋅ 01/04 ⋅ 0

ElasticSearch安装

ElasticSearch的安装 http://www.elasticsearch.org/下载最新的ElastiSearch版本。 解压下载文件。 cd到${esroot}/bin/,执行elasticsearch启动。 使用curl -XPOST localhost:9200/shutdown......

liuhao_sh ⋅ 2015/08/13 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

vim编辑模式、命令模式

编辑模式 vim要从一般模式进入编辑模式只要按字母 i 、I、a、A、o、O键就可以了 要从编辑模式回到一般模式按键盘上的Esc键即可。 按键 作用 i 在当前字符前插入 I 在光标所在行的行首插入 o ...

黄昏残影 ⋅ 29分钟前 ⋅ 0

OSChina 周五乱弹 —— 如果有一天不当程序员了

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @guanglun :分享off的单曲《我唱情歌给你听》 《我唱情歌给你听》- off 手机党少年们想听歌,请使劲儿戳(这里) @小小编辑 :#如果不做程序...

小小编辑 ⋅ 36分钟前 ⋅ 5

从 Confluence 5.3 及其早期版本中恢复空间

如果你需要从 Confluence 5.3 及其早期版本中的导出文件恢复到晚于 Confluence 5.3 的 Confluence 中的话。你可以使用临时的 Confluence 空间安装,然后将这个 Confluence 安装实例升级到你现...

honeymose ⋅ 今天 ⋅ 0

Java8新增的DateTimeFormatter与SimpleDateFormat的区别

两者最大的区别是,Java8的DateTimeFormatter也是线程安全的,而SimpleDateFormat并不是线程安全。 在并发环境下使用SimpleDateFormat 为了能够在多线程环境下使用SimpleDateFormat,有这三种...

人觉非常君 ⋅ 今天 ⋅ 0

多线程如何控制执行顺序

线程的生命周期说明: 当线程被创建并启动以后,它既不是一启动就进入了执行状态,也不是一直处于执行状态,在线程的生命周期中,它要经过新建(New)、就绪(Runnable)、运行(Running)、...

MarinJ_Shao ⋅ 今天 ⋅ 0

用ZBLOG2.3博客写读书笔记网站能创造今日头条的辉煌吗?

最近两年,著名的自媒体网站今日头条可以说是火得一塌糊涂,虽然从目前来看也遇到了一点瓶颈,毕竟发展到了一定的规模,继续增长就更加难了,但如今的今日头条规模和流量已经非常大了。 我们...

原创小博客 ⋅ 今天 ⋅ 0

MyBatis四大核心概念

本文讲解 MyBatis 四大核心概念(SqlSessionFactoryBuilder、SqlSessionFactory、SqlSession、Mapper)。 MyBatis 作为互联网数据库映射工具界的“上古神器”,训有四大“神兽”,谓之:Sql...

waylau ⋅ 今天 ⋅ 0

以太坊java开发包web3j简介

web3j(org.web3j)是Java版本的以太坊JSON RPC接口协议封装实现,如果需要将你的Java应用或安卓应用接入以太坊,或者希望用java开发一个钱包应用,那么用web3j就对了。 web3j的功能相当完整...

汇智网教程 ⋅ 今天 ⋅ 0

2个线程交替打印100以内的数字

重点提示: 线程的本质上只是一个壳子,真正的逻辑其实在“竞态条件”中。 举个例子,比如本题中的打印,那么在竞态条件中,我只需要一个方法即可; 假如我的需求是2个线程,一个+1,一个-1,...

Germmy ⋅ 今天 ⋅ 0

Django第一期

安装Django 去https://www.djangoproject.com/download/ 下载最新版的Django,然后解压放到Anaconda\Lib\site-packages目录下,然后cmd进入此目录,输入安装命令: python setup.py install ...

大不了敲一辈子代码 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部