- 浏览: 1022847 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (529)
- 服务器 (8)
- jsp (1)
- java (6)
- AIX (1)
- solaris (3)
- linux学习 (53)
- javaScript (2)
- hibernate (1)
- 数据库 (74)
- sql语句 (8)
- oracle 学习 (75)
- oracle 案例 (42)
- oracle 管理 (42)
- Oracle RAC (27)
- oracle data guard (12)
- oracle 参数讲解 (14)
- Oracle 字符集 (8)
- oracle性能调优 (24)
- oracle备份与恢复 (12)
- oracle Tablespace (9)
- oracle性能诊断艺术 (1)
- oracle 11g学习 (5)
- oracle streams (1)
- oracle upgrade and downgrade (4)
- db2学习 (13)
- db2命令学习 (2)
- mysql (28)
- sql server (30)
- sql server 2008 (0)
- 工具 (10)
- 操作系统 (3)
- c++ (1)
- stock (1)
- 生活 (5)
- HADOOP (2)
最新评论
-
massjcy:
...
如何将ubuntu文件夹中文名改为英文 -
skypiea:
谢谢。。。
终于解决了。。。
Oracle 10.2.0.4(5)EM不能启动的解决方案(Patch 8350262) -
qwe_rt:
引用vi /etc/sysconfig/network 请问 ...
Linux操作系统下配置静态IP上网 -
liuqiang:
sudo killall -9 apache2
ps 和 kill 命令详解 -
dazuiba:
引用*绝杀 kill -9 PID 当使用此命令时,一定要通过 ...
ps 和 kill 命令详解
索引维护是DBA的一项重要工作。当一个系统运行很长一段时间,经过需求变更、结构设计变化后,系统中就可能会存在一些不会被使用的索引,或者使用效率很低的索引。这些索
引的存在,不仅占用系统空间,而且会降低事务效率,增加系统的waits。因此,我们需要找出那些无用或低效索引的索引并删除它们(找出无用索引可以通过索引监控 的方法)
。但是,直接删除索引还是存在一定风险的。例如,某些索引可能只是在一些周期的作业中被使用到,而如果监控周期没有覆盖到这些作业的触发点,就会认为索引是无用的而被
删除。当作业启动后,可能就会对系统性能造成冲击。这时,可能就会手忙脚乱的去找回索引定义语句、重建索引。
11G之前,我们可以先不删除索引,而将其修改为unusable。这样的话,索引的定义并未删除,只是索引不能再被使用也不会随着表数据的更新而更新。当需要重新使用该索引
时,需要用rebuild语句重建、然后更新统计信息。对于一些大表来说,这个时间可能就非常长。
在11g里,Oracle 提供了一个新的特性来降低直接删除索引或者禁用索引的风险,那就是索引不可见(Index Invisible)。我们可以在创建索引时指定invisible属性或者用
alter语句来修改索引为invisible。
在session级别设置参数optimizer_use_invisible_indexes为true,系统就可以使用invisible索引。
alter session set optimizer_use_invisible_indexes=true;
SQL代码
LIBIN@tran>select count(*) from all_objects;
COUNT(*)
----------
55622
LIBIN@tran>create table t_test1 as select * from all_objects;
表已创建。
LIBIN@tran>desc all_objects;
名称
-----------------------------------------------------------------------------------------------------------
OWNER
OBJECT_NAME
SUBOBJECT_NAME
OBJECT_ID
DATA_OBJECT_ID
OBJECT_TYPE
CREATED
LAST_DDL_TIME
TIMESTAMP
STATUS
TEMPORARY
GENERATED
SECONDARY
NAMESPACE
EDITION_NAME
LIBIN@tran>create index t_test1_idx on t_test1(object_name);
索引已创建。
LIBIN@tran>begin
2 dbms_stats.gather_table_stats(user,'t_test1');
3 end;
4 /
PL/SQL 过程已成功完成。
LIBIN@tran>set autotrace trace only;
SP2-0158: 未知的 SET 选项 "only"
LIBIN@tran>set autotrace traceonly;
LIBIN@tran>select * from t_test1 where object_name like 'LIBIN%';
未选定行
执行计划
----------------------------------------------------------
Plan hash value: 3466041839
-------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
-------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 2 | 196 | 3 (0)| 00:00:01 |
| 1 | TABLE ACCESS BY INDEX ROWID| T_TEST1 | 2 | 196 | 3 (0)| 00:00:01 |
|* 2 | INDEX RANGE SCAN | T_TEST1_IDX | 2 | | 2 (0)| 00:00:01 |
-------------------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
2 - access("OBJECT_NAME" LIKE 'LIBIN%')
filter("OBJECT_NAME" LIKE 'LIBIN%')
统计信息
----------------------------------------------------------
1 recursive calls
0 db block gets
2 consistent gets
0 physical reads
0 redo size
1124 bytes sent via SQL*Net to client
389 bytes received via SQL*Net from client
1 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
0 rows processed
LIBIN@tran>
LIBIN@tran>select index_name,user_stats,visibility from user_indexes where index_name='T_TEST1_IDX';
INDEX_NAME USER_S VISIBILITY
------------------------------------------------------------ ------ ------------------
T_TEST1_IDX NO VISIBLE
LIBIN@tran>
LIBIN@tran>alter index t_test1_idx invisible;
索引已更改。
LIBIN@tran>select index_name,user_stats,visibility from user_indexes where index_name='T_TEST1_IDX';
INDEX_NAME USER_S VISIBILITY
------------------------------------------------------------ ------ ------------------
T_TEST1_IDX NO INVISIBLE
LIBIN@tran>
LIBIN@tran>select * from t_test1 where object_name like 'LIBIN%';
未选定行
执行计划
----------------------------------------------------------
Plan hash value: 1883417357
-----------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
-----------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 2 | 196 | 226 (1)| 00:00:03 |
|* 1 | TABLE ACCESS FULL| T_TEST1 | 2 | 196 | 226 (1)| 00:00:03 |
-----------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
1 - filter("OBJECT_NAME" LIKE 'LIBIN%')
统计信息
----------------------------------------------------------
253 recursive calls
0 db block gets
869 consistent gets
4 physical reads
0 redo size
1124 bytes sent via SQL*Net to client
389 bytes received via SQL*Net from client
1 SQL*Net roundtrips to/from client
6 sorts (memory)
0 sorts (disk)
0 rows processed
LIBIN@tran>
LIBIN@tran>alter index t_test1_idx visible;
索引已更改。
LIBIN@tran>select index_name,user_stats,visibility from user_indexes where index_name='T_TEST1_IDX';
INDEX_NAME USER_S VISIBILITY
------------------------------------------------------------ ------ ------------------
T_TEST1_IDX NO VISIBLE
LIBIN@tran>explain plan for select /*+ index(t_test1 t_test1_idx) */ * from t_test1 where object_name like 'LIBIN%';
已解释。
LIBIN@tran>select * from table(dbms_xplan.display());
PLAN_TABLE_OUTPUT
---------------------------------------------------------------------------------------------------------------------
Plan hash value: 3466041839
-------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
-------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 2 | 196 | 3 (0)| 00:00:01 |
| 1 | TABLE ACCESS BY INDEX ROWID| T_TEST1 | 2 | 196 | 3 (0)| 00:00:01 |
|* 2 | INDEX RANGE SCAN | T_TEST1_IDX | 2 | | 2 (0)| 00:00:01 |
-------------------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
2 - access("OBJECT_NAME" LIKE 'LIBIN%')
filter("OBJECT_NAME" LIKE 'LIBIN%')
已选择15行。
LIBIN@tran>alter index t_test1_idx invisible;
索引已更改。
LIBIN@tran>select index_name,user_stats,visibility from user_indexes where index_name='T_TEST1_IDX';
INDEX_NAME USER_S VISIBILITY
------------------------------------------------------------ ------ ------------------
T_TEST1_IDX NO INVISIBLE
LIBIN@tran>explain plan for select /*+ index(t_test1 t_test1_idx) */ * from t_test1 where object_name like 'LIBIN%';
已解释。
LIBIN@tran>select * from table(dbms_xplan.display());
PLAN_TABLE_OUTPUT
---------------------------------------------------------------------------------------------------------------------
Plan hash value: 1883417357
-----------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
-----------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 2 | 196 | 226 (1)| 00:00:03 |
|* 1 | TABLE ACCESS FULL| T_TEST1 | 2 | 196 | 226 (1)| 00:00:03 |
-----------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
1 - filter("OBJECT_NAME" LIKE 'LIBIN%')
已选择13行。
LIBIN@tran>alter session set optimizer_use_invisible_indexes=true;
会话已更改。
LIBIN@tran>explain plan for select /*+ index(t_test1 t_test1_idx) */ * from t_test1 where object_name like 'LIBIN%';
已解释。
LIBIN@tran>select * from table(dbms_xplan.display());
PLAN_TABLE_OUTPUT
-------------------------------------------------------------------------------------------------------------------------------
Plan hash value: 3466041839
-------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
-------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 2 | 196 | 3 (0)| 00:00:01 |
| 1 | TABLE ACCESS BY INDEX ROWID| T_TEST1 | 2 | 196 | 3 (0)| 00:00:01 |
|* 2 | INDEX RANGE SCAN | T_TEST1_IDX | 2 | | 2 (0)| 00:00:01 |
-------------------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
2 - access("OBJECT_NAME" LIKE 'LIBIN%')
filter("OBJECT_NAME" LIKE 'LIBIN%')
已选择15行。
LIBIN@tran>select * from t_test1 where object_name like 'LIBIN%';
未选定行
LIBIN@tran>select * from table(dbms_xplan.display());
PLAN_TABLE_OUTPUT
-------------------------------------------------------------------------------------------------------------------------------
Plan hash value: 3466041839
-------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
-------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 2 | 196 | 3 (0)| 00:00:01 |
| 1 | TABLE ACCESS BY INDEX ROWID| T_TEST1 | 2 | 196 | 3 (0)| 00:00:01 |
|* 2 | INDEX RANGE SCAN | T_TEST1_IDX | 2 | | 2 (0)| 00:00:01 |
-------------------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
2 - access("OBJECT_NAME" LIKE 'LIBIN%')
filter("OBJECT_NAME" LIKE 'LIBIN%')
已选择15行。
LIBIN@tran>
引的存在,不仅占用系统空间,而且会降低事务效率,增加系统的waits。因此,我们需要找出那些无用或低效索引的索引并删除它们(找出无用索引可以通过索引监控 的方法)
。但是,直接删除索引还是存在一定风险的。例如,某些索引可能只是在一些周期的作业中被使用到,而如果监控周期没有覆盖到这些作业的触发点,就会认为索引是无用的而被
删除。当作业启动后,可能就会对系统性能造成冲击。这时,可能就会手忙脚乱的去找回索引定义语句、重建索引。
11G之前,我们可以先不删除索引,而将其修改为unusable。这样的话,索引的定义并未删除,只是索引不能再被使用也不会随着表数据的更新而更新。当需要重新使用该索引
时,需要用rebuild语句重建、然后更新统计信息。对于一些大表来说,这个时间可能就非常长。
在11g里,Oracle 提供了一个新的特性来降低直接删除索引或者禁用索引的风险,那就是索引不可见(Index Invisible)。我们可以在创建索引时指定invisible属性或者用
alter语句来修改索引为invisible。
在session级别设置参数optimizer_use_invisible_indexes为true,系统就可以使用invisible索引。
alter session set optimizer_use_invisible_indexes=true;
SQL代码
LIBIN@tran>select count(*) from all_objects;
COUNT(*)
----------
55622
LIBIN@tran>create table t_test1 as select * from all_objects;
表已创建。
LIBIN@tran>desc all_objects;
名称
-----------------------------------------------------------------------------------------------------------
OWNER
OBJECT_NAME
SUBOBJECT_NAME
OBJECT_ID
DATA_OBJECT_ID
OBJECT_TYPE
CREATED
LAST_DDL_TIME
TIMESTAMP
STATUS
TEMPORARY
GENERATED
SECONDARY
NAMESPACE
EDITION_NAME
LIBIN@tran>create index t_test1_idx on t_test1(object_name);
索引已创建。
LIBIN@tran>begin
2 dbms_stats.gather_table_stats(user,'t_test1');
3 end;
4 /
PL/SQL 过程已成功完成。
LIBIN@tran>set autotrace trace only;
SP2-0158: 未知的 SET 选项 "only"
LIBIN@tran>set autotrace traceonly;
LIBIN@tran>select * from t_test1 where object_name like 'LIBIN%';
未选定行
执行计划
----------------------------------------------------------
Plan hash value: 3466041839
-------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
-------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 2 | 196 | 3 (0)| 00:00:01 |
| 1 | TABLE ACCESS BY INDEX ROWID| T_TEST1 | 2 | 196 | 3 (0)| 00:00:01 |
|* 2 | INDEX RANGE SCAN | T_TEST1_IDX | 2 | | 2 (0)| 00:00:01 |
-------------------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
2 - access("OBJECT_NAME" LIKE 'LIBIN%')
filter("OBJECT_NAME" LIKE 'LIBIN%')
统计信息
----------------------------------------------------------
1 recursive calls
0 db block gets
2 consistent gets
0 physical reads
0 redo size
1124 bytes sent via SQL*Net to client
389 bytes received via SQL*Net from client
1 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
0 rows processed
LIBIN@tran>
LIBIN@tran>select index_name,user_stats,visibility from user_indexes where index_name='T_TEST1_IDX';
INDEX_NAME USER_S VISIBILITY
------------------------------------------------------------ ------ ------------------
T_TEST1_IDX NO VISIBLE
LIBIN@tran>
LIBIN@tran>alter index t_test1_idx invisible;
索引已更改。
LIBIN@tran>select index_name,user_stats,visibility from user_indexes where index_name='T_TEST1_IDX';
INDEX_NAME USER_S VISIBILITY
------------------------------------------------------------ ------ ------------------
T_TEST1_IDX NO INVISIBLE
LIBIN@tran>
LIBIN@tran>select * from t_test1 where object_name like 'LIBIN%';
未选定行
执行计划
----------------------------------------------------------
Plan hash value: 1883417357
-----------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
-----------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 2 | 196 | 226 (1)| 00:00:03 |
|* 1 | TABLE ACCESS FULL| T_TEST1 | 2 | 196 | 226 (1)| 00:00:03 |
-----------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
1 - filter("OBJECT_NAME" LIKE 'LIBIN%')
统计信息
----------------------------------------------------------
253 recursive calls
0 db block gets
869 consistent gets
4 physical reads
0 redo size
1124 bytes sent via SQL*Net to client
389 bytes received via SQL*Net from client
1 SQL*Net roundtrips to/from client
6 sorts (memory)
0 sorts (disk)
0 rows processed
LIBIN@tran>
LIBIN@tran>alter index t_test1_idx visible;
索引已更改。
LIBIN@tran>select index_name,user_stats,visibility from user_indexes where index_name='T_TEST1_IDX';
INDEX_NAME USER_S VISIBILITY
------------------------------------------------------------ ------ ------------------
T_TEST1_IDX NO VISIBLE
LIBIN@tran>explain plan for select /*+ index(t_test1 t_test1_idx) */ * from t_test1 where object_name like 'LIBIN%';
已解释。
LIBIN@tran>select * from table(dbms_xplan.display());
PLAN_TABLE_OUTPUT
---------------------------------------------------------------------------------------------------------------------
Plan hash value: 3466041839
-------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
-------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 2 | 196 | 3 (0)| 00:00:01 |
| 1 | TABLE ACCESS BY INDEX ROWID| T_TEST1 | 2 | 196 | 3 (0)| 00:00:01 |
|* 2 | INDEX RANGE SCAN | T_TEST1_IDX | 2 | | 2 (0)| 00:00:01 |
-------------------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
2 - access("OBJECT_NAME" LIKE 'LIBIN%')
filter("OBJECT_NAME" LIKE 'LIBIN%')
已选择15行。
LIBIN@tran>alter index t_test1_idx invisible;
索引已更改。
LIBIN@tran>select index_name,user_stats,visibility from user_indexes where index_name='T_TEST1_IDX';
INDEX_NAME USER_S VISIBILITY
------------------------------------------------------------ ------ ------------------
T_TEST1_IDX NO INVISIBLE
LIBIN@tran>explain plan for select /*+ index(t_test1 t_test1_idx) */ * from t_test1 where object_name like 'LIBIN%';
已解释。
LIBIN@tran>select * from table(dbms_xplan.display());
PLAN_TABLE_OUTPUT
---------------------------------------------------------------------------------------------------------------------
Plan hash value: 1883417357
-----------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
-----------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 2 | 196 | 226 (1)| 00:00:03 |
|* 1 | TABLE ACCESS FULL| T_TEST1 | 2 | 196 | 226 (1)| 00:00:03 |
-----------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
1 - filter("OBJECT_NAME" LIKE 'LIBIN%')
已选择13行。
LIBIN@tran>alter session set optimizer_use_invisible_indexes=true;
会话已更改。
LIBIN@tran>explain plan for select /*+ index(t_test1 t_test1_idx) */ * from t_test1 where object_name like 'LIBIN%';
已解释。
LIBIN@tran>select * from table(dbms_xplan.display());
PLAN_TABLE_OUTPUT
-------------------------------------------------------------------------------------------------------------------------------
Plan hash value: 3466041839
-------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
-------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 2 | 196 | 3 (0)| 00:00:01 |
| 1 | TABLE ACCESS BY INDEX ROWID| T_TEST1 | 2 | 196 | 3 (0)| 00:00:01 |
|* 2 | INDEX RANGE SCAN | T_TEST1_IDX | 2 | | 2 (0)| 00:00:01 |
-------------------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
2 - access("OBJECT_NAME" LIKE 'LIBIN%')
filter("OBJECT_NAME" LIKE 'LIBIN%')
已选择15行。
LIBIN@tran>select * from t_test1 where object_name like 'LIBIN%';
未选定行
LIBIN@tran>select * from table(dbms_xplan.display());
PLAN_TABLE_OUTPUT
-------------------------------------------------------------------------------------------------------------------------------
Plan hash value: 3466041839
-------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
-------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 2 | 196 | 3 (0)| 00:00:01 |
| 1 | TABLE ACCESS BY INDEX ROWID| T_TEST1 | 2 | 196 | 3 (0)| 00:00:01 |
|* 2 | INDEX RANGE SCAN | T_TEST1_IDX | 2 | | 2 (0)| 00:00:01 |
-------------------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
2 - access("OBJECT_NAME" LIKE 'LIBIN%')
filter("OBJECT_NAME" LIKE 'LIBIN%')
已选择15行。
LIBIN@tran>
发表评论
-
oracle11g 不可见索引
2012-06-28 22:48 6索引维护是DBA的一项重要工作。当一个系统运行很长一段时间,经 ... -
oracle11g 不可见索引
2012-06-28 22:48 4索引维护是DBA的一项重要工作。当一个系统运行很长一段时间,经 ... -
oracle 快照数据库和物理备库的转换
2012-06-19 13:32 1774SQL> select * from v$version ... -
ORACLE11G 自动内存管理学习
2011-03-14 14:55 2125Oracle在简化内存管理方面过去几年做了巨大的努力,从Ora ... -
Oracle 11g新特性:Result Cache
2010-12-28 23:25 1754在Oracle Database 11g中,Ora ... -
Oracle 11g Alert Log日志信息的变化
2010-12-26 21:49 1961从 Oracle 11g 开始,Oracle 数据库以XML与 ...
相关推荐
Oracle 11g 中引入了一个新特性,称为索引不可见(Index Invisible),它允许 DBA 将索引设置为不可见状态,使得优化器在选择查询计划时忽视该索引,而不影响索引的正常更新。 索引维护是 DBA 的一项重要工作。在...
Oracle 11g 数据字典和性能视图是数据库管理员和开发人员进行高效数据库管理和优化的重要工具。在Oracle 11g中,数据字典是一系列预定义的系统表和视图,它们存储了关于数据库对象、用户权限、系统状态等关键信息。...
- **定义**:SQL Access Advisor是Oracle 11g中的一个智能顾问工具,能够分析查询模式并提出索引建议以优化查询性能。 - **作用**:通过自动化的索引调整建议,提高了查询效率,降低了维护成本。 - **应用场景**:...
4. **模式管理**:改进的模式管理使添加默认值的列变得更加简便,同时增加了对不可见索引、虚拟列和只读表的支持,增强了数据库的设计和维护能力。 5. **SQL计划管理**:通过绑定变量确保每次都能选择正确的执行...
Oracle 11g支持多种类型的索引,如B树索引、位图索引、函数索引和全局分区索引等。B树索引是最常见的类型,适用于频繁查询的列。位图索引适用于值较少且查询涉及多列的情况。函数索引允许在索引中应用函数,而全局...
- **不可见索引的应用场景**: - 在删除索引之前进行测试,观察对性能的影响。 - 对特定的操作或模块使用临时索引结构,以避免影响整个应用程序。 不可见的索引为DBA提供了一种灵活的方式来管理和测试索引,而不会...
- **不可见的索引**:在不改变查询行为的情况下,暂时隐藏索引。 - **虚拟列**:允许基于其他列的值计算出的列。 #### 八、SQL计划管理 **SQL计划管理**是一个新特性,旨在确保SQL执行计划的高效性和一致性。通过...
例如,DBA_TABLES、ALL_TABLES和USER_TABLES视图分别提供了数据库管理员、当前用户和其他用户可见的表的信息。 在变更表结构时,管理员可能需要添加或删除列、更改列的数据类型,或者调整表的存储参数等。变更操作...
- **Oracle2** 至 **Oracle11g**:从最初的Oracle2到Oracle11g,Oracle数据库经历了三十多年的技术革新和发展,每个版本都引入了新的特性和改进。 - **Oracle9i** 和 **Oracle10g**:这两个版本分别引入了许多重要的...
12.5.1 不可见索引 355 12.5.2 虚拟索引 356 12.5.3 位图联结索引 357 12.6 小结 359 第13章 SELECT以外的内容 360 13.1 INSERT 360 13.1.1 直接路径插入 360 13.1.2 多表插入 363 13.1.3 条件插入 364 ...
- 在Oracle 10g版本中,MERGE语句增加了更多灵活性,如支持多个WHEN条件等。 **其他说明:** - MERGE语句结合了INSERT和UPDATE的功能,减少了数据库维护的成本和复杂度。 #### PL/SQL调试方法 **捕捉违例:** - ...
数据文件是Oracle数据库中极其重要的组成部分,它们主要用于存储数据库的所有数据,包括表数据以及索引数据。这些文件通常具有.dbf的扩展名。每个数据库实例可以包含多个数据文件,但是每一个数据文件只能属于一个表...
Oracle 11g Release 2 (11.2) 是该系列中的一个重要版本,本文将围绕此版本来详细介绍其核心概念。 #### 二、Oracle 关系数据结构 Oracle 数据库的核心基于关系模型,通过表格的形式组织数据。每个表由行和列组成...
### Oracle数据库11g:面向DBA和开发人员的重要新特性 #### 数据库重放 在Oracle数据库11g中,引入了一项重要的新特性——**数据库重放**。这项功能使得DBA能够捕获生产环境中的数据库负载,并在测试环境中进行...
尽管`MAXSIZE UNLIMITED`表明文件大小无限制,但在实际操作中,每个数据文件的大小仍有限制,例如在Oracle 11g中,最大值可能为32GB。 表空间的维护还包括确保数据文件的合理分布和I/O负载均衡,尤其是在RAC环境中...
Oracle 10g 的新特性之一是引入了回收站(Recycle Bin)功能,这是一个类似于操作系统回收站的设计,用于在数据库层面提供数据恢复的便捷方式。在 Oracle 10g 之前,如果用户误删了表,恢复过程相对复杂。但有了回收...
- 在 Oracle 10g 及以上版本,默认情况下所有 Oracle 用户均处于锁定状态。 - 使用 `SYSTEM` 或 `SYS` 用户登录并执行解锁操作。 ```sql ALTER USER scott IDENTIFIED BY tiger ACCOUNT UNLOCK; ALTER USER hr ...
- **索引和视图**:可以对临时表创建索引并基于临时表创建视图,但这些索引也是临时的,只对当前会话或事务有效。 - **触发器支持**:临时表可以拥有触发器,扩展了功能。 - **导入导出**:可以使用`EXPDP`和`...
有序散列聚簇表是Oracle 10g引入的新特性,它结合了散列聚簇表和索引组织表的特点,行按照某个键值散列,并保持一定的有序性。这种结构适用于那些需要按先进先出原则处理数据的场景,如订单系统中的订单处理。 ### ...