信息系统访问量又不大,瓶颈一般不会出现在应用层,极有可能在数据库这一层,不用急着看程序。先找出逻辑读取次数最多的SQL,硬盘读取次数最多的SQL,找到SQL,对于SQL进行优化。看看有没有发生全表扫描的地方。
一般发生全表扫描,极有可能是没有建立合理的索引,或者索引由于左边引用函数或其它原因造成索引失效。
对于运行一年多的系统,最好要自己写一个自动重建索引的程序,定时重建索引。
或者使用TOAD工具帮你重建索引。
另外在看一下数据库的CPU占用率,如果占用率在经常在80%-100%,那一定要是SQL或存储过程及trigger中写的不好。
不需要从应用层找SQL,方向性错误,太累,也看不出效果。
而应当使用pl/SQL, toad等工具,分析出最bad的SQL语句,一看到这些语句后,再修改应用层的查询就是了。又快又方便。
-- 逻辑读多的SQL
select * from (select buffer_gets, sql_text
from v$sqlarea
where buffer_gets > 500000
order by buffer_gets desc) where rownum<=30;
-- 执行次数多的SQL
select sql_text,executions from
(select sql_text,executions from v$sqlarea order by executions desc)
where rownum<81;
-- 读硬盘多的SQL
select sql_text,disk_reads from
(select sql_text,disk_reads from v$sqlarea order by disk_reads desc)
where rownum<21;
-- 排序多的SQL
select sql_text,sorts from
(select sql_text,sorts from v$sqlarea order by sorts desc)
where rownum<21;
--分析的次数太多,执行的次数太少,要用绑变量的方法来写sql
set pagesize 600;
set linesize 120;
select substr(sql_text,1,80) "sql", count(*), sum(executions) "totexecs"
from v$sqlarea
where executions < 5
group by substr(sql_text,1,80)
having count(*) > 30
order by 2;
分享到:
- 2006-03-29 08:44
- 浏览 14647
- 评论(18)
- 论坛回复 / 浏览 (21 / 24230)
- 查看更多
相关推荐
13.1 PL/SQL优化重点 353 13.1.1 定义类型的优化 353 13.1.2 PL/SQL的集合优化 355 13.1.3 PL/SQL的游标合并 361 13.1.4 动态SQL 364 13.1.5 使用10046 trace跟踪PL/SQL 368 13.2 PL/SQL优化其他相关扩展 369...
### DB2之SQL优化浅析 #### 一、为什么要做SQL优化 在DB2数据库管理中,SQL优化是一项至关重要的工作。SQL语句是应用程序与数据库之间交互的主要方式,其性能直接影响到整体应用的响应速度及数据库服务器的负载。...
本书是作者十年磨一剑的成果之一,深入分析与解剖Oracle SQL优化与调优技术,主要内容包括: 第一篇“执行计划”详细介绍各种执行计划的含义与操作,为后面的深入分析打下基础。重点讲解执行计划在SQL语句执行的生命...
Oracle SQL优化文档提供了对Oracle数据库进行SQL语句优化的一系列方法和工具,旨在帮助数据库管理员和开发人员提高SQL查询性能和数据库效率。文档内容涵盖了从基本的SQL优化思路到具体的分析工具,详细介绍了如何...
SQL优化衡量指标** 性能通常通过响应时间和并发性来衡量。性能不佳可能是由于开发人员对SQL效率的忽视或对SQL执行原理的不了解。优化不仅限于SQL语法和内嵌函数的掌握,还需理解SQL解析和成本基优化器(CBO)的工作...
- 在分布式数据库环境中,数据的存储和查询跨越多个节点,优化的重点在于合理设计数据流以及选择合适的驱动节点。 10. Oracle的分区表 - 分区是数据库设计中的一种技术,允许将一个大型表分割为若干个小的、更...
13.1 PL/SQL优化重点 353 13.1.1 定义类型的优化 353 13.1.2 PL/SQL的集合优化 355 13.1.3 PL/SQL的游标合并 361 13.1.4 动态SQL 364 13.1.5 使用10046trace 跟踪PL/SQL 368 13.2 PL/SQL优化其他相关扩展 369...
本文将围绕“informix数据库sql查询优化”这一主题展开讨论,重点介绍SQL单表查询优化的相关知识点。 #### SQL单表查询优化概述 单表查询是指仅涉及一个表的SQL查询语句。虽然这类查询通常比多表连接查询简单,但...
在SQL优化领域,联表查询(也称为JOIN查询)是数据操作的重要部分,尤其是在大型数据库系统中。当需要从多个表中提取相关数据时,联表查询就显得尤为重要。本篇将深入探讨“sql优化”与“左连接查询”的相关知识点,...
从应用程序角度,SQL优化是重点,遵循最佳实践来编写高效的SQL语句。程序设计上,应减少数据库访问,使用全局变量和静态变量,避免频繁创建新对象,注意内存管理和释放,减少I/O操作,适度利用多线程提高并发处理...
本PPT深入探讨了Oracle SQL优化的各种方面,旨在帮助读者理解SQL执行过程,掌握优化技巧,提升系统性能。 **1. 优化基础知识** - **性能管理**:早期介入,设定明确目标,持续监控,团队协作,及时应对意外和变化,...
【SQL2005性能优化】SQL Server 2005是Microsoft推出的一款关系型数据库管理系统,具有强大的功能和良好的性能。然而,随着数据量的增长和业务需求的复杂化,性能问题常常成为关注的重点。本文将探讨如何针对SQL ...
在IT领域,特别是对于数据库管理与优化方面,SQL Server作为一款广泛使用的数据库管理系统,其性能优化一直是DBA(数据库管理员)和技术团队关注的重点。本文将根据给定的信息,详细阐述部分重要的SQL Server数据库...
在IT领域,SQL优化与Oracle数据库的性能提升是专业DBA和开发人员关注的重点。本文将深入探讨SQL优化的关键概念,特别聚焦于Oracle环境下的优化策略。 ### SQL优化概述 SQL(Structured Query Language)作为数据库...
在SQL优化中,我们关注的重点是如何编写更高效、更精炼的SQL语句,以及如何调整数据库配置以达到最佳运行状态。下面我们将深入探讨一些核心的SQL优化策略。 1. **查询优化**: - **使用索引**:索引是数据库快速...
联接操作也是性能优化的重点。优化JOIN顺序,使用正确的JOIN类型(如INNER JOIN, LEFT JOIN)以及使用JOIN条件中的索引,都能显著提高查询效率。在大型数据集上,考虑使用子查询或临时表代替大范围的JOIN操作。 ...
SQL优化是提升数据库性能的关键环节,它涉及到对SQL语句的改进、索引的合理使用以及数据库配置的调整等多个方面。下面将详细讲解SQL优化的一些关键步骤和策略。 首先,了解SQL执行频率和类型是优化的第一步。通过`...
在IT领域,数据库管理和SQL优化是一项至关重要的技能,特别是在大型企业级应用中。"Oracle+SQL优化"这一主题深入探讨了如何通过优化SQL语句来提升数据库系统的性能,这对于DBA(数据库管理员)以及需要与数据库打...