随笔分类 -  数据库性能优化与故障诊断

摘要:SQL 概要文件包含其他信息 (辅助统计信息), 它们可以帮助优化程序选择特定 SQL 语句的最佳执行计划。 oracle 10g 开始,oracle 提供了sql profile,当查询涉及到复杂谓词条件、复杂表连接关系时,优化器就有可能做出错误的基数估计从而引发性能问题,sql profile 阅读全文
posted @ 2021-12-10 09:15 踏雪无痕2017 阅读(890) 评论(0) 推荐(0) 编辑
摘要:SQL 计划基线是一个旨在使指定 SQL 语句的性能可以接受的执行计划。 从11g 开始,oracle 提供了执行计划管理SPM功能,方便DBA通过执行计划基线修正sql 错误的执行计划,避免sql 执行性能退化。--create sql_plan_baseline from sql_tuning_ 阅读全文
posted @ 2021-12-09 14:38 踏雪无痕2017 阅读(1616) 评论(0) 推荐(0) 编辑
摘要:有时候,sql 语句执行计划选择错误我们可以通过hint 方式更正执行计划,但是添加hint需要调整sql意味着需要对程序代码进行改动,这对一些生产环境可能是不允许的。从11g开始,可以通过sql patch 不改动sql语句为sql增加hint从而达到优化的目的。对于绑定变量sql,可以采用如下方 阅读全文
posted @ 2021-12-08 13:42 踏雪无痕2017 阅读(915) 评论(0) 推荐(0) 编辑
摘要:开发人员丢过来一段sql,逻辑很简单,说是执行非常缓慢,跑不出结果,让看下是怎么回事。 看了下sql,就一个where 过滤条件和order by 排序: select top 1 Ppid from M_InteriorPpid_t WITH (nolock) where moid='110003 阅读全文
posted @ 2021-12-04 09:41 踏雪无痕2017 阅读(142) 评论(0) 推荐(0) 编辑
摘要:1、mos 下载 imadvisor:Oracle Database In-Memory Advisor (Doc ID 1965343.1) 2、解压、安装: [oracle@js1u-dba-sitdb ~]$ mkdir imadvisor [oracle@js1u-dba-sitdb ~]$ 阅读全文
posted @ 2021-12-03 15:55 踏雪无痕2017 阅读(293) 评论(0) 推荐(0) 编辑
摘要:近日一套dataguard 物理备库使用rman备份恢复 迁移到新的服务器上,数据库只读打开开启同步后 ,由于备库还承担查询业务,手动添加临时表空间临时文件报如下错误: 按道理说物理备库是可以增加临时表空间临时文件的,怀疑是bug,查找mos ,发现有如下文档说明: 主库有配置ogg 复制,也启用了 阅读全文
posted @ 2021-11-24 16:07 踏雪无痕2017 阅读(534) 评论(0) 推荐(0) 编辑
摘要:来自oracle 官方对于数据库连接池的使用建议: 一、 连接风暴是指,在短时间内,连接数成百上千的增长:1、 连接风暴可能导致数据库服务器不稳定或者不可用 Logon/Logoff是非常消耗资源的(创建新连接,分配资源,map SGA等)2、产生连接风暴的根本原因是动态连接池策略,即连接池的最小值 阅读全文
posted @ 2021-11-10 15:24 踏雪无痕2017 阅读(1201) 评论(0) 推荐(0) 编辑
摘要:oracle database in memory 主要适用于以下场景: 1、加速全表扫描: 2、加速表连接: 3、加速聚合分析: 开启方式: 1、设置实例参数inmemory_size(该参数为静态参数,需要重启实例生效),指定用于in memory的内存大小,adg 备库需确保参数inmemor 阅读全文
posted @ 2021-11-06 15:22 踏雪无痕2017 阅读(357) 评论(0) 推荐(0) 编辑
摘要:早上的时候,监控系统预警,一套生产库oracle rac undo 表空间使用率超过预警值,使用率几分钟钟之内达到100%,登陆数据库紧急扩容,查看是否有长时间执行的查询、大的未提交的事务在执行,检查后一切正常。几分钟后undo 表空间使用率再次达到100%,为了不影响生产业务,再次进行扩充。检查数 阅读全文
posted @ 2021-10-29 09:15 踏雪无痕2017 阅读(527) 评论(0) 推荐(0) 编辑
摘要:解决sql server 由于参数嗅探导致的执行性能问题思路: 1、查询存储过程执行时间,比较平均执行时间与最近执行时间差异,如果相差很大就有可能是参数嗅探导致 SELECT d.object_id , DB_NAME(d.database_id) DBName , OBJECT_NAME(obje 阅读全文
posted @ 2021-08-26 14:06 踏雪无痕2017 阅读(208) 评论(0) 推荐(0) 编辑
摘要:近日一套Oracle 11g adg 容灾数据库频繁宕机,业务开发反馈查询数据不同步。 由于配置了oracle restart,数据库实例宕机后会自动启动到只读模式,数据同步需要手动开启,几次故障都是晚上,在没有找到原因之前先增加zabbix监控adg 同步状态,当同步停止了发出预警以便及时处理。 阅读全文
posted @ 2021-07-19 10:38 踏雪无痕2017 阅读(281) 评论(0) 推荐(0) 编辑
摘要:1、监控IOPS windows 性能监视器提供了如下计数器用于监控iops Disk Reads/sec: Number of read IOPS Disk Writes/sec: Number of write IOPS Disk Transfers/sec: Number of read an 阅读全文
posted @ 2021-06-18 19:02 踏雪无痕2017 阅读(608) 评论(0) 推荐(0) 编辑
摘要:SQL Server 事务日志不能截断的几种常见原因总结: 1、CHECKPOINT 数据库尚未生成检查点 2、日志备份 数据库事务日志没有备份 3、活动事务 长时间运行的事务将阻止所有恢复模式下的日志截断,包括简单恢复模式 4、复制、镜像、AlwaysOn 数据库配置了复制、镜像、AlwaysOn 阅读全文
posted @ 2021-05-31 17:02 踏雪无痕2017 阅读(285) 评论(0) 推荐(0) 编辑
摘要:数据库运维过程中,一个常见而又紧急的问题就是突发的CPU使用率100%,造成业务停顿,下面是一些主要的分析、诊断方法: 一、查看连接数变化,结合监控,查看出现问题时的活动连接数变化 select count(*) from pg_stat_activity where state not like 阅读全文
posted @ 2021-05-31 09:53 踏雪无痕2017 阅读(986) 评论(0) 推荐(0) 编辑
摘要:前段时间,一套2节点rac 中的第一个节点数据库出现大量gc block lost ,业务系统也出现卡顿的现象,故障时段awr 如下: 通过分析心跳网络延迟、网络丢包状况都正常,服务器硬件状况也是正常。 通过netstat -s 指令进一步排查,发现大量的数据包重组失败错误(reassembles 阅读全文
posted @ 2021-05-22 08:51 踏雪无痕2017 阅读(524) 评论(0) 推荐(0) 编辑
摘要:一套oracle 11g rac 环境由于存储链路故障,原本三块仲裁盘,其中一块仲裁盘被offline drop 掉了,参照oracle mos 文档,加回操作如下: su - grid $ crsctl query css votedisk## STATE File Universal Id Fi 阅读全文
posted @ 2021-04-26 14:38 踏雪无痕2017 阅读(328) 评论(0) 推荐(0) 编辑
摘要:历史库周末维护扩充磁盘空间,linux 服务器重启后原本用于数据备份用的lvm 提示挂载失败,pvdisplay、vgdisplay、lvdisplay显示均正常,手动扫描lvm 提示挂载失败的lvm状态为inactive # lvscan ACTIVE '/dev/ol/swap' [64.00 阅读全文
posted @ 2021-04-15 17:59 踏雪无痕2017 阅读(1267) 评论(0) 推荐(0) 编辑
摘要:开发丢过来一段sql 反馈在正式库查不出数据,跑了好几分钟无反应,问是不是表被锁住了。 看了下sql 只是简单的条件查询,oracle select 是不加锁的,手动select count(*) from table 居然跑了好久无结果,记得是几百万的小表,速度不应那么慢,查看执行计划,全表扫描行 阅读全文
posted @ 2021-04-08 19:25 踏雪无痕2017 阅读(501) 评论(0) 推荐(0) 编辑
摘要:需关闭所有实例,再重新启动db服务生效: 10g: alter system set "_gc_affinity_time"=0 scope=spfile; alter system set "_gc_undo_affinity"=false scope=spfile; 11g: alter sys 阅读全文
posted @ 2021-03-10 10:22 踏雪无痕2017 阅读(676) 评论(0) 推荐(0) 编辑
摘要:常见原因以及解决方案: 1、表无主键或者二级索引: 原因: 若binlog 为row格式且表无主键或者二级索引,当对大表进行dml操作(update、insert、delete),从库在对binlog日志应用时会根据主键或者二级索引检索需要更改的行,如对应的表无主键索引或者二级索引,就会产生大量的全 阅读全文
posted @ 2021-03-01 15:59 踏雪无痕2017 阅读(1574) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示