Oracle数据库运行越来越慢,应该怎么优化

首页 / 常见问题 / 低代码开发 / Oracle数据库运行越来越慢,应该怎么优化
作者:低代码开发工具 发布时间:10-25 13:58 浏览量:4526
logo
织信企业级低代码开发平台
提供表单、流程、仪表盘、API等功能,非IT用户可通过设计表单来收集数据,设计流程来进行业务协作,使用仪表盘来进行数据分析与展示,IT用户可通过API集成第三方系统平台数据。
免费试用

Oracle数据库运行越来越慢的优化方法:1、应用层优化;2、数据库层优化;3、内存层优化;4、存储层优化。应用层优化是指减少应用请求,数据库层优化是指降低数据库内部资源争用,内存层优化是指降低IO数量和规模。

一、Oracle数据库运行越来越慢的优化方法

1、应用层优化

应用程序的设计和开发中,可以采用合理的数据查询语句来减少数据库的 I/O 操作次数,例如通过合并多个 SQL 语句或使用批量操作等方式来优化查询效率。同时,在应用程序中适当使用缓存技术,减轻数据库负载。

2、数据库层优化

Oracle 数据库在运维过程中可以通过优化数据表结构、调整索引、升级数据库版本、重新启动数据库实例等方式来提高性能。具体而言,例如在设计表结构时尽量避免多表关联查询,优化查询语句,减少锁定等待时间。

3、内存层优化

调整数据库的缓存和内存设置是提高 Oracle 数据库性能的关键,例如增加共享池和高速缓存的大小,以及启用自动 PGA(程序全局区)管理功能等。优化这些参数,可以减少数据库的磁盘 I/O 操作,提高访问速度。

4、存储层优化

除了进行数据库、应用和内存层面的优化外,还可以通过在存储设备上进行调整,在存储层面上提高 Oracle 数据库的性能。例如使用 RAID 磁盘阵列来提高磁盘 I/O 效率,使用快速的存储介质如 SSD 来强化存储性能等。

二、Oracle数据库性能检查方法

1、检查数据库的等待事件

select sid,event,p1,p2,p3,WAIT_TIME,SECONDS_IN_WAIT from v$session_wait where event not like 'SQL%' and event not like 'rdbms%';

如果数据库长时间持续出现大量像 latch free,enqueue,buffer busy waits, db file sequential read,db file scattered read 等等待事件时,需要对其进行分析,可能存在问题的语句。

2、Disk Read较高的SQL语句的获取

SELECT SQL_TEXT FROM (SELECT * FROM V$SQLAREA ORDER BY DISK_READS) WHERE ROWNUM<=5 desc;

3、查找前十条性能差的sql

SELECT * FROM (SELECT PARSING_USER_ID EXECUTIONS,SORTS,COMMAND_TYPE,DISK_READS, SQL_TEXT FROM V$SQLAREA ORDER BY DISK_READS DESC) WHERE ROWNUM<10 ;

4、等待时间非常多的 5 个系统等待事件的获取

SELECT * FROM (SELECT * FROM V$SYSTEM_EVENT WHERE EVENT NOT LIKE 'SQL%' ORDER BY TOTAL_WAITS DESC) WHERE ROWNUM<=5;

5、检查运行很久的SQL

COLUMN USERNAME FORMAT A12 COLUMN OPNAME FORMAT A16 COLUMN PROGRESS FORMAT A8
SELECT USERNAME,SID,OPNAME,ROUND(SOFAR*100 / TOTALWORK,0) || '%' AS PROGRESS,TIME_REMAINING,SQL_TEXT FROM V$SESSION_LONGOPS , V$SQL WHERE
TIME_REMAINING <> 0 AND SQL_ADDRESS=ADDRESS AND SQL_HASH_VALUE = HASH_VALUE;

6、检查消耗CPU较高的进程

SET LINE 240 SET VERIFY OFF
COLUMN SID FORMAT 999 COLUMN PID FORMAT 999 COLUMN S_# FORMAT 999
COLUMN USERNAME FORMAT A9 HEADING "ORA USER"
COLUMN PROGRAM FORMAT A29 COLUMN SQL FORMAT A60
COLUMN OSNAME FORMAT A9 HEADING "OS USER"
SELECT P.PID PID,S.SID SID,P.SPID SPID,S.USERNAME USERNAME,S.OSUSER OSNAME,P.SERIAL# S_#,P.TERMINAL,P.PROGRAM PROGRAM,P.BACKGROUND,S.STATUS,RTRIM(SUBSTR(A.SQL_TEXT, 1, 80)) SQLFROM V$PROCESS P, V$SESSION S,V$SQLAREA A WHERE P.ADDR = S.PADDR AND S.SQL_ADDRESS = A.ADDRESS(+) AND P.SPID LIKE '%&1%';

7、检查碎片程度高的表

SELECT segment_name table_name,COUNT() extents FROM dba_segments WHERE owner NOT IN ('SYS', 'SYSTEM') GROUP BY segment_name HAVING COUNT()=(SELECT MAX(COUNT(*))
FROM dba_segments GROUP BY segment_name);

8、检查表空间的 I/O 比例

SELECT DF.TABLESPACE_NAME NAME,DF.FILE_NAME "FILE",F.PHYRDS PYR, F.PHYBLKRD PBR,F.PHYWRTS PYW, F.PHYBLKWRT PBW FROM V$FILESTAT F, DBA_DATA_FILES DF WHERE F.FILE# = DF.FILE_ID ORDER BY DF.TABLESPACE_NAME;

9、检查文件系统的 I/O 比例

SELECT SUBSTR(A.FILE#,1,2) "#", SUBSTR(A.NAME,1,30) "NAME",
A.STATUS,A.BYTES,B.PHYRDS,B.PHYWRTS FROM V$DATAFILE A, V$FILESTAT B WHERE A.FILE# =
B.FILE#;

10、检查死锁及处理

select sid,serial#,username,SCHEMANAME,osuser,MACHINE, terminal,PROGRAM,owner,object_name,object_type,o.object_id from dba_objects o,v$locked_object l,v$session s
where o.object_id=l.object_id and s.sid=l.session_id;

延伸阅读1:数据库系统的数据模型

  • 层次模型:是数据库系统中较早出现的数据模型,层次数据库系统采用层次模型作为数据的组织方式。它采用树形结构来表示各类实体以及实体间的联系。
  • 网状数据模型:用有向图表示实体和实体之间的联系的数据结构模型称为网状数据模型。
  • 关系型数据模型:关系型数据模型对应的数据库自然就是关系型数据库了,这是目前应用非常多的数据库,使用表格表示实体和实体之间关系的数据模型称之为关系数据模型。
最后建议,企业在引入信息化系统初期,切记要合理有效地运用好工具,这样一来不仅可以让公司业务高效地运行,还能最大程度保证团队目标的达成。同时还能大幅缩短系统开发和部署的时间成本。特别是有特定需求功能需要定制化的企业,可以采用我们公司自研的企业级低代码平台织信Informat。 织信平台基于数据模型优先的设计理念,提供大量标准化的组件,内置AI助手、组件设计器、自动化(图形化编程)、脚本、工作流引擎(BPMN2.0)、自定义API、表单设计器、权限、仪表盘等功能,能帮助企业构建高度复杂核心的数字化系统。如ERP、MES、CRM、PLM、SCM、WMS、项目管理、流程管理等多个应用场景,全面助力企业落地国产化/信息化/数字化转型战略目标。 版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们微信:Informat_5 处理,核实后本网站将在24小时内删除。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系邮箱:hopper@cornerstone365.cn 处理,核实后本网站将在24小时内删除。

最近更新

开发公司团队架构表怎么写
11-17 13:54
网站开发公司怎么做账
11-17 13:54
网站开发公司怎么找
11-17 13:54
做网站开发公司怎么样
11-17 13:54
如何选择软件定制开发公司
11-17 13:54
网站开发公司名称怎么起名
11-17 13:54
怎么选择专业网站开发公司
11-17 13:54
天津有什么好的APP外包开发公司吗
11-17 13:54
app开发公司怎么选择
11-17 13:54

立即开启你的数字化管理

用心为每一位用户提供专业的数字化解决方案及业务咨询

  • 深圳市基石协作科技有限公司
  • 地址:深圳市南山区科技中一路大族激光科技中心909室
  • 座机:400-185-5850
  • 手机:137-1379-6908
  • 邮箱:sales@cornerstone365.cn
  • 微信公众号二维码

© copyright 2019-2024. 织信INFORMAT 深圳市基石协作科技有限公司 版权所有 | 粤ICP备15078182号

前往Gitee仓库
微信公众号二维码
咨询织信数字化顾问获取最新资料
数字化咨询热线
400-185-5850
申请预约演示
立即与行业专家交流