- 浏览: 31070 次
- 性别:
- 来自: 北京
最近访客 更多访客>>
文章分类
最新评论
-
houzhh:
是的!争取做到每天更新一篇,昨天忙着看海贼王,忘记更新了,今天 ...
OracleDBA之路之Oracle体系结构介绍(一) -
TonyLee0329:
不错,谢谢分享!
OracleDBA之路之Oracle体系结构介绍(二) -
TonyLee0329:
这是你的学习笔记吗?
OracleDBA之路之Oracle体系结构介绍(一)
标识未用索引
要开始监视索引的使用,请执行以下语句
ALTER INDEX index_name MONITORING USAGE
要停止监视索引的使用,请执行以下语句
ALTER INDEX index_name UNMONITORING USAGE
可以在V$OBJECT_USAGE试图中查看那个index是否被使用
INDEX_NAME:索引名
TABLE_NAME:对应的表
MONITORING:指示监视是 ON 还是 OFF
USED:指示 YES 或 NO,即在监视时间内是否使用了索引
START_MONITORING:索引监视的开始时间
END_MONITORING:索引监视的结束时间
删除Index
DROP INDEX index_name
下列情况应删除索引:
• 应用程序不再需要索引时,可将索引删除。
• 执行批量加载前,索引可能已删除。在大量加载数据前,先删除索引,加载后再重新创建索引,这样做的好处有:
– 提高加载性能
– 更有效地使用索引空间
• 仅定期使用的索引无需不必要的维护,尤其在基于易失表时更是如此。这是 OLTP 系统中的通常情况,在该系统中,年末或季度末会生成特殊的查询,以收集在总结会上使用的信息。
• 当在某种类型的操作(如加载)期间出现例程失败时,可能会将索引标记为INVALID。在这种情况下,需要删除并重建索引。
• 索引已损坏。
不能删除约束所需的索引,因此,必须先禁用或删除相关的约束。
分析索引
ANALYZE INDEX index_name VALIDATE STRUCTURE;
可在INDEX_STATS这个表中查看
SQL> analyze index index_t1 validate structure;
Index analyzed.
SQL> SELECT blocks, pct_used, distinct_keys lf_rows, del_lf_rows FROM index_stats;
BLOCKS PCT_USED LF_ROWS DEL_LF_ROWS
---------- ---------- ---------- -----------
8 47 1000 0
SQL>
如果索引中已删除行的比例很高,请重新组织该索引。例如:当DEL_LF_ROWS 占
LF_ROWS 的比率超过 30% 时
SQL> select count(*) from t;
COUNT(*)
----------
700
SQL> analyze index index_t1 validate structure;
Index analyzed.
SQL> SELECT blocks, pct_used, distinct_keys lf_rows, del_lf_rows FROM index_stats;
BLOCKS PCT_USED LF_ROWS DEL_LF_ROWS
---------- ---------- ---------- -----------
8 47 1000 300
SQL>
合并索引
ALTER INDEX index_name COALESCE;
SQL> ALTER INDEX index_t1 COALESCE;
Index altered.
SQL> analyze index index_t1 validate structure;
Index analyzed.
SQL> SELECT blocks, pct_used, distinct_keys lf_rows, del_lf_rows FROM index_stats;
BLOCKS PCT_USED LF_ROWS DEL_LF_ROWS
---------- ---------- ---------- -----------
8 44 700 0
SQL>
重建索引
索引重建具有以下特点:
• 将现有索引作为数据源建立新索引。
• 使用现有索引建立索引时无需排序,从而使性能更佳。
• 在建立新索引后,删除旧索引。在重建期间,各自的表空间内需要有足够的空间以容
纳新旧索引。
• 结果索引不包括任何已删除的项。因此,该索引可以更有效地使用空间。
• 在建立新索引的过程中,查询可继续使用现有索引。
在下列情况下应重建索引:
• 需要将现有索引移到另外的表空间中。如果索引和表在同一表空间中或者需要跨磁盘重新分布对象时,可能需要执行此操作。
• 索引中包含很多已删除的项。这是滑动索引(如订单表中的订单号上的索引)存在的典型问题,完成的订单已被删除,并将具有更高订单号的新订单添加到表中。如果有几个旧订单未完成,则可能有若干个索引叶块包含除几个已删除项之外的全部项。
• 需要将现有正常索引转换成反向键索引。在从Oracle 服务器的早期发行版移植应用程序时,可能会出现这种情况。
• 已通过 ALTER TABLE..MOVE TABLESPACE 命令将索引表移至其它表空间。
ALTER INDEX ...REBUILD 命令不能用于将位图索引更改为 B 树索引,反之亦然。
使用下列命令重建索引:
ALTER INDEX [schema.] index REBUILD
[ TABLESPACE tablespace ]
[ PCTFREE integer ]
[ INITRANS integer ]
[ MAXTRANS integer ]
[ storage-clause ]
[ LOGGING| NOLOGGING ]
[ REVERSE | NOREVERSE ]
联机重建索引
ALTER INDEX index_name REBUILD ONLINE;
SQL> delete from t where id > 650;
50 rows deleted.
SQL> commit;
Commit complete.
SQL> analyze index index_t1 validate structure;
Index analyzed.
SQL> SELECT blocks, pct_used, distinct_keys lf_rows, del_lf_rows FROM index_stats;
BLOCKS PCT_USED LF_ROWS DEL_LF_ROWS
---------- ---------- ---------- -----------
8 44 700 50
SQL> alter index index_t1 REBUILD ONLINE;
Index altered.
SQL> analyze index index_t1 validate structure;
Index analyzed.
SQL> SELECT blocks, pct_used, distinct_keys lf_rows, del_lf_rows FROM index_stats;
BLOCKS PCT_USED LF_ROWS DEL_LF_ROWS
---------- ---------- ---------- -----------
8 41 650 0
offline rebuild index
ALTER INDEX index_name REBUILD;
SQL> delete from t where id >600;
50 rows deleted.
SQL> commit;
Commit complete.
SQL> analyze index index_t1 validate structure;
Index analyzed.
SQL> SELECT blocks, pct_used, distinct_keys lf_rows, del_lf_rows FROM index_stats;
BLOCKS PCT_USED LF_ROWS DEL_LF_ROWS
---------- ---------- ---------- -----------
8 41 650 50
SQL> alter index index_t1 rebuild;
Index altered.
SQL> analyze index index_t1 validate structure;
Index analyzed.
SQL> SELECT blocks, pct_used, distinct_keys lf_rows, del_lf_rows FROM index_stats;
BLOCKS PCT_USED LF_ROWS DEL_LF_ROWS
---------- ---------- ---------- -----------
8 38 600 0
SQL>
发表评论
-
OracleDBA之路Manager Users
2011-10-20 21:19 598管理用户 Manging UsersSchema创建Datab ... -
OracleDBA之路Manager Table(二)
2011-09-22 23:55 688临时表管理 create tablespace assm d ... -
OracleDBA之路Manager Table(一)
2011-09-22 23:01 738renaming a columnalter table ta ... -
OracleDBA之路Undo Data(三)
2011-09-19 22:00 649SQL> select addr,used_ublk f ... -
OracleDBA之路Undo Data(二)
2011-09-19 21:30 947计算undo表空间的大小1.得到undo数据块在undo表空间 ... -
OracleDBA之路Undo Data(一)
2011-09-18 22:05 713Undo的管理 unod 表空间的创建 create ... -
OracleDBA之路Storage Structure(三)
2011-09-14 23:50 803数据库的快I/O的最小单位,由一个或多个操作系统块组成,在创建 ... -
OracleDBA之路Storage Structure(二)
2011-09-14 23:50 566存储子句优先级存储参数可以在segment级别指定存储子句,以 ... -
OracleDBA之路Storage Structure(一)
2011-09-14 23:49 778存储结构Database--->tablespace-- ... -
OracleDBA之路之Tablespace(九)
2011-09-13 22:12 631删除表空间系统表空间不允许删除,具有活动状态即active状态 ... -
OracleDBA之路之Tabespace(八)
2011-09-13 22:02 718移动表空间的数据文件方法一 对tablespace 的操作首先 ... -
OracleDBA之路之Tabespace(七)
2011-09-13 21:58 732使用resize来修改表数据文件的大小alter databa ... -
OracleDBA之路之Tabespace(六)
2011-09-12 22:58 584查看表空间使用情况 select a.tablespace_ ... -
OracleDBA之路之Tabespace(五)
2011-09-12 22:43 640扩容表空间大小 查询用户使用的表空间SQL> show ... -
OracleDBA之路之Tabespace(四)
2011-09-12 21:46 632将表空间设置为read only /read write ;o ... -
OracleDBA之路之Tabespace(三)
2011-09-12 21:45 624创建一个永久的表空间 创建一个永久的表空间 SQL> ... -
OracleDBA之路之Tabespace(二)
2011-09-12 21:44 648修改系统的默认临时表空间 查询系统使用的默认临时表空间SQL ... -
OracleDBA之路之Tabespace(一)
2011-09-12 21:43 630数据库、表空间和数据 ... -
OracleDBA之路之Redo log files(四)
2011-09-11 16:56 667Relocating and Renaming Redo Lo ... -
OracleDBA之路之Redo log files(三)
2011-09-11 16:55 1236Dropping Redo Log Members一个组中至少 ...
相关推荐
Oracle数据库是全球广泛使用的数据库系统之一,尤其在企业级应用中占据主导地位。Oracle DBA的日常管理工作涉及多个方面,包括但不限于性能监控、故障排查、数据备份与恢复、安全性管理以及数据库优化。 一、性能...
Oracle DBA(数据库管理员)认证是Oracle公司提供的一项专业资格认证,旨在证明持证者具有管理和维护Oracle数据库系统的专业知识和技能。这个题库包含了Oracle DBA认证考试中可能遇到的各种问题,涵盖了数据库管理的...
4. 数据库备份与恢复:RMAN(恢复管理器)是Oracle提供的一个强大工具,DBA可以通过RMAN脚本进行数据库备份、增量备份、归档日志管理等操作。了解如何编写RMAN脚本进行完整备份、增量备份和恢复策略至关重要。 5. ...
Oracle数据库DBA(Database Administrator)是负责Oracle数据库系统运行管理的专业技术人员。在准备面试Oracle数据库管理员岗位时,掌握相关的技术知识和处理问题的能力是非常重要的。以下是针对给定的Oracle数据库...
### Oracle DBA 面试题目及答案解析 #### 1. 数据库正常启动过程中的几个状态 **知识点概述:** 在Oracle数据库中,数据库的启动过程分为三个主要阶段:`STARTUP NOMOUNT`、`STARTUP MOUNT` 和 `STARTUP OPEN`。 ...
B*树索引是最常用的索引类型之一,它采用倒排树结构来加速对表中行的访问。这种索引结构能够确保查询时快速定位到所需的数据行。如图14-1所示,B*树索引通过层级结构将数据组织起来,顶部为根节点,中间为分支节点,...
【Oracle DBA 笔试题详解】 一、Database 1. 创建用户时,需要赋予`CONNECT`权限,使得新用户能够连接到数据库。 2. 重构索引通常涉及重建索引,可以通过`ALTER INDEX REBUILD`命令实现,或者在索引碎片过多时,...
### ORACLE DBA 学习笔记关键知识点解析 #### 一、限制用户访问进程数量 在Oracle数据库管理中,为了防止因某个用户的异常操作导致整个数据库性能下降甚至挂起,通常需要对用户的连接数进行限制。这可以通过设置...
- **备份与恢复**:定期备份数据库并确保能够快速恢复是DBA的重要职责之一。 - **性能监控与调优**:通过监控工具识别瓶颈,调整参数以优化系统性能。 - **安全配置**:确保数据安全,包括设置访问控制、加密数据...
简介: 希望可以给面试DBA的朋友有所帮助,里面文件压缩包里有面试相关的题目与数据库概念;如:一:SQL tuning 类 1:列举几种表连接方式 hash join/merge join/nest loop(cluster join)/index join 2:不...
Oracle DBA Tables是Oracle数据库中的一个核心视图,它提供了关于Oracle数据库中所有表的信息,包括但不限于表的所有者、表空间名称、聚簇名称等。这些信息对于数据库管理员(DBA)来说至关重要,因为它可以帮助他们...
在Oracle数据库管理(DBA)工作中,SQL语句扮演着至关重要的角色,它们是DBA进行数据查询、数据库维护和性能优化的主要工具。以下是一些ORACLE DBA常用的SQL语句,这些语句涵盖了数据库管理和优化的核心方面: 1. *...
#### 一、Oracle DBA角色与职责 Oracle数据库管理员(DBA)负责管理和维护Oracle数据库系统,确保其稳定运行、高效性和安全性。DBA的主要职责包括但不限于数据库的设计、安装、配置、性能调优、备份与恢复、安全控制...
Oracle DBA(数据库管理员)的日常工作涉及众多方面,包括但不限于监控数据库健康状态、优化性能、保证数据安全性以及处理故障。本文将重点介绍如何利用shell脚本自动化这些日常任务,并回顾一些常用的Unix命令。 ...
在Oracle数据库领域,DBA(数据库管理员)的职责包括设计、实施、维护和优化数据库系统。以下是Oracle数据库DBA面试中可能遇到的知识点: 1. 数据库备份类型及优缺点 热备份是在数据库处于归档模式下,并且数据库在...
### Oracle DBA 学习笔记知识点总结 #### 一、限制用户访问进程数量 在Oracle数据库管理中,可能会遇到因为连接池的问题导致某些用户的连接数超出预期,甚至达到数据库进程的最大值的情况。为了应对这种情况,可以...
### Oracle DBA必备SQL语句列表详解 #### 监控索引是否被使用 - **命令**: - `ALTER INDEX &index_name MONITORING USAGE;` - `ALTER INDEX &index_name NOMONITORING USAGE;` - `SELECT * FROM V$OBJECT_USAGE...
### Oracle数据库DBA面试题详解 #### 1. 解释冷备份和热备份的不同点以及各自的优点 - **冷备份**:这是一种简单的物理文件复制方式,通常在数据库完全关闭的情况下进行。冷备份适用于所有模式的数据库,无论是...
SQL Tuning是数据库管理员(DBA)最常见的任务之一。它涉及到SQL语句的优化,以提高数据库的性能。以下是SQL Tuning中的一些重要知识点: 1. 表连接方式:hash join、merge join、nest loop(cluster join)、index...