oracle数据库优化

简介:

数据库优化:

一.oracle数据库软件系统调整

1.oracle初始化参数文件。

2.oracle动态视图:v$sql    v$sqlarea  v$sqltext  v$session+v$session_wait v$process v$sysstat v$system_event  v$parameter 

3.oracle sga调整.

二.oracle sql语句优化

1.常见的sql技巧:

*不用*代替所有列名

*用truncate代替delete

*在确保完整性的情况下多用commit语句

*尽量减少表的查询次数

*用not exists 替代not in

*用exitst替代in

*用exists替代distinct

*有效利用共享游标

wKiom1NUhGKzO5dCAAArx1V2vhQ966.gif











*以合理的方式使用函数

2.表的连接方法(扫描右到左 ,表少右,表多左)

3.有效的使用索引.

4.oracle的优化器与执行计划

*运行explain plan

例:  

EXPLAIN PLAN

SET STATEMENT_ID = 'demo01' FOR

SELECT e.last_named.department_name
FROM 
hr.employees e, hr.departments d 

WHERE e.department_id = d.department_id;

SELECT PLAN_TABLE_OUTPUT FROM TABLE(DBMS_XPLAN.DISPLAY());

Plan hash value: 2933537672

 

-------------------------------------------------------------------------------

| Id| Operation| Name| Rows| Bytes | Cost (%CPU|

--------------------------------------------------------------------------------

|0 | SELECT STATEMENT||106 |2862 |6(17|

|1 |MERGE JOIN||106 |2862 |6(17|

|2 |TABLE ACCESS BY INDEX ROWID| DEPARTMENTS |27 |432 |2(0|

|3 |INDEX FULL SCAN| DEPT_ID_PK|27 ||1(0|

|*4 |SORT JOIN||107 |1177 |4(25|

|5 |TABLE ACCESS FULL| EMPLOYEES|107 |1177 |3(0|

--------------------------------------------------------------------------------

 

Predicate Information (identified by operation id):

---------------------------------------------------

 

4 - access("E"."DEPARTMENT_ID"="D"."DEPARTMENT_ID")

filter("E"."DEPARTMENT_ID"="D"."DEPARTMENT_ID")

 

18 rows selected. 


*Sql trace and tkprof

*Sql*plus autotrace feature

*Oracle sql analyze

sql_trace:

 alter session set sql_trace = true; 

 

Run SQL's for which TKPROF needs to begenerated

 

 alter session set sql_trace = false;

 

select vpar.value || '/' || instance || '_ora_' ||ltrim(to_char(vp.spid,'fm99999')) || '.trc'

from v$process vp, v$sessionvs, v$parameter vpar, v$thread vthr

where vp.addr = vs.paddr

and vs.audsid =userenv('sessionid')

and vpar.name ='user_dump_dest'











本文转自东方之子736651CTO博客,原文链接: http://blog.51cto.com/ecloud/1399443,如需转载请自行联系原作者







相关文章
|
2天前
|
SQL Oracle 数据库
使用访问指导(SQL Access Advisor)优化数据库业务负载
本文介绍了Oracle的SQL访问指导(SQL Access Advisor)的应用场景及其使用方法。访问指导通过分析给定的工作负载,提供索引、物化视图和分区等方面的优化建议,帮助DBA提升数据库性能。具体步骤包括创建访问指导任务、创建工作负载、连接工作负载至访问指导、设置任务参数、运行访问指导、查看和应用优化建议。访问指导不仅针对单条SQL语句,还能综合考虑多条SQL语句的优化效果,为DBA提供全面的决策支持。
20 11
|
11天前
|
存储 Oracle 关系型数据库
数据库数据恢复—ORACLE常见故障的数据恢复方案
Oracle数据库常见故障表现: 1、ORACLE数据库无法启动或无法正常工作。 2、ORACLE ASM存储破坏。 3、ORACLE数据文件丢失。 4、ORACLE数据文件部分损坏。 5、ORACLE DUMP文件损坏。
47 11
|
22天前
|
SQL 存储 BI
gbase 8a 数据库 SQL合并类优化——不同数据统计周期合并为一条SQL语句
gbase 8a 数据库 SQL合并类优化——不同数据统计周期合并为一条SQL语句
|
22天前
|
SQL 数据库
gbase 8a 数据库 SQL优化案例-关联顺序优化
gbase 8a 数据库 SQL优化案例-关联顺序优化
|
24天前
|
Oracle 关系型数据库 数据库
Oracle数据恢复—Oracle数据库文件有坏快损坏的数据恢复案例
一台Oracle数据库打开报错,报错信息: “system01.dbf需要更多的恢复来保持一致性,数据库无法打开”。管理员联系我们数据恢复中心寻求帮助,并提供了Oracle_Home目录的所有文件。用户方要求恢复zxfg用户下的数据。 由于数据库没有备份,无法通过备份去恢复数据库。
|
1月前
|
存储 Oracle 关系型数据库
oracle数据恢复—Oracle数据库文件大小变为0kb的数据恢复案例
存储掉盘超过上限,lun无法识别。管理员重组存储的位图信息并导出lun,发现linux操作系统上部署的oracle数据库中有上百个数据文件的大小变为0kb。数据库的大小缩水了80%以上。 取出&并分析oracle数据库的控制文件。重组存储位图信息,重新导出控制文件中记录的数据文件,发现这些文件的大小依然为0kb。
|
1月前
|
存储 NoSQL 分布式数据库
微服务架构下的数据库设计与优化策略####
本文深入探讨了在微服务架构下,如何进行高效的数据库设计与优化,以确保系统的可扩展性、低延迟与高并发处理能力。不同于传统单一数据库模式,微服务架构要求更细粒度的服务划分,这对数据库设计提出了新的挑战。本文将从数据库分片、复制、事务管理及性能调优等方面阐述最佳实践,旨在为开发者提供一套系统性的解决方案框架。 ####
|
1月前
|
存储 SQL 数据库
深入浅出后端开发之数据库优化实战
【10月更文挑战第35天】在软件开发的世界里,数据库性能直接关系到应用的响应速度和用户体验。本文将带你了解如何通过合理的索引设计、查询优化以及恰当的数据存储策略来提升数据库性能。我们将一起探索这些技巧背后的原理,并通过实际案例感受优化带来的显著效果。
47 4
|
17天前
|
存储 Oracle 关系型数据库
服务器数据恢复—华为S5300存储Oracle数据库恢复案例
服务器存储数据恢复环境: 华为S5300存储中有12块FC硬盘,其中11块硬盘作为数据盘组建了一组RAID5阵列,剩下的1块硬盘作为热备盘使用。基于RAID的LUN分配给linux操作系统使用,存放的数据主要是Oracle数据库。 服务器存储故障: RAID5阵列中1块硬盘出现故障离线,热备盘自动激活开始同步数据,在同步数据的过程中又一块硬盘离线,RAID5阵列瘫痪,上层LUN无法使用。
|
1月前
|
SQL druid 数据库
如何进行数据库连接池的参数优化?
数据库连接池参数优化包括:1) 确定合适的初始连接数,考虑数据库规模和应用需求;2) 调整最大连接数,依据并发量和资源状况;3) 设置最小空闲连接数,平衡资源利用和响应速度;4) 优化连接超时时间,确保系统响应和资源利用合理;5) 配置连接有效性检测,定期检查连接状态;6) 调整空闲连接回收时间,适应访问模式并配合数据库超时设置。

推荐镜像

更多
下一篇
DataWorks