数据采集过程中经常会遇到入库慢,解决这个问题则首先需要脚本设计人员对插件的用法,其次要知道如何检查数据库的性能,很多情况下都是数据库本身优化不到位造成的
数据库优化
1:检查数据库sga,pga的使用情况
(1)系统全局域:
SGA与操作系统、内存大小、cpu、同时登录的用户数有关。可占OS系统物理内存的1/3到1/2。
a.共享池:
查看共享SQL区的使用率:
Sql代码 收藏代码
select(sum(pins-reloads))/sum(pins) "Library cache" from v$librarycache;--动态性能表
这个使用率应该在90%以上,否则需要增加共享池的大小。
查看数据字典缓冲区的使用率:
Sql代码 收藏代码
select (sum(gets-getmisses-usage-fixed))/sum(gets) "Data dictionary cache" from v$rowcache;--动态性能表
这个使用率也应该在90%以上,否则需要增加共享池的大小。
修改共享池的大小:
Sql代码 收藏代码
ALTER SYSTEM SET SHARED_POOL_SIZE = 64M;
b.缓冲区高速缓存:
查看数据库数据缓冲区的使用情况:
Sql代码 收藏代码
SELECT name,value FROM v$sysstat order by name WHERE name IN(''DB BLOCK GETS'',''CONSISTENT GETS'',''PHYSICAL READS'');
计算出来数据缓冲区的使用命中率=1-(physical reads/(db block gets+consistent gets)),这个命中率应该在90%以上,否则需要增加数据缓冲区的大小。
c.日志缓冲区
查看日志缓冲区的使用情况:
Sql代码 收藏代码
SELECT name, value FROM v$sysstat WHERE name IN (''redo entries'',''redo log space requests'');
查询出的结果可以计算出日志缓冲区的申请失败率:
申请失败率=requests/entries,申请失败率应该接近于0,否则说明日志缓冲区开设太小,需要增加ORACLE数据库的日志缓冲区。
d.大型池:
可以减轻共享池的负担,可以为备份、恢复等操作来使用,不使用LRU算法来管理。其大小由数据库的‘共享模式/db模式’如果是共享模式的话,要分配的大一些。
指定Large Pool的大小:
Sql代码 收藏代码
ALTER SYSTEM SET LARGE_POOL_SIZE=64M
2:检查数据库表空间的使用情况
--1、查看表空间的名称及大小
SELECT t.tablespace_name, round(SUM(bytes / (1024 * 1024)), 0) ts_size
FROM dba_tablespaces t, dba_data_files d
WHERE t.tablespace_name = d.tablespace_name
GROUP BY t.tablespace_name;
--2、查看表空间物理文件的名称及大小
SELECT tablespace_name,
file_id,
file_name,
round(bytes / (1024 * 1024), 0) total_space
FROM dba_data_files
ORDER BY tablespace_name;
3:检查oracle日志
Oracle数据库的日志文件在$ORACLE_BASE/diag/rdbms下面,例如:/opt/oracle/oradb/diag/rdbms/ORACLE_SID/ORACLE_SID/trace
4:检查索引创建,使用情况。有时候字段在重建联合索引情况下会出现查询不走索引,需要使用牵制索引查询
select /*+ INDEX(T_MEDFLOW_INTENT,SYS_C00ADDCODE) */ count(t.addcode)
from T_MEDFLOW_INTENT t
where 1 = 1
5:检查是否存在锁表情况
查看锁表进程SQL语句1:
select sess.sid,
sess.serial#,
lo.oracle_username,
lo.os_user_name,
ao.object_name,
lo.locked_mode
from v$locked_object lo,
dba_objects ao,
v$session sess
where ao.object_id = lo.object_id and lo.session_id = sess.sid;
查看锁表进程SQL语句2:
select * from v$session t1, v$locked_object t2 where t1.sid = t2.SESSION_ID;
杀掉锁表进程:
如有記錄則表示有lock,記錄下SID和serial# ,將記錄的ID替換下面的738,1429,即可解除LOCK
alter system kill session '738,1429';
6:检查归档日志的情况
SELECT created, log_mode, log_mode FROM v$database;
7:检查logfile情况
select * from v$logfile;
8:检查SQL语句的使用情况
select * from v$sqlarea t order by t.LAST_ACTIVE_TIME desc
分享到:
相关推荐
Oracle 数据库 性能测试 定义出程序中 执行时间较长的sql语句
Oracle数据库在IT行业中扮演着重要的角色,而对数据库性能的评估和优化是其高效运行的关键。Swingbench作为Oracle公司推出的性能测试工具,为数据库管理员和开发者提供了强大的测试能力。这款由Java语言编写的软件...
"oracle数据库性能健康检查脚本" Oracle数据库性能健康检查脚本是一种用于检查Oracle数据库性能的工具,帮助DBA快速检查数据库的健康状况。下面是该脚本中涉及到的知识点: 一、操作系统层检查 * 使用ps命令检查...
《Oracle数据库性能优化实践指南》是一本专注于Oracle数据库性能调优的专业书籍,旨在帮助读者深入理解和掌握如何在实际环境中提升Oracle数据库的运行效率。Oracle数据库是全球广泛使用的大型企业级数据库管理系统,...
数据库性能测试是IT领域中至关重要的一环,它可以帮助我们评估数据库系统的处理能力、稳定性和并发性能。Sysbench是一个广泛使用的开源工具,适用于多种数据库系统,包括Oracle和达梦(DAMENG)。本篇文章将深入探讨...
在IT领域中,Oracle数据库因其高性能、可靠性及可扩展性被广泛应用于企业级应用之中。对于Oracle数据库管理员而言,掌握如何高效地进行数据库备份与恢复是一项至关重要的技能。本文将根据给定的信息“如何备份还原...
适合Linux 64位系统 ,mysql及oracle性能的小工具。 的
【Oracle数据库大作业】是一个关于Oracle数据库在教务管理系统中的应用项目,可能涵盖了数据库设计、实施、优化等多个方面的内容。这个大作业包含了PPT演示文稿、Word文档以及可能的源代码,为学习者提供了全面了解...
标题中的“提高数据库性能,提高Oracle数据库性能,PCIe FLASH”涉及到的是数据库优化与高速存储技术的话题。在数据库管理领域,性能优化是至关重要的,尤其是对于处理大量数据的企业级应用而言。Oracle数据库作为...
在进行数据库巡检时,还应考虑SQL语句的执行效率、索引的有效性、备份和恢复策略、数据库性能监控以及安全性等方面。通过定期进行这样的健康检查,可以提前发现问题,提高数据库的可靠性,保证业务的连续性。同时,...
在IT行业中,数据库性能测试是确保系统稳定性和高效运行的关键环节。LoadRunner是一款强大的负载和性能测试工具,常被用于测试各种应用系统的性能,包括数据库系统如MySQL和Oracle。本篇将详细介绍LoadRunner如何...
Oracle数据库性能优化是数据库管理员(DBA)和IT专业人士必须掌握的核心技能之一。通过理解Oracle数据库的内部工作机制,并结合实际案例分析,可以系统性地提升数据库的性能表现。以下将从多个角度深入探讨Oracle...
3. **测试连接**:输入信息后,点击“测试连接”以确保配置正确,能成功连接到Oracle数据库。 4. **导入Shapefile数据**:在Oracle数据库中,可能已经将Shapefile数据导入为一个表或者视图。在GeoServer中,你需要...
本教程"Oracle数据库性能优化"旨在帮助用户掌握提高Oracle数据库效率的关键技术和策略。 首先,我们需要理解数据库性能优化的基石:SQL优化。SQL查询的效率直接影响到数据库的整体性能。优化SQL语句可以通过编写更...
在Vmware ESXi 5.0和Oracle VM 3.0这两个主流虚拟化平台中,作者使用专门的数据库性能检测工具,从整体性能和可扩展性两个维度进行测试。整体性能通常包括查询速度、响应时间、吞吐量等指标,而可扩展性则关注系统在...
主要用于测试oracle数据库的读写性能,尤其是在有磁盘阵列的情况下
本篇将详细讲解如何利用LabVIEW调用Oracle数据库,包括ODBC连接、创建表、写入数据以及查询与更新操作。 首先,要实现LabVIEW与Oracle数据库的连接,我们需要借助ODBC(Open Database Connectivity)驱动程序。ODBC...