随笔分类 - 数据库性能优化与故障诊断
摘要:HANA 数据库日志空间耗尽,数据库服务停止响应,此时如果直接删除日志段很有可能导致数据库无法正常启动,数据丢失。安全方式是将一部分日志移动至其他空间充足的磁盘路径,腾出一部分日志卷空间,数据库服务启动后执行日志备份任务回收日志空间,步骤如下: 1、查看HANA 数据库日志空间,发现使用率100%,
阅读全文
摘要:有网友咨询,丢过来一段sql 语句,说是执行一次耗时10多分钟,让帮忙看看。表数据量在5万左右,数据量不大,首先确认表统计信息都是准确的,查询sql以及执行计划如下: 可以看到嵌套循环join 部分全表扫描,缺失索引,应该在join 条件列hoist_code、device_code 建立索引,但是
阅读全文
摘要:--查询数据库索引碎片状况 use dbname; SELECT OBJECT_NAME(ind.OBJECT_ID) AS TableName, ind.name AS IndexName, indexstats.index_type_desc AS IndexType, indexstats.a
阅读全文
摘要:--打开query store,sql server 2016 以上版本(建议打补丁KB 4340759 或更新到sql server 2016 sp2 cu2 以上以解决在繁忙的数据库中开启查询存储导致服务器性能下降的问题) ALTER DATABASE [testdb] SET QUERY_ST
阅读全文
摘要:从21c 开始,oracle 数据库推出automatic in-memory 特性,通过对INMEMORY_AUTOMATIC_LEVEL 参数增加一个high选项,自动化in-memory 对象管理,dba 无需手动指定哪些对象需要加载到in-memory 内存区域,由oralce自动根据访问追
阅读全文
摘要:Sql Server 提供 了set statistics ,用于显示sql 执行过程中所消耗的资源情况,包括time和io部分,便于dba进行sql语句性能分析。 开启io统计: set statistics io on; 显示sql执行过程中消耗的io资源情况,包括物理读、逻辑读、预读取以及表的
阅读全文
摘要:早上上班的时候,开发发过来一段sql,join 字段存在索引,说还是执行很慢,让帮忙分析原因,sql 片段如下:select * from ppsuser.mes_qholdsn_log a join sajet.g_sn_status b on a.customer_sn||'01')=b.ser
阅读全文
摘要:前几天帮开发优化的一段sql,逻辑很简单,通过dblink 访问远程数据库表和本地库表做串接,优化之前执行sql 卡死出不来结果,如下: 查看执行计划如下: 看起来是驱动表选择错误,远程数据库数据通过网络拉到了本地库处理了,由于远程数据库服务器是exadata一体机,查询处理在远程数据库会比较快,故
阅读全文
摘要:早上上班,开发丢过来一段报表执行的sql,说是执行时间很长(要跑10几分钟),看能不能优化,sql 大概如下: 看了一下执行计划,没有太大问题,捞取的数据量比较大而已,有几个全表扫描的sql ,已经走inmemory access 执行计划,想到可以使用并行进一步优化执行速度。 经过测试将并行度设置
阅读全文
摘要:数据库中包含哪些存储过程可以通过查询视图sys.procedures 得到: 数据库中存储过程执行性能信息可以通过查询sys.dm_exec_procedure_stats动态管理视图得到: 结合sys.procedures、sys.dm_exec_procedure_stats视图可以很容易得到具
阅读全文
摘要:tempdb 和sql server 用户数据库一样都是通过model系统 数据库模板克隆创建而来,是全局资源供所有连接到sql server实例上的用户使用,不同的是tempdb 每次sql server 实例重启都会删除、重新创建初始化,主要存储以下2类对象: 用户临时对象:用户创建的全局/本地
阅读全文
摘要:早上上班开发反馈用于bi系统的sql server 数据库连不上,应用全挂了,zabbix 监控也在预警。 看监控晚上4点05分sql server 服务已经停止了,于是立马登陆服务器开启sql server 服务,恢复应用要紧。服务、应用恢复正常后,需要找出数据库服务停止的原因。 首先检查wind
阅读全文
摘要:开发丢过来一段sql,说是在测试库执行正常,在正式库执行报错:ORA-00600: 内部错误代码, 参数: [qksdmlMrgViewDestFro_4], [141000], [121103], [], [], [], [], [], [], [], [], [],让帮忙分析一下原因。看了一下s
阅读全文
摘要:工作中遇到不少开发跑过来,急匆匆的说我的存储过程执行好慢帮忙看看是哪里慢的情况。 抛开锁阻塞,存储过程执行缓慢大概率是其中的sql 语句执行缓慢,那么怎么样快速定位到是哪个sql 执行有问题呢,或者是找到了有问题的sql 需要调整,怎么告知开发有问题的sql 是属于哪一个存储过程,相信日常工作中db
阅读全文
摘要:一、querystore 自sql server 2016 版本开始提供,查询存储包含3个部分:1.计划存储:用于保存执行计划信息;2.运行时统计信息存储: 用于保存执行统计信息;3.等待统计信息存储: 用于保存等待统计信息;二、查询存储的作用:1.快速查找并修复通过强制使用先前查询计划而造成的计划
阅读全文
摘要:sql repair advisor 分析单条sql语句,主要用于sql 执行错误、性能问题、sql 产生错误的结果问题并应用sql patch 进行问题修复,oracle 自11g 开始提供,主要通过以下几种方式去使用:方式一:通过plsql dbms_sqldiag 诊断包declarel_sq
阅读全文
摘要:store outline 是一些sql hint 的集合,能够使优化器产生sql 稳定的执行计划,主要应用于9i 以及之前的版本,随着10g sql profile、11g sql plan baseline、sql patch 的引入已经不推荐使用,但是作为DBA,有必要知道如何使用。 --cr
阅读全文
摘要:使⽤三个A开头的性能优化和问题诊断⼯具来解决性能相关问题或其他通⽤问题: 1、AWR(⾃动⼯作负载信息)报告:为Oracle数据库记录负载信息,⽤于后续诊断 AWR 报告: 数据库整体性能 数据库实例命中率百分比 TOP 10重要等待事件 top sql 执行时间 AWR SQL 报告: sql 执
阅读全文
摘要:sql tuning advisor 分析各个 SQL 语句, 并建议 SQL 概要文件, 统计信息, 索引和重构的 SQL 以改善 SQL 性能,自oracle 10g 开始提供,帮助DBA 分析、优化sql 执行性能问题。主要通过以下几种方式去使用: 方式1:--通过 plsql dbms_sq
阅读全文
摘要:1. /*+ALL_ROWS*/表明对语句块选择基于开销的优化方法,并获得最佳吞吐量,使资源消耗最小化例如:SELECT /*+ALL+_ROWS*/ EMP_NO,EMP_NAM,DAT_IN FROM BSEMPMS WHERE EMP_NO='SCOTT'; 2. /*+FIRST_ROWS*
阅读全文