扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
查看方法:
创新互联公司基于成都重庆香港及美国等地区分布式IDC机房数据中心构建的电信大带宽,联通大带宽,移动大带宽,多线BGP大带宽租用,是为众多客户提供专业成都服务器托管报价,主机托管价格性价比高,为金融证券行业服务器托管,ai人工智能服务器托管提供bgp线路100M独享,G口带宽及机柜租用的专业成都idc公司。
1、查看所有表空间及表空间大小:
select tablespace_name ,sum(bytes) / 1024 / 1024 as MB from dba_data_files group by tablespace_name;
2、查看所有表空间对应的数据文件:
select tablespace_name,file_name from dba_data_files;
3、修改数据文件大小:
alter database datafile 'H:\ORACLE\PRODUCT\10.1.0\ORADATA\ORACLE\USERS01.DBF' RESIZE 10240M;
扩展资料
每张表都是作为“段”来存储的,可以通过user_segments视图查看其相应信息。
段(segments)的定义:如果创建一个堆组织表,则该表就是一个段。
sql:SELECT segment_name AS TABLENAME,BYTES FROM user_segments WHERE segment_name='表名'。
解释:
segment_name 就是要查询的表名(大写),BYTES 为表存储所占用的字节数。本sql的意思就是查询出表名和表所占的存储空间大小。
参考资料
csdn:怎么查看oracle数据库大小
查询优化器参数
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,该参数用于指定哈希连接的工作区域大小,同样建议它的值也很困难。如果过小,那么查询优化器就会高估哈希连接的开销,偏向于合并连接。
可以在服务器上查看启动了多少个oracle的服务,如图,这就是代表一个服务,也就是代表一个数据库,如果是还有其他数据库,同样会以OracleService开头的服务。
Oracle数据库简介:
Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的 适应高吞吐量的数据库解决方案。
吞吐量表示在单位时间内通过某个网络(或信道、接口)的数据量。吞吐量受网络的带宽或网络的额定速率的限制。网络吞吐量非常依赖于当前的网络负载情况。因此,不同运行时间测试的吞吐量结果不同。
说白了就是网速
1、查看表空间的大小,首先我们要登录到oracle数据库,我们要使用管理员的身份登录,因为管理员的权限要相对的大一些。
2、登录到数据库之后,我们要在侧边栏找到dataspace这个文件夹,这个文件夹下存放的就是我们管理员可以管理的所有的表空间的名称。
3、根据dataspace文件夹下的内容名称,选择我们想要看的表空间,使用右键点击的方式,选择右键显示中的属性按钮。
4、进入到属性表之后,我们可以看到当前表空间的许多属性,其中有个属性叫做segment space management的选项,当这个选项的值为auto的时候,表示当前表空间是可以自增长的,否则就是固定大小的。
oracle内存使用情况主要分两个方面,一个是PGA,一个是SGA
简单查询的话,通过SQL语句在PLSQL里面运行一下就可以了
代码如下:
select 'SGA' as name
,round(sum(value) / 1024 / 1024, 2) || 'M' as "SIZE(M)"
from v$sga
union
select 'PGA' as name, round(value / 1024 / 1024, 2) || 'M' as "SIZE(M)"
from v$pgastat
where name = 'total PGA allocated'
复制粘贴后,进入PLSQL,登陆之后,新建页面运行查看结果即可。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流