- 浏览: 656248 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
HkEndless:
不好意思,请问这确定是回调机制吗。你的例子中只是将接口的实现类 ...
Spring CallBack回调机制介绍 -
hanmiao:
写的真乱啊,完全不知所云...
Java如何调用可执行文件和批处理命令 -
junia_1:
junia_1 写道 shock: ...
为什么要使用EJB -
junia_1:
shock:
为什么要使用EJB -
coollifer:
不错
SQL Server数据导入到Oracle中的方法
作用:DBMS_STATS.GATHER_TABLE_STATS统计表,列,索引的统计信息.
DBMS_STATS.GATHER_TABLE_STATS的语法如下:
DBMS_STATS.GATHER_TABLE_STATS (ownname VARCHAR2, tabname VARCHAR2, partname VARCHAR2, estimate_percent NUMBER, block_sample BOOLEAN, method_opt VARCHAR2, degree NUMBER, granularity VARCHAR2, cascade BOOLEAN, stattab VARCHAR2, statid VARCHAR2, statown VARCHAR2, no_invalidate BOOLEAN, force BOOLEAN);
参数说明:
ownname:要分析表的拥有者
tabname:要分析的表名.
partname:分区的名字,只对分区表或分区索引有用.
estimate_percent:采样行的百分比,取值范围[0.000001,100],null为全部分析,不采样. 常量:DBMS_STATS.AUTO_SAMPLE_SIZE是默认值,由oracle决定最佳取采样值.
block_sapmple:是否用块采样代替行采样.
method_opt:决定histograms信息是怎样被统计的.method_opt的取值如下:
for all columns:统计所有列的histograms.
for all indexed columns:统计所有indexed列的histograms.
for all hidden columns:统计你看不到列的histograms
for columns <list> SIZE <N> | REPEAT | AUTO | SKEWONLY:统计指定列的histograms.N的取值范围[1,254]; REPEAT上次统计过的histograms;AUTO由oracle决定N的大小;SKEWONLY multiple end-points with the same value which is what we define by "there is skew in the data
degree:决定并行度.默认值为null.
granularity:Granularity of statistics to collect ,only pertinent if the table is partitioned.
cascace:是收集索引的信息.默认为falase.
stattab指定要存储统计信息的表,statid如果多个表的统计信息存储在同一个stattab中用于进行区分.statown存储统计信息表的拥有者.以上三个参数若不指定,统计信息会直接更新到数据字典.
no_invalidate: Does not invalidate the dependent cursors if set to TRUE. The procedure invalidates the dependent cursors immediately if set to FALSE.
force:即使表锁住了也收集统计信息.
例子:
execute dbms_stats.gather_table_stats(ownname => 'owner',tabname => 'table_name' ,estimate_percent => null ,method_opt => 'for all indexed columns' ,cascade => true);
例如:
在使用DBMS_STATS分析表的时候,我们经常要保存之前的分析,以防分析后导致系统性能低下然后进行快速恢复。
1、首先创建一个分析表,该表是用来保存之前的分析值:
SQL> begin
2 dbms_stats.create_stat_table(ownname=>'TEST',stattab=>'STAT_TABLE');
3 end;
4 /
PL/SQL 过程已成功完成。
SQL> begin
2 dbms_stats.gather_table_stats(ownname=>'TEST',tabname=>'T1');
3 end;
4 /
PL/SQL 过程已成功完成。
2、导出表分析信息到stat_table中
SQL> begin
2 dbms_stats.export_table_stats(ownname=>'TEST',tabname=>'T1',stattab=>'STAT_TABLE');
3 end;
4 /
PL/SQL 过程已成功完成。
SQL> select count(*) from TEST.STAT_TABLE;
COUNT(*)
----------
4
EXPORT_COLUMN_STATS:导出列的分析信息
EXPORT_INDEX_STATS:导出索引分析信息
EXPORT_SYSTEM_STATS:导出系统分析信息
EXPORT_TABLE_STATS:导出表分析信息
EXPORT_SCHEMA_STATS:导出方案分析信息
EXPORT_DATABASE_STATS:导出数据库分析信息
IMPORT_COLUMN_STATS:导入列分析信息
IMPORT_INDEX_STATS:导入索引分析信息
IMPORT_SYSTEM_STATS:导入系统分析信息
IMPORT_TABLE_STATS:导入表分析信息
IMPORT_SCHEMA_STATS:导入方案分析信息
IMPORT_DATABASE_STATS:导入数据库分析信息
GATHER_INDEX_STATS:分析索引信息
GATHER_TABLE_STATS:分析表信息,当cascade为true时,分析表、列(索引)信息
GATHER_SCHEMA_STATS:分析方案信息
GATHER_DATABASE_STATS:分析数据库信息
GATHER_SYSTEM_STATS:分析系统信息
4、删除分析信息
SQL> begin
2 dbms_stats.delete_table_stats(ownname=>'TEST',tabname=>'T1');
3 end;
4 /
PL/SQL 过程已成功完成。
SQL> SELECT num_rows,blocks,empty_blocks as empty, avg_space, chain_cnt, avg_row_len FROM dba_tables WHERE owner = 'TEST'
AND table_name = 'T1';
NUM_ROWS BLOCKS EMPTY AVG_SPACE CHAIN_CNT AVG_ROW_LEN
---------- ---------- ---------- ---------- ---------- -----------
没有查到分析数据
5、导入分析信息
SQL> begin
2 dbms_stats.import_table_stats(ownname=>'TEST',tabname=>'T1',stattab=>'STAT_TABLE');
3 end;
4 /
PL/SQL 过程已成功完成。
SQL> SELECT num_rows,blocks,empty_blocks as empty, avg_space, chain_cnt, avg_row_len FROM dba_tables WHERE owner = 'TEST'
AND table_name = 'T1';
NUM_ROWS BLOCKS EMPTY AVG_SPACE CHAIN_CNT AVG_ROW_LEN
---------- ---------- ---------- ---------- ---------- -----------
1000 5 0 0 0 16
可以查到分析数据
发表评论
-
ORA-14551: 无法在查询中执行 DML 操作
2013-11-30 13:45 1358最近在调试一个带DML操作的函数时,一直不成功,在PL/SQ ... -
Oracle Recursive Calls 说明
2013-04-09 23:11 1486一. Recursive Calls 说明 在执行计划 ... -
consistent gets db block gets
2013-04-09 19:58 1430consistent gets :consistent_ge ... -
SQL Server数据导入到Oracle中的方法
2012-07-17 17:09 1589在我们使用SQL Server数据库的过程中,有时需要将SQL ... -
更改ORACLE归档路径及归档模式
2012-07-16 18:23 1860在ORACLE10g和11g版本,ORAC ... -
disable/enable validate/novalidate 的区别
2012-01-08 11:41 1226启用约束: enable( validate) :启用约束,创 ... -
linux用dd测试磁盘速度
2012-01-07 21:58 1006首先要了解两个特殊的设备: /dev/null:回收站、 ... -
在数据分布严重不均的列上使用绑定变量容易错过更好的执行计划
2012-01-07 20:49 1012在数据分布严重不均的列上使用绑定变量容易错过更好的执行计划,原 ... -
Oracle hash join
2012-01-07 17:00 946hash join是oracle里面一个非常强悍的功能 ... -
恢复被rm意外删除数据文件
2012-01-05 12:30 1246一.模拟数据文件删除 [oracle ... -
oracle 块延迟清除(delayed block cleanout)
2012-01-04 22:47 1356为了保证事务的回退和满足多用户的 CR , orac ... -
Oracle数据库SCN号详解
2012-01-04 19:25 1537Oracle数据库SCN号详解: 系统检查点scn(v$da ... -
oracle常见问题与解答
2012-01-03 20:22 16661.对于sql,有几种方法查看执行计划,每种方法有什么区别,对 ... -
Oracle虚拟私有数据库(VPD)概述及简单举例
2011-12-23 12:35 1542Oracle虚拟私有数据库(VPD)概述及简单举例 1、Ora ... -
alter table move跟shrink space的区别
2011-12-17 15:02 1275都知道alter table move 或shrink spa ... -
How to dump Oracle Data Block?
2011-12-16 15:22 994Often while doing instance tuni ... -
oracle索引的5种使用模式
2011-12-14 21:19 1076索引的使用对数据库的性能有巨大的影响。 共有五类不同的使用模式 ... -
HP Unix中的dba MLOCK
2011-12-14 19:14 2226最近在HP平台上遇到两次跟dba MLOCK权限相关的错误: ... -
NESTED LOOP、HASH JOIN、SORT MERGE JOIN
2011-12-13 23:18 1373表连接方式及使用场合 ... -
Oracle用户权限
2011-12-12 19:48 1502系统权限: 1、使用GRANT语句向用户赋予系统权限: ...
相关推荐
`DBMS_STATS.GATHER_TABLE_STATS` 是 Oracle 数据库中的一个重要过程,主要用于收集表、列和索引的统计信息,这些统计信息对于优化器选择合适的执行计划至关重要。该过程允许数据库管理员通过一系列参数来灵活控制...
select 'execute dbms_stats.gather_table_stats(ownname => ''HAHA'', tabname => '''||table_name||''', estimate_percent => DBMS_STATS.AUTO_SAMPLE_SIZE, method_opt => ''FOR ALL COLUMNS SIZE AUTO'', ...
- `dbms_stats.gather_table_stats`: 收集表、列和索引的统计信息。 - `dbms_stats.gather_schema_stats`: 收集模式下所有对象的统计信息。 - `dbms_stats.gather_index_stats`: 收集索引的统计信息。 - `dbms_...
- 使用`DBMS_STATS.GATHER_INDEX_STATS`和`DBMS_STATS.GATHER_TABLE_STATS`包可以收集统计信息,帮助优化查询性能。 - 示例:`DBMS_STATS.GATHER_INDEX_STATS(USER, 'IDX');` - 这条语句收集了用户拥有的名为`IDX...
- **使用DBMS_STATS包**:Oracle提供了一个名为DBMS_STATS的包,其中包含了创建统计信息表的CREATE_STAT_TABLE过程。 - **创建统计信息表**:`EXEC DBMS_STATS.CREATE_STAT_TABLE(USER, 'MY_STATISTICS');` - **...
执行`DBMS_STATS.GATHER_TABLE_STATS`同样不能直接应用更改。 - D. 正确。通过执行`DBMS_REPAIR.SEGMENT_FIX_STATUS`过程,可以使更改立即生效。 因此,正确答案是**D**。 ### 5. 关于临时表空间组的信息 题目...
文件可能详细介绍了如何收集和管理这些数据,如GATHER_TABLE_STATS和GATHER_SCHEMA_STATS过程,以及何时应该自动或手动收集统计信息,以确保优化器能做出最佳决策。 4. **Oracle 数据库碎片整理**: 数据库碎片可能...
定期执行DBMS_STATS.GATHER_TABLE_STATS等命令,更新表和索引的统计信息。 7. **监控和诊断**:使用AWR(Automatic Workload Repository)、ASH(Active Session History)等工具收集性能数据,通过分析报告找出...
- **优化器统计信息收集**:`dbms_stats.gather_table_stats(, <table_name>);` #### 7. 其他实用命令 - **连接到SQL*Plus**:`sqlplus <username>/;` - **查看当前用户**:`show user;` - **查看当前日期时间**:...
30. **记录数查询**:`COUNT(*)`或`DBMS_STATS.GATHER_TABLE_STATS`可以获取表或分区的记录数。 31. **发送邮件**:Oracle的`UTL_SMTP`包可以用来发送邮件。 32. **写操作系统文件**:`UTL_FILE`包同样可以用来...
这可以通过DBMS_STATS包中的相关过程实现,如GATHER_TABLE_STATS和GATHER_SCHEMA_STATS,以确保统计信息的最新性和准确性。 四、审查执行计划 执行计划是优化器为SQL语句生成的执行策略,其合理性直接影响SQL语句...
DBA应定期执行GATHER_TABLE_STATS和GATHER_INDEX_STATS等命令,以确保统计信息的更新。 10. 优化器限制: 虽然Oracle9i优化器具有强大的功能,但也有其局限性,例如无法处理过于复杂的查询结构或在大量并发操作下...
`DBMS_STATS`包用于收集统计信息,`GATHER_TABLE_STATS`过程可以用来收集。关于"核准图信息",可能是指在收集统计时启用或禁用某些特性,例如方法选项(Method_opt)。 3. **创建同义词(Synonym)**: 同义词提供了...