怎么查询oracle参数 oracle查看表名称

怎样查看oracle的优化器参数

查询优化器参数

创新互联公司-专业网站定制、快速模板网站建设、高性价比安丘网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式安丘网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖安丘地区。费用合理售后完善,10年实体公司更值得信赖。

1. optimizer_mode

查询优化器是为了找一个最高效的执行计划,这个参数用来定义什么是“高效”,比如是更快还是占用资源更少。在oracle10g中只支持两个参数值:

all_rows:提供全部数据

first_rows(n):n为大于0的自然数,表示尽快传输前面n条数据(比如分页查询的时候,我第一次只查询前面10条数据)

oracle10g默认为all_rows,可以再数据库级别,会话级别,或者执行SQL的时候修改该参数的值。

数据库级别:alter system set optimizer_mode=first_rows(10) scope=spfile;

会话级别:ALTER SESSION SET OPTIMIZER_MODE=first_rows(10);

SQL级别:SELECT /*+ first_rows(10) */ id,name from t1 order by id;

其实,默认all_rows是最好的方式,如果确实是只要查询小部分数据,可以在sql级别加上提示,看是否能提高性能。

2. db_file_multiblock_read_count

在多块读的情况下(比如全表扫描),该参数说明一次最多可读取的数据块数目。设置得太小的话,效率低。设置得太高也不见得就好(太高,会受I/O最大吞吐量限制。比如设置成一次最多读取1024块,但I/O最大吞吐量只允许32块,那一次最多也只读取32块。而且一次读取很多块,开销会偏高。)应该通过测试,才能知道应该把该参数设置成哪一个值。

测试过程:

1. 创建一张大表,比如上千万行级别的数据

2. 循环设置该参数的值,查看全表扫描的速度。类似于以下语句:

[sql] view plain copy

span style="font-size:14px;" declare

l_count pls_integer;

l_time pls_integer;

l_starting_time pls_integer;

l_ending_time pls_integer;

begin

dbms_output.put_line('dbfmbrc seconds');

for l_dbfmbrc in 1..32

loop

execute immediate 'alter session set db_file_multiblock_read_count='||l_dbfmbrc;

l_starting_time := dbms_utility.get_time();

select /*+ full(t) */ count(*) into l_count from big_table t;

l_ending_time := dbms_utility.get_time();

l_time := round((l_ending_time-l_starting_time)/100);

dbms_output.put_line(l_dbfmbrc||' '||l_time);

end loop;

end;

//span

3. optimizer_index_cost_adj

影响走索引扫描的开销计算。 取值范围1到10000.默认值为100,超过100后,走索引扫描的开销越高,从而使得查询优化器更加倾向于使用全表扫描。相反,小于100,索引扫描的开销就越低,从而使得查询优化器更加倾向于使用索引扫描。从下面索引扫描开销计算公式可以看出:

io_cost=(blevel+(leaf_blocks+culstering_factor)*selectivity) *optimizer_index_cost_adj/100.

一般是默认值不需要修改,但是如果发现本应该走索引扫描结果走了全表扫描,可以适当调低该值,但是,这个值不应该设置过低,因为,过低的话,如果两个索引扫描的开销不同,可能通过该公式一算,开销就变成一样的了。总之,不建议修改该参数的值。

PGA参数

1. workarea_size_policy

管理工作区域内存(PGA)的方式,

auto:oracle10g默认方式,委托给内存管理器自动管理(建议不需要修改)

manual:oracle9i默认方式,oracle9i没有自动管理功能。

2. pga_aggregate_target

如果是自动管理PGA,那么该参数用于指定实例可用的PGA的大小,默认是SGA的20%。即使今后用的内存超过了设置的值,也没有关系,oracle会自动增大PGA的值。比如该参数设置的是200M,今后某一时刻,需要300M,也是没问题的,会自动增长。

3. sort_area_size

手动管理PGA,该参数指定分配多大的内存用于排序操作,过小的话,会影响性能,过大的话浪费空间。很难说一个合适的默认值,因为用户场景变化非常大,实际情况得实际处理。

4. hash_area_size

手动管理PGA,该参数用于指定哈希连接的工作区域大小,同样建议它的值也很困难。如果过小,那么查询优化器就会高估哈希连接的开销,偏向于合并连接。

讲解Oracleshowparameter命令的小技巧

Oracle参数查询命令show parameter的一个小技巧 可以使用模糊查询 比如我想查询包含db_的参数 那么我就可以用

SQL show parameter db_;

NAME TYPE VALUE

db_ k_cache_size big integer

db_ k_cache_size big integer

db_ k_cache_size big integer

db_ k_cache_size big integer

db_ k_cache_size big integer

db_block_buffers integer

db_block_checking string FALSE

db_block_checksum string TRUE

db_block_size integer

db_cache_advice string ON

db_cache_size big integer

NAME TYPE VALUE

db_create_file_dest string

db_create_online_log_dest_ string

db_create_online_log_dest_ string

db_create_online_log_dest_ string

db_create_online_log_dest_ string

db_create_online_log_dest_ string

db_domain string

db_file_multiblock_read_count integer

db_file_name_convert string

db_files integer

db_flashback_retention_target integer

NAME TYPE VALUE

db_keep_cache_size big integer

db_name string Ora

db_recovery_file_dest string d:\oracle\product\ /flash

_recovery_area

db_recovery_file_dest_size big integer G

db_recycle_cache_size big integer

db_unique_name string Ora

db_writer_processes integer

dbwr_io_slaves integer

rdbms_server_dn string

standby_archive_dest string %ORACLE_HOME%\RDBMS

NAME TYPE VALUE

standby_file_management string MANUAL

SQL spool off;

对于一个刚开始接触Oracle的人来数要记住Oracle的参数名称是件非常难的事 有了这个参数的模糊查询我们可以先只记个大概 通过参数查询找到详细的参数名称 一来二去熟悉了就可以 但是后面三个只是内部包含db和_ 可能是包含就算吧 具体的我也不是很清楚 今天下午无意中发现的!

比如下面的我想看包含db_c的所有参数

SQL show parameter db_c;

NAME TYPE VALUE

db_cache_advice string ON

db_cache_size big integer

db_create_file_dest string

db_create_online_log_dest_ string

db_create_online_log_dest_ string

db_create_online_log_dest_ string

db_create_online_log_dest_ string

db_create_online_log_dest_ string

lishixinzhi/Article/program/Oracle/201311/16887

如何查看Oracle数据库的字符编码

1、SELECTvalue$FROMsys.props$WHEREname='NLS_CHARACTERSET';

--查询oracle相关参数

2、SELECT*FROMNLS_DATABASE_PARAMETERS;

扩展资料:

OracleDatabase,又名OracleRDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。

可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的适应高吞吐量的数据库解决方案。

ORACLE数据库系统是美国ORACLE公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(CLIENT/SERVER)或B/S体系结构的数据库之一。

比如SilverStream就是基于数据库的一种中间件。ORACLE数据库是目前世界上使用最为广泛的数据库管理系统,作为一个通用的数据库系统,它具有完整的数据管理功能;作为一个关系数据库,它是一个完备关系的产品;作为分布式数据库它实现了分布式处理功能。

但它的所有知识,只要在一种机型上学习了ORACLE知识,便能在各种类型的机器上使用它。

Oracle数据库最新版本为OracleDatabase12c。Oracle数据库12c 引入了一个新的多承租方架构,使用该架构可轻松部署和管理数据库云。

此外,一些创新特性可最大限度地提高资源使用率和灵活性,如OracleMultitenant可快速整合多个数据库,而AutomaticDataOptimization和HeatMap能以更高的密度压缩数据和对数据分层。

这些独一无二的技术进步再加上在可用性、安全性和大数据支持方面的主要增强,使得Oracle数据库12c 成为私有云和公有云部署的理想平台。

参考资料:Oracle数据库--百度百科


网页名称:怎么查询oracle参数 oracle查看表名称
网页链接:http://azwzsj.com/article/hjcsps.html