数据库性能优化参数总结(一)
1.AWR报告快照间隔时间1小时改为半小时,保留天数修改 --不用重启库2.闪回时间15分钟改为1小时--不用重启库3.修改数据库允许的最大连接数 进程数150改为500 ,会话数改为555 为进程数*1.1+5 --需重启库4.密码永不过期设置5.修改redo日志组,每组两个redo文件,每个100m6.修改temp表空间为临时表空间组--查看当...
常用统计信息收集语句
收集表统计信息analyze table t_vital_signs compute statistics for table;收集索引统计信息analyze index INDEX_T_VITAL_SIGNS_TIME compute statistics;一次性以计算模式收集表T2、表T2的所有列和表T2上的所有索引的统计信息:analyze table t_vital_signs compute statistics;只对表T2收集统计信息,并且是以...
带时间锉字段查询不走索引优化记录!+数据库卡顿问题排查顺序
近期解决了病历系统数据库卡顿的问题,以下为分析经过,本文重点为带时间锉字段的优化和数据库卡顿问题排查的思路!郑州病历系统登录卡慢问题,初步看是体温单表(t_vital_signs)查询没走索引影响的,800多万的数据中查几千条,从AWR报告和跟病历同事了解的情况看,查询的频次还不低。数据库卡顿等问题排查顺序:* 先...
Oracle里收集与查看统计信息的方法
Oracle数据库里的统计信息是这样的一组数据:它存储在数据字典里,且从多个维度描述了Oracle数据库里对象的详细信息。CBO会利用这些统计信息来计算目标SQL各种可能的、不同的执行路径的成本,并从中选择一条成本值最小的执行路径来作为目标SQL的执行计划。Oracle数据库里的统计信息可以分为如下6种类型:...
Oracle统计信息引起的性能问题
今天一个朋友和我说他管理的系统早上CPU压力比较大,让我帮忙看看,我首先看了awr报告,里面一个sql引起了我的注意,如下:SELECT /* OPT_DYN_SAMP */ /*+ ALL_ROWS IGNORE_WHERE_CLAUSE NO_PARALLEL(SAMPLESUB) opt_param('parallel_execution_enabled', 'false') NO_PARALLEL_INDEX(SAMPLESUB) NO_SQL_TUNE *...
容易引起oracle索引失效的原因
容易引起oracle索引失效的原因很多: 1、在索引列上使用函数。如SUBSTR,DECODE,INSTR等,对索引列进行运算.需要建立函数索引就可以解决了。 2、新建的表还没来得及生成统计信息,分析一下就好了 3、基于cost的成本分析,访问的表过小,使用全表扫描的消耗小于使用索引。 4、使用<>、...
使用sqld360进行特定SQL调优分析
系统性能问题通常是一个综合性的问题,用户对系统的反馈,通常是一个“慢”字。对调优人员,要从网络、应用服务器、数据库服务器等多个层面进行定位,发现瓶颈。如果落实到数据库层面,执行SQL速度慢就是开发运维DBA所需要关注的范畴。对系统SQL的调优,一般而言不是“一锤子”买卖。而且,性能...
oracle迁移表到新的表空间-包含表空间、索引、表分区
1.创建新的表空间 1. CREATE TABLESPACE bayonet 2. DATAFILE '/oradata/db/bayonet_01.DBF' 3. SIZE 2G 4. AUTOEXTEND ON NEXT 1G MAXSIZE UNLIMITED ...
ORACLE表批量迁移表空间
第一步:将表迁移到目标表空间 1)使用如下语句,可以将需要移动的表空间语句在pl/sql中列出来,select 'alter table ' ||table_name || ' move tablespace 目标表空间名称;' from user_all_tables where tablespace_name='源表空间名称'例如:登录数据库用户TEST。将TEST所有表从SYSTEM表空间迁移到...
Oracle的用户表自动增加分区
CREATE OR REPLACE PROCEDURE guan_add_partition--为一个用户下所有分区表自动增加分区.分区的列为date类型,分区名类似:p200706. AS v_table_name VARCHAR2(50); v_partition_name VARCHAR2(50); v_month CHAR(6); v_add_month_1 &nb...
10046 事件 与 10053 事件
有同学一直向Maclean反应希望做一期10046 SQL trace的教程, 正好这几天有空 我们就理一理。 为什么我们要使用10046 trace? 10046 trace帮助我们解析 一条/多条SQL、PL/SQL语句的运行状态 ,这些状态包括 ...
ORACLE 查看脚本执行计划
三种查看方式:1. EXPLAIN2. AUTOTRACE;3. PL/SQL工具 EXPLAIN:1. 安装:UNIX: $ORACLE_HOME/rdbms/admin\ultxplan.sqlWindows:%ORACLE_HOME%\rdbms\admin\ultxplan.sql 2. 建立:set feedback...
ORACLE执行计划的介绍
1. 执行计划的介绍 执行计划描述了SQL引擎为执行SQL语句进行的操作;分析SQL语句相关的性能问题或仅仅质疑查询优化器的决定时,必须知道执行计划; 2. 执行计划的获取方法 ORACLE提供了四种方法来获取执行计划。 ? 执行SQL语句EXPLAIN PLAN,然后查询结果输出表。 ? 查询一张动态性能视图,它显示缓存中库缓存中的执...
awr报告的调优经历
说明:据经验总结99%以上数据库的问题都在可以awr报告中发现,本文档介绍在检查一个生产系统的awr报告时发现的问题和解决的经过; 以下是相关的AWR报告截图: 总共有4个CPU,每个CPU有4核,逻辑CPU个数为16个;AAS值将近4,从硬件性能上面判断 整体的符合并不算高; &nb...
AWR报告参数:DB TIME和DB CPU
一、前言:AWR报告是了解ORACLE运行的一个重要报告,CPU的使用情况是AWR报告的一个重要指标,本文档从单个CPU的维度去解读AWR报告; 二、重要参数介绍:DB Time:Amount of elapsed time (in microseconds) spent performing Database user-level calls. This does not include the elapsed time spent on instan...
手工生成awr报告的方法
前言:大家都知道通过ORACLE的EM工具可以生成AWR报告,刚开始接触ORACLE的时候我也是很依赖于EM平台的页面操作。但是随着把EM监控取消掉,AWR报告等一些操作就要通过手工进行; 一、AWR报告的手工运行方法: 1、进入目录$ORACLE_HOME/rdbms/admin 2、在SQLPLUS运行以下语句@awrrpt.sql 二、手工生成一次Snapshots ...
两表连接二:两表哈希连接
一、前言:数据库版本:11.2.0.3表A1 NUM_ROWS 107,6016(百万级别),没有索引脚本:create table john.A1 as select * from all_objects;(然后运行以下脚本几次,产生大量的数据 insert into john.a1 select * from john.a1)表B1 NUM_ROWS ...
两表连接一:嵌套循环连接
一、前言:对于一名有志于成为SQL调优的开发人员或SQL的DBA,就很有必要了解下ORACLE数据库在对两个表进行连接时的运行机制,因为再复杂的执行计划也是每次分解成两个表的连接去执行的。ORACLE数据库有常见的三种连接表的方法:嵌套循环连接、合并连接、哈希连接。本文档通过实验的方法总结这三种连接的应用和影响性能的因...
ORACLE 11G in exists的执行效率分析
前言:在以往的ORACLE SQL调优经验中,很多sql高手建议在系统中执行exists禁用in,很多新手也默认的接受了这个观点,本文就是通过实验来对这个观点进行验证来进行验证; 准备工作:1、创建测试表在schemeas hr下面,创建表A1脚本:create table A1 as select * from all_objects; 创...