
Performance
文章平均质量分 88
lixora
MIchael.Huang_lixora 这个blog是个人学习的的一个札记筒,用以记录在学习,工作,生活上的所思,所想
展开
-
和数据库相关的共享内存的机制
通过共享内存,这些进程可以相互之间直接访问这块内存,从而实现数据的共享和通信。需要注意的是,使用共享内存时,需要注意并发访问的同步和互斥问题,以避免竞争条件和数据一致性的问题。共享内存提供了一种进程间直接通信的方式,通过在共享内存区域中写入和读取数据,进程可以相互之间进行通信。共享内存是一种高效的数据传输方式。多个并发执行的进程可以访问相同的内存,以共享数据结构,变量或其他信息,从而实现协同工作。共享内存的概念也可以用于内存映射文件,使得文件内容可以被映射到进程的地址空间中,实现对文件的直接读写操作。原创 2024-03-06 17:06:00 · 1137 阅读 · 1 评论 -
常见问题:‘cursor:mutex ..‘/ ‘cursor:pin ..‘/ ‘library cache:mutex ..‘类型的等待事件
处理或访问cursor的任何操作都可能需要等待,才能访问在 shared pool 中支持这些操作的结构。请注意,所有这些等待事件都非常相似,并且可能都是在一个操作过程中产生的等待。Share(共享)操作可以在不更改的情况下进行,只是需要在更改过程中暂时锁定这些操作,以防止其被其他项更改。基于这些事件的争用通常是另一个问题的症状表现 – 即问题是其它地方产生的,而不是 mutex 机制本身。通常,通过采用合理的cursor共享策略,正确使用绑定变量并确保没有大量版本,应该能够避免大多数这类性质的问题。原创 2024-01-16 15:31:56 · 1072 阅读 · 0 评论 -
CPU L1(一级)、L2(二级)和L3(三级)缓存概览
这些缓存层次的设计旨在利用局部性原理(时间局部性和空间局部性),通过缓存最常用的数据和指令,减少对主内存的访问,从而提高计算机程序的执行速度。增加缓存的大小可能会导致访问时间的增加,因为更大的缓存需要更多的时间来搜索和访问。通常情况下,现代 CPU 设计已经在缓存层次结构上进行了精心的平衡,以提供足够的性能而不会引入不必要的复杂性和成本。缓存的设计是复杂而精密的,旨在在提高性能的同时最小化访问主内存的需求,因为内存访问通常是计算机系统中最昂贵的操作之一。多级缓存的存在是为了提供更高的速度和更大的容量。原创 2023-11-23 16:59:18 · 12795 阅读 · 0 评论 -
检查oracle 表统计信息是否过期
--刷新数据库监控信息:exec dbms_stats.flush_database_monitoring_info;--过期状态查看:stale_stats 状态是否为“YES”select owner,table_name,object_type,stale_stats,last_analyzedfrom dba_tab_statisticswhere owner=''and ...原创 2019-12-10 09:32:59 · 2102 阅读 · 0 评论 -
偶遇 smon 进程cpu 开销高异常分析
今天突然发现线上一台oracle 数据库 服务器cpu 跑的很高,感觉不是很正常,仔细看了下;发现是smon 进程吃掉了一个cpu。那么这个smon 进程到底在倒腾啥玩意对smon 进程开启10046 跟下不就全明了了么分析trace 文件就这么一个sql语句 ,这玩意在删smon_scn_time delete from smon_scn_time where threa原创 2015-07-15 10:28:53 · 1221 阅读 · 0 评论 -
修改一行数据的锁生命周期
最近在学习vage 的书后,简单画了个图总结下。内容实在太多了,很多细节没有画。原创 2015-05-21 11:03:43 · 1526 阅读 · 0 评论 -
oracle 执行计划修改学习---query block
*************************************************************t1表有100行记录t2表有1M行记录t1表T1"."N" 有索引t2表T2"."T1_ID"有索引=------正确执行计划应该为:SQL_ID cgwuncwm2pryk, child number 0-------------------原创 2015-05-09 15:44:36 · 1991 阅读 · 0 评论 -
如何诊断cursor pin s wait on x 系列二
如何分析诊断收集信息1. 查看AWR 报告中high paring 和high version部分内容 具体查看这几个部分的内容:'SQLordered by Parse Calls' or 'SQL ordered by Version Count' SQL ordered by Parse Calls关于这部分中的sql 解析执行是否过高,或者原创 2014-12-10 12:54:40 · 3358 阅读 · 0 评论 -
如何诊断cursor pin s wait on x 系列一
首先明确一个事情:cursor pin s wait on x 是症状(结果),不是根本原因。mutex related wait event "cursor: pin S wait on X"一般原因:》频繁硬解析(解析时间高. 找出解析时间高的原因很关键)----可能性最大》high version counts》bug如何诊断?1.AWR原创 2014-12-10 09:38:11 · 2651 阅读 · 0 评论 -
大页(huge pages) 系列四 ---Transparent HugePages
从 boot up time. 开始,系统缺省会启用 Transparent HugePages :用来提高内存管理的性能透明大页(Transparent HugePages )和之前版本中的大页功能上类似,主要的区别是:Transparent HugePages 可以实时配置,不需要重启才能生效配置;透明大页(Transparent HugePages )主要是利用khugepaged原创 2014-12-19 16:25:53 · 3430 阅读 · 0 评论 -
大页(huge pages) 系列三 ---计算大页相关配置参数
使用以下shell 脚本计算大页配置参数,使用脚本前保证数据实例已经启动,若数据库版本为11g,确认是否使用自动内存管理(AMM) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#!/bin/bash## hugepages_settin原创 2014-12-19 09:52:47 · 1745 阅读 · 0 评论 -
大内存( Very Large Memory)和 大页( HugePages)系列一
随着去IOE的风波越来愈大,oracle跟业务结合的太紧,动起来很是麻烦,但是动E(emc), I(IBM 的高端小机) 还相对更容易点。现在已经不是10年前,内存是相当贵,现在内存基本是白菜价,而x86架构的pc server在性能,稳定性上也是越来越好,所以很多公司开始使用pcserver 来跑生产。不少pc server 会 配置上很大的内存:64g,128g ,256g,甚至300原创 2014-12-08 23:30:50 · 1477 阅读 · 0 评论 -
类型转换导致执行计划不走索引测试案例
测试环境模拟:SQL> drop table t_col_type purge;create table t_col_type(id varchar2(20),col2 varchar2(20),col3 varchar2(20));insert into t_col_type select rownum,'abc','efg' from dual connect by level原创 2014-08-27 23:13:14 · 1005 阅读 · 0 评论 -
oracle 快照(snapshot) 管理
----手工创建oracle 快照BEGINDBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT ();END;/---删除快照具体快照信息可以查看视图 DBA_HIST_SNAPSHOTBEGINDBMS_WORKLOAD_REPOSITORY.DROP_SNAPSHOT_RANGE (low_snap_id => 22,原创 2014-07-14 16:03:04 · 1388 阅读 · 0 评论 -
one command 一键收集 oracle 巡检信息(包含dbhc,awr reports)
初步效果图如下 SQL> @nb ------Oracle Database health Check STRAT------Starting Collect Data Information!------Part 1.DB Overview...------Part 2.DB File Overview...------Part 3.Perfermance Overv原创 2014-07-28 17:09:05 · 1500 阅读 · 0 评论 -
oracle9i statspack 报告 分析 direct path read 等待事件
DB Name DB Id Instance Inst Num Release Cluster Host------------ ----------- ------------ -------- ----------- ------- ------------LIXORA 1409317108 LIXORA原创 2015-08-06 20:09:23 · 1215 阅读 · 0 评论 -
oracle 11201 基数反馈导致主机cpu 开销过高处理
dbversion: 11201osversion: rhel 5 x64 问题分析:07:10:01 all 35.26 0.00 8.35 0.19 0.00 56.2107:20:01 all 34.76 0.00 8.31 0.14 0.0原创 2015-09-10 14:10:33 · 1074 阅读 · 0 评论 -
oracle 12.2.0.1 优化器VS oracle 11.2.0.4
optimizer_features_enable = 12.2.0.1 | optimizer_features_enable = 11.2.0.4_smm_min_size = 349 KB | _smm_min_size ...原创 2018-12-26 12:35:23 · 1206 阅读 · 0 评论 -
如何利用 windows bat 脚本制作一个oracle 性能状态监控工具
###利用 windows bat 脚本制作一个oracle 性能状态监控工具####choice /t 2 /d y /n >nul 表示每隔2秒定时执行@echo off:startsqlplus -S system/oracle@10.80.18.201/fiona @c:/1.sqlchoice /t 2 /d y /n >nulclsgoto star...原创 2018-12-26 16:31:36 · 979 阅读 · 0 评论 -
Oracle 12.2 优化器自适应特性(Optimizer Adaptive Features)
Oracle 12.2 优化器自适应特性(Optimizer Adaptive Features)##12.1和12.2的变化在12.1 中optimizer_adaptive_features 一个参数控制所有优化器自适应特性在12.2 中oracle 引入了2个独立参数来控制oracle 的optimizer adaptive features(adaptive plans a...原创 2018-12-14 16:35:51 · 2552 阅读 · 0 评论 -
数据库压测指标的一点理解
Read iops:应用运行过程中物理读请求次数,单位是数据库一个block ,主要是server 进程读到buffer cache 或者pga 中数据块数 ;Write iops:应用运行过程中物理写请求次数,单位是数据库一个block;包含备份恢复及数据库其他组件操作过程中导致的物理写次数;物理写:数据库应用的写吞吐,是通过写次数乘以block size 换算出来的;物...原创 2018-07-31 08:49:38 · 2385 阅读 · 0 评论 -
日常 sql 优化常用快捷脚本--by lixora
----获取最近一次执行sql 的执行计划select * from table(dbms_xplan.display('PLAN_TABLE',NULL,'ALLSTATS'));set linesize 230 pagesize 9999select * from table(dbms_xplan.display_cursor(null,null,'ADVANCED note last'));...原创 2018-07-03 14:55:11 · 386 阅读 · 0 评论 -
COE:手动指定sql 重新硬解析 (flush cursor out of shared pool)
当我们使用11g 的spm 或者 sql profile,sql patch 固定执行计划后,肯定想让该sql 立即使用新的sql 执行计划;而大多数情况下,我们都会使用 alter system flush shared pool; 命令来清理整个实例级别的library cache;对于一个高并发,繁忙 oltp 系统而言,上述操作是一个及其危险的操作;严重时会导致 严重的 share原创 2017-12-28 22:20:41 · 468 阅读 · 0 评论 -
一则count(*) count(1) 为啥没有走索引的遭遇
一个超级简单的语句 select count(1) from lixora ; 开发反馈很慢,走了全表扫描,并且反馈说该表上有3个单列索引一般就2种原因: 1.统计信息不对2.索引列为 nullable 当时先让开发的兄弟使用 index hint 强制走了下索引,速度飞快,然后 再select count(lixora) from lixora ,发现也是走索引;原创 2017-11-16 11:27:36 · 8405 阅读 · 0 评论 -
sql profile: 如何使用我们自定义的sql 执行计划来固定原sql执行计划 及 如何优化非绑定变量sql
##测试环境搭建:SQL> create table test (n number );Table created.SQL> declare begin for i in 1 .. 10000 loop insert into test values(i); commit;原创 2017-06-21 17:00:28 · 865 阅读 · 0 评论 -
简单几步快速预判oracle 数据库运行状态
##os loadvmstat 2 999##os log#linux host logdmesg #AIX host log errpt##os filesystem#linux fsdf -h#AIX fsdf -g##oracle stats#event select event,count(*) from v$sessio原创 2016-02-21 20:26:07 · 736 阅读 · 0 评论 -
大页(huge pages) 系列五 ---USE_LARGE_PAGES 参数
USE_LARGE_PAGES 参数ORACLE 11G sga 大页使用的影响【只适用linuxOS】在11202 以后oracle pfile 支持USE_LARGE_PAGES 参数共3个选项【TRUE | FALSE | ONLY】USE_LARGE_PAGES 只影响对sga 对大页的使用策略,不影响进程私有内存分配原创 2015-12-22 22:11:38 · 2311 阅读 · 0 评论 -
oracle v$ 视图查询慢处理
1,首先可以看下ASH中查看会话的信息,如event等2. 查看SQL的执行计划信息,主要是为了获取涉及到了哪些 X$视图3. 收集统计信息exec dbms_stats.gather_table_stats(OWNNAME=>'SYS',tabname=>'X$lixora');exec dbms_stats.gather_table_stats(OWNNAME=>'SY原创 2015-11-29 12:42:55 · 5067 阅读 · 0 评论 -
如何使用oracle 的DBMS_SQLTUNE package 来运行 Sql Tuning Advisor 进行sql 自动调优
如何使用oracle 的DBMS_SQLTUNE package 来运行 Sql Tuning Advisor 进行sql 自动调优1》。这里简单举个例子来说明DBMS_SQLTUNE 的使用首先现执行下某个想要调优的sql,然后获取sqlid SQL> select * from v$sqltext where sql_text like 'select * from dua原创 2014-05-18 15:42:02 · 2412 阅读 · 0 评论 -
ksvcreate: Process(m001) creation failed 问题处理
ksvcreate: Process(m001) creation failed 问题处理问题描述:----------------------------------------------------------------------------------系统windwos 2003 64bit oracle 10.2.0.2alert_xx.logThre原创 2014-04-23 16:57:46 · 2248 阅读 · 0 评论 -
通过分析SQL语句的执行计划优化SQL(总结)
通过分析SQL语句的执行计划优化SQL(总结)FROM:http://www.blogjava.net/shanben/archive/2008/07/07/213150.html 做DBA快7年了,中间感悟很多。在DBA的日常工作中,调整个别性能较差的SQL语句时一项富有挑战性的工作。其中的关键在于如何得到SQL语句的执行计划和如何从SQL语句的执行计划中发现问题。总是想将日常经转载 2013-09-25 13:33:41 · 3126 阅读 · 1 评论 -
Oracle技术支持是如何分析数据库性能问题的
Oracle技术支持是如何分析数据库性能问题的 FROM:https://blogs.oracle.com/Database4CN/ By DongWei Wang on 九月 15, 2013 我的同事有幸参加了今年在上海的Oracle Open World,交流中有用户说我们中文的博客中跟性能相关的文章太少了。我们一贯非常重视用户的反馈,所以从现在开始我们转载 2013-09-18 09:28:27 · 1282 阅读 · 0 评论 -
script:查看redo产生的历史信息
script:查看redo产生的历史信息 SQL> alter session set nls_date_format='dd-mon-yy';SQL> set lines 160 pages 1000 echo off feedback offSQL> col stat_name for a25SQL> col date_time for a40SQL> col原创 2013-09-06 15:55:48 · 1378 阅读 · 0 评论 -
script:查看历史sql执行信息
script:查看历史sql执行信息 SELECT * FROM (SELECT '1.v$sql'||'实例号:'||GV$SQL.inst_id source, SQL_ID, plan_hash_value, TO_CHAR (FIRST_LOAD_TIME) beg原创 2013-09-06 16:07:43 · 1271 阅读 · 0 评论 -
获取row chain and row Migration
获取row chain and row Migration 1.使用analyze对相应的object分析SQL> ANALYZE TABLE oe.orders COMPUTE STATISTICS;Table Analyzed. SQL> SELECT num_rows, avg_row_len, chain_cnt 2 FROM DBA_TABLES3原创 2013-05-06 22:12:39 · 1255 阅读 · 0 评论 -
说oracle优化之一
说oracle优化之一FROM:http://www.taobaodba.com/html/236_oracle_tunning_.htmlDecember 15th, 2008 丁原Leave a commentGo to comments今年所做的优化,大的涉及到体系架构改造,通过cache来减少sql执行次数,通过更改应用的实现方式等,小的如加hint,建转载 2013-05-02 17:21:59 · 1048 阅读 · 0 评论 -
自动监控oracle 表空间使用量的脚本
from:http://yong321.freeshell.org/oranotes/TablespaceFreespace.txt Believe it or not, some DBAs don't write tablespace freespace check scripts correctly. A common mistake occurs when the free spac翻译 2013-04-24 13:25:16 · 2659 阅读 · 0 评论 -
解决log file sync 的方法
from :http://t.askmaclean.com/thread-2211-1-1.html 本文主要讨论 RAC数据库中的'log file sync'等待事件。RAC 数据库中的'log file sync'等待事件要比单机数据库中的'log file sync'等待事件复杂,主要原因是由于RAC数据库需要将SCN同步到所有实例。 首先,回顾一下原创 2013-03-28 08:38:33 · 1863 阅读 · 0 评论 -
关于AWR报告中一些参数的解释
Top Timed Events ==》 包括了 background + foreground eventTop Timed Foreground Events ==> only foreground event System I/O==> 系统IO 是指 DBWR、 LGWR等后台进程的I/O 未完待补充。。。。原创 2013-03-23 15:36:07 · 1478 阅读 · 0 评论 -
如何诊断数据库突然出现性能问题?
如何诊断数据库突然出现性能问题? 如果在知道是某个用户进行的操作的前提下,可以通过v$session 视图来确定具体是那个session造成的性能问题 select * from v$session where username like 'xxx';通过以上查询可以看到 某个用户的所有的session (sid),但是仅通过sid 是不能找到某个具体的session的这时再查询v原创 2013-02-25 21:58:56 · 889 阅读 · 0 评论