SinoDB数据库运行分析

news2024/11/15 20:04:42

 SinoDB数据库运行主要从数据库互斥资源等待、数据库写类型、备份文件有效性、Chunk状态等15个方向进行分析,具体说明如下:

一、数据库互斥资源等待

  • 检查项目
    数据库互斥资源等待

  • 检查命令
    onstat -g con |head -20

  • 说明
    onstat -g con 查看目前数据处于等待条件中的线程信息
    查看这两项资源等待项目,判断数据库是否存在资源配置上的性能瓶颈

二、数据库写类型

  • 检查项目
    数据库写类型

  • 检查命令
    onstat -F |head

  • 说明
    Fg Writes ,LRU Writes,Chunk Writes分别代表了Buffer不足时清仓的数量,检查点来临前由LRU控制的清仓数量以及检查点触发时的清仓数量

三、备份有效性检测

  • 检查项目
    检查备份文件有效性

  • 检查命令
    onstat -g arc

  • 说明
    确认各个DBSPACE包含有效的备份可供恢复使用

四、Chunk状态检查

  • 检查项目
    Chunk状态

  • 检查命令
    onstat -d | grep PD-

  • 说明
    如果chunk块的FLAG标识出现PD-状态,表示该chunk设备已经脱机

五、检查系统关键区信息

  • 检查项目
    检查系统关键区信息

  • 检查命令
    oncheck -cc
    oncheck -cr

  • 说明
    每个数据库包含它本身的系统目录,该目录包含关于数据库表、列、索引、视图、约束、存储过程和特权的信息。保留页是驻留在根数据库空间初始块开始处的页。这些页包含主数据库服务器开销信息。如果该命令检测到错误,请从存储空间备份执行数据恢复。

六、数据库实例概要信息

  • 检查项目
    数据库实例概要信息

  • 检查命令
    onstat -p

  • 说明
    1.%cached 是读取共享内存相对于磁盘读取百分比。OLTP 系统应该在95%以上。它是在系统中缓冲区太少的指标。

  1. seqscans & isamtot - 如果seqscans 和isamtot之间的比例大于1%,我们可以看看是否索引(index)使用少,顺序扫描(seqscans)使用太多。
  2. lokwaits & lockreqs - 是用户线程必须在锁定表发出请求/页/行锁的次数。如果与lokwaits/lockreqs 比率太高,那么应用程序可能单线程(single-threading)。
  3. ovlock 是数据库服务器试图分配锁15次数以上。ovlock 字段表明IDS 在使用了最大数量的锁之后尝试过再使用锁的次数。如果该数字非零,那么您可能需要提高配置文件中LOCKS 参数的值。
  4. ovbuff 字段表明IDS 在使用了最大数量的缓冲区之后尝试过再使用缓冲区的次数。如果该数字很大,比如说超过100000,那么表示我们需要提高BUFFERS 参数,以便用户在需要从磁盘访问数据
    时不必等待缓冲区。这会缩短响应时间,因而可以改善整体性能。我们还需要检查与LRU 有关的参数,将它们的值调整到较低的bufwait。
  5. commit & rollbk
    是回滚(rollback)和提交(commit)两者的比例。如果比例过高1%,那么应用程序可能设计不正确。需要研究为什么有这么多回滚,并采取纠正措施。

七、检查点持续时间

  • 检查项目
    检查点持续时间

  • 检查命令
    tail -100000 onstat -m | grep "Message Log File" | awk -F: '{print $2}' | grep duration | grep -v “0 seconds”

  • 说明
    检查点持续时间反映出了一定的数据库性能,如果出现持续的检查点时间超过20秒则需要引起关注,可通过设置LRU_MIN_DIRTY , LRU_MAX_DIRTY来缓解。

八、非连续物理分布的表

  • 检查项目
    非连续物理分布的表

  • 检查命令
    dbaccess [DBNAME] <<EOF
    select dbinfo(‘DBNAME’) dbname,t.tabname tabname,dbinfo(‘DBSPACE’,t.partnum) dbspace,count() extent_num, max(p.nrows) rows
    from sysmaster:sysptnext e, systables t,sysmaster:sysptnhdr p
    where e.pe_partnum=t.partnum
    and t.partnum=p.partnum
    and t.tabid>99
    and t.tabname not like “sys%”
    and t.tabname not like “tmp%”
    group by 1,2,3
    having count(
    )>100
    order by 4 desc
    EOF

  • 说明
    如果除了大型分段表以外,表的扩展块超过了100个,那么应该考虑重新构建这些表以合并扩展块。通过指定表的extent size 和nextsize调整重建表来减少extent数量。同时我们还需要根据表的记录数
    来判断表的extent设置的问题。

九、全表扫描最多的表

  • 检查项目
    全表扫描最多的表

  • 检查命令
    select p.dbsname, t.tabname,
    sum(p.seqscans) seqscans , max(t.nrows) nrows
    from sysmaster:sysptprof p, systables t
    where p.tabname =t.tabname
    and t.nrows > 10000 and p.seqscans>10
    and p.dbsname not like “sys%” and p.tabname not like “sys%” and p.tabname not like “tmp%”
    group by 1,2
    order by 3 desc;

  • 说明
    对于大表的全表扫描操作会产生极高的开销,通过找出全表扫描最多的大表,并合理的建立相应的索引可以有效的避免额外的开销

十、DUMP目录检查

  • 检查项目
    DUMP目录空间及文件检查

  • 检查命令
    1.df -h $DUMPDIR
    2.ls -lrt $DUMPDIR|egrep ‘.af|.dmp|core’

  • 说明
    定期检查DUMPDIR剩余空间确保其在故障时可以产生完整的AF文件供诊断使用

十一、IO最多的表

  • 检查项目
    各个表上IO情况

  • 检查命令
    select a.dbsname, a.tabname,
    (isreads + pagreads) diskreads,
    (iswrites + pagwrites) diskwrites,
    (isreads + pagreads)+(iswrites + pagwrites) disk_rsws
    from sysptprof a,systabnames b
    where a.partnum=b.partnum
    and a.tabname != ‘TBLSpace’
    and a.tabname not like ’ %’
    and a.tabname not like ‘sys%’
    and a.dbsname not like ‘sys%’
    and isreads + pagreads + iswrites + pagwrites >50000
    order by 5 desc;

  • 说明
    根据表的繁忙程度可以帮我们找出最需要进行关注的表,如果该部分表很大,则需要考虑对其进行分区操作,此外该信息可以帮助我们更为合理的规划磁盘IO

十二、效率低下的索引

  • 检查项目
    索引层超过4层的表

  • 检查命令
    dbaccess [DBNAME] <<EOF
    select t.tabname,i.idxname, i.levels
    from sysindexesi,systables t
    where i.tabid = t.tabid
    and i.levels>=4
    order by 3 desc
    EOF

  • 说明
    层数在3层以上的索引性能将会严重降低,需考虑重建

十三、磁盘排序情况

  • 检查项目
    查看系统磁盘排序情况

  • 检查命令
    dbaccess sysmaster <<EOF
    Select *
    from sysprofile
    where name matches “sort

  • 说明
    磁盘排序在性能上远低于内存排序,当内存排序空间不足时数据库则会使用磁盘进行排序,如果系统存在大量的磁盘排序,则应当考虑是否需要增加临时空间

十四、rootdbs上非系统表

  • 检查项目
    找出Rootdbs上非系统表

  • 检查命令
    dbaccess sysmaster <> $chkFile
    select distinct t.dbsname database,d.name dbspace,t.tabname
    from sysdbstab d,syschunks c,sysextents t
    where t.chunk=c.chknum
    and c.dbsnum=d.dbsnum
    and t.dbsname not like ‘sys%’
    and t.dbsname != ‘onpload’
    and t.tabname not like ‘sys%’
    and d.name = ‘rootdbs’
    EOF

  • 说明
    rootdbs中本身包含所有的系统表,如果附加业务表于其上则会产生IO和空间上的多种争用,如发现Rootdbs中存在业务表,则应考虑将其迁出至相应业务数据DBSPACE上

十五、表空间使用过高的表清单

  • 检查项目
    找出系统内空间使用过高的表

  • 检查命令
    set isolation to dirty read;
    select s.dbsname,s.tabname, p.npused from sysptnhdr p,systabnames s
    where p.partnum = s.partnum
    and p.npused >10000000 ;

  • 说明
    2k page Size数据库内若单一个partition 使用超过16775134 pages ,则该表会导致无法在新增数据的问题。若有该状况建议:
    1、将该表移至大Page Size的表空间
    2、将该表进行表分区或表分片。

更多信息内容请移步星瑞格官方社区,期待大家加入     
Sinoregal Tech ForumAsk questions, share solutions, and get to know the Sinoregal community.icon-default.png?t=N7T8https://forum.sinoregal.cn/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1528241.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【C++练级之路】【Lv.14】二叉搜索树(进化的二叉树——BST)

快乐的流畅&#xff1a;个人主页 个人专栏&#xff1a;《C语言》《数据结构世界》《进击的C》 远方有一堆篝火&#xff0c;在为久候之人燃烧&#xff01; 文章目录 引言一、二叉搜索树介绍二、二叉搜索树的模拟实现2.1 结点2.2 成员变量2.3 默认成员函数2.3.1 constructor2.3.2…

汽车功能安全整体方法

摘 要 ISO26262道路车辆功能安全标准已经制定实践了多年&#xff0c;主要目标是应对车辆的电子和电气&#xff08;E/E&#xff09;系统失效。该方法践行至今&#xff0c;有些系统功能安全方法已经成熟&#xff0c;例如电池管理系统&#xff08;BMS&#xff09;&#xff0c;并且…

MindGraph:文字生成知识图

欢迎来到MindGraph&#xff0c;这是一个概念验证、开源的、以API为先的基于图形的项目&#xff0c;旨在通过自然语言的交互&#xff08;输入和输出&#xff09;来构建和定制CRM解决方案。该原型旨在便于集成和扩展。以下是关于X的公告&#xff0c;提供更多背景信息。开始之前&a…

每日OJ题_牛客HJ75 公共子串计算(IO型OJ)

目录 牛客HJ75 公共子串计算 解析代码 牛客HJ75 公共子串计算 公共子串计算_牛客题霸_牛客网 解析代码 #include <iostream> using namespace std; int main() {string str1 "", str2 "";cin >> str1 >> str2;int n1 str1.size()…

【Selenium(一)】

简介 Selenium是一个开源的自动化测试工具&#xff0c;主要用于Web应用程序的自动化测试。它支持多种浏览器&#xff0c;包括Chrome、Firefox、Internet Explorer等&#xff0c;以及多种编程语言&#xff0c;如Java、Python、C#、Ruby等&#xff0c;使得它成为Web自动化测试中…

一个用稳压二极与MOS管构成的过压保护电路

一个用稳压二极与MOS管构成的过压保护电路 如图&#xff0c;利用稳压管和PMOS管组成一个保护电路&#xff0c;起过压保护和防反接的的作用。 分析&#xff1a; 1.当输入端是5V左右的电压的时候&#xff08;VDD-IN5V&#xff09;&#xff0c;稳压二极管D1没有被反向击穿&#…

【异常处理】SpringMVC无法跳转视图问题

浏览器发送请求给控制器&#xff0c;但是结果是404报错&#xff0c;又试了一下返回json字符串&#xff0c;json可以获取到&#xff0c;所以应该springmvc出了问题。 查看controller&#xff0c;发现无法加载视图

RealBasicVSR使用记录

对各种场景图片、视频超分结果都很不错的模型。 paper&#xff1a;https://arxiv.org/pdf/2111.12704.pdf code&#xff1a;https://github.com/ckkelvinchan/RealBasicVSR 一、使用步骤 1. git clone https://github.com/ckkelvinchan/RealBasicVSR.git 2. 我的环境已安装…

问界汽车提车全流程及注意点【伸手党福利】

问界汽车提车全流程及注意点 目录 说明为没买车和没提车的小伙伴提供参考全程必须车主办理&#xff08;人必须在场&#xff09;&#xff0c;如果不是车主授权书很难办。时间&#xff1a;提车用时4小时&#xff0c;2个人 提车提前联系-交付专员做好需求调研当天-到店验车-千万不…

并发编程Semaphore(信号量)浅析

目录 一、简介二、API三、使用3.1 demo13.1 demo2 四、适用场景 一、简介 Semaphore&#xff08;信号量&#xff09;是 Java 中用于控制同时访问特定资源的线程数量的工具类。Semaphore 维护了一组许可证&#xff0c;线程在访问资源之前必须先获取许可证&#xff0c;访问完毕后…

前端 -- 基础 表单标签 -- 表单域

表单域 # 表单域是一个包含 表单元素 的区域 在 HTML 标签中&#xff0c; <form> 标签 用于定义表单域&#xff0c; 以实现用户信息的收集和传递 简单通俗讲&#xff0c; 就是 <form> 会把它范围内的表单元素信息提交给后台&#xff08;服务器) 对于上面讲…

1058:求一元二次方程

【题目描述】 利用公式 求一元二次方程axbxc0的根&#xff0c;其中a不等于0。结果要求精确到小数点后5位。 【输入】 输入一行&#xff0c;包含三个浮点数a,b,c&#xff08;它们之间以一个空格分开&#xff09;&#xff0c;分别表示方程axbxc0的系数。 【输出】 输出一行&…

蓝桥杯 2023 省B 接龙数列

思路分析&#xff1a; 创建一个大小为10的向量 hash&#xff0c;用于记录以每个数字结尾的字符串数量。输入字符串数量 n。循环读取每个字符串&#xff0c;并更新 hash 中以当前字符串结尾的字符串数量。同时更新最大字符串数量 count。输出不可达的字符串数量&#xff0c;即 …

掘根宝典之C++正向迭代器和反向迭代器详解

简介 迭代器是一种用于遍历容器元素的对象。它提供了一种统一的访问方式&#xff0c;使程序员可以对容器中的元素进行逐个访问和操作&#xff0c;而不需要了解容器的内部实现细节。 C标准库里每个容器都定义了迭代器&#xff0c;这迭代器的名字就叫容器迭代器 迭代器的作用类…

鸿蒙-自定义组件-语法

目录 语法组成 在学习自定义组件前&#xff0c;先看一下ArkTS的组成 装饰器 用于装饰类、结构、方法以及变量&#xff0c;并赋予其特殊的含义。如上述示例中Entry、Component和State都是装饰器 Entry 表示该自定义组件为入口组件 Component 表示自定义组件 State 表示组…

Html+threejs数字孪生三维场景实现

程序示例精选 Htmlthreejs数字孪生三维场景实现 如需安装运行环境或远程调试&#xff0c;见文章底部个人QQ名片&#xff0c;由专业技术人员远程协助&#xff01; 前言 这篇博客针对《Htmlthreejs数字孪生三维场景实现》编写代码&#xff0c;代码整洁&#xff0c;规则&#xf…

【机器学习】基于机器学习的分类算法对比实验

摘要 基于机器学习的分类算法对比实验 本论文旨在对常见的分类算法进行综合比较和评估&#xff0c;并探索它们在机器学习分类领域的应用。实验结果显示&#xff0c;随机森林模型在CIFAR-10数据集上的精确度为0.4654&#xff0c;CatBoost模型为0.4916&#xff0c;XGBoost模型为…

高端竞赛活动中的软硬件供应商要如何选择

知识竞赛活动属于“直播”类活动&#xff0c;一旦开始无法重来&#xff0c;所以软硬件稳定可靠至关重要&#xff0c;要历经多次活动的磨炼&#xff0c;性能稳定可靠&#xff0c;要有多重防灾难设计和备用方案。所以一定要选择历经磨炼的高端竞赛软件和执行团队。 可以从以下几个…

好书推荐 《ARM汇编与逆向工程 蓝狐卷 基础知识》

《ARM 汇编与逆向工程 蓝狐卷 基础知识》 与传统的 CISC&#xff08;Complex Instruction Set Computer&#xff0c;复杂指令集计算机&#xff09;架构相比&#xff0c;Arm 架构的指令集更加简洁明了&#xff0c;指令执行效率更高&#xff0c;能够在更低的功耗下完成同样的计…

【Ubuntu】FTP站点搭建

配置顺序 前提条件&#xff1a;确保软件仓库可以正常使用&#xff0c;确保已正常配置IP地址 1.安装FTP服务 2.编辑FTP配置文件 3.设置开机自启 4.创建用户 5.配置用户限制名单 6.重启服务 7.查看运行状态 8.测试在同一局域网下的Windows查看文件 1.安装FTP服务 sudo apt insta…