人大金仓分析型数据库常见性能原因
目录
硬件失效
管理负载
避免竞争
统计信息
识别问题
调整统计
优化分布
优化设计
硬件失效
数据库的性能取决于它所运行的硬件基础设施。数据库由多台服务器(主机)构成,它们作为一个紧密的系统(阵列)一起工作。 作为诊断性能的第一步,应确保所有的数据库的实例都在线。数据库的性能将和阵列中最慢的那一台主机相同。 CPU利用、内存管理、I/O处理或者网络负 载方面的问题都会影响性能。常见的与硬件相关的问题有:
- 磁盘失效:尽管在使用RAID时单一磁盘失效不会剧烈的影响数据库性能,但磁盘重新同步确实会在有失效磁盘的主机上消耗资源。 gpcheckperf 工具可以帮助发现有磁盘I/O问题的主机
- 磁盘容量:主机上的磁盘容量应该永远不超过70%。数据库需要一些空闲空间来做运行时处理。 要回收已删除行占用的磁盘空间,可以在装载或者更新后运行VACUUM
- 主机失效:当一台主机离线时,该主机上的实例就不可操作。这意味着其他主机必须执行两倍于它们通常的负载。如果没有启用镜像,服务就会中断。为恢复失效的实例也需要临时中断服务
- 网络失效:一块网卡、一台交换机或者DNS服务器的失效都可能让实例宕掉。 如果在集群中无法解析主机名或者IP地址,这就表明是数据库中的Interconnect错误。 gpcheckperf可以帮助发现出现网络问题的主机
管理负载
一个数据库系统的CPU容量、内存和磁盘I/O资源是有限的。当多个负载竞争访问这些资源时,数据库性能就会受到影响。 负载管理能在符合多变的业务需求的同时最大化系统吞吐。数据库提供了资源队列和资源组来协助管理这些系统资源。资源队列和资源组限制了特定队列或组的资源使用量和并行查询总数,管理员可以控制并行用户查询,防止系统过载。数据库管理员应该在业务时段之后运行维护负载,例如数据装载和VACUUM ANALYZE操作, 不要与数据库用户竞争系统资源,在低使用率时段执行管理任务。
避免竞争
当多个用户或者负载尝试以冲突的方式使用系统时,竞争就会发生。例如,当两个事务尝试同时更新一个表时会发生竞争。 一个寻求表级或行级锁的事务将无限等待冲突的锁被释放。应用不应该保持事务打开很长时间,例如,在等待用户输入时。
统计信息
数据库使用一种依赖于数据库统计信息的基于代价的查询优化器。准确的统计信息让查询优化器更好地估计一个查询检索的行数, 以便选择最有效的查询计划。如果没有数据库统计信息,查询优化器就不能估计将返回多少记录。优化器并不假设它有足够多的内存来执行特定的操作, 例如聚集,因此它会采取最保守的行动并且通过读写磁盘来做这些操作。这比在内存中做要慢很多。ANALYZE 会收集查询优化器需要的数据库相关的统计信息。
识别问题
在使用EXPLAIN 或 EXPLAIN ANALYZE解释一个查询的计划之前,先熟悉一下有助于帮助发现统计信息问题的数据。在计划中检查下列不准确统计信息的指示器:
- 优化器的估计接近于现实吗? 运行 EXPLAIN ANALYZE 并且看看优化器估计的行数是否和查询操作返回的行数接近
- 优化器是否选择了最好的连接顺序?在一个查询连接多个表时,确保优化器选择最具选择性的连接顺序。消除行数最多的连接应该在计划中被最早执行,这样会有较少的行在计划树中向上移动
- 计划中是否比较早地应用了选择性谓词?最具选择性的过滤条件应该在计划中早早地被应用,这样会有较少的行在计划树中向上移动
调整统计
下列配置参数控制统计信息收集采样的数据量。 default_statistics_target参数控制系统层面的统计信息采样。最好只对查询谓词中最频繁使用的列采样增加的统计信息。 用户可以对一个特定的列采用下面的命令调整统计信息,例如:
ALTER TABLE sales ALTER COLUMN region SET STATISTICS 50;
这等效于为特定列增加default_statistics_target。后续的ANALYZE操作接着将为该列收集更多统计数据并且结果就是会产生更好的查询计划。
优化分布
当用户在数据库中创建一个表时,用户必须声明一个分布键,它允许在系统中所有的实例上均匀地分布数据。 因为实例会以并行的方式工作在查询上,数据库将总是和最慢的实例速度相同。 如果数据不平衡,拥有更多数据的实例将更慢地返回它们的结果,因此会拖慢整个系统。
优化设计
很多性能问题可以通过数据库设计改进。检查用户的数据库设计并且考虑以下几点:
- 模式是否反映了数据被访问的方式?
- 较大的表是否能被分解成分区?
- 是否在使用尽可能小的数据类型来存储列值?
- 用于连接表的列是否为相同的数据类型?
- 索引有没有被使用?
相关文章:
人大金仓分析型数据库常见性能原因
目录 硬件失效 管理负载 避免竞争 统计信息 识别问题 调整统计 优化分布 优化设计 硬件失效 数据库的性能取决于它所运行的硬件基础设施。数据库由多台服务器(主机)构成,它们作为一个紧密的系统(阵列)一起工作。…...
【OpenCv光流法进行运动目标检测】
opencv系列文章目录 文章目录 opencv系列文章目录前言一、光流法是什么?二、光流法实例1.C的2.C版本3.python版本 总结 前言 随着计算机视觉技术的迅猛发展,运动目标检测在图像处理领域中扮演着至关重要的角色。在现实世界中,我们常常需要追…...
Word论文封面下划线怎么都对不齐
我们常常发现,无论是写论文还是平时填写word封面的信息的时候,下划线老是随着字符的多少的边长变短,我们使用空格键也非常不好对齐,这就给我们造成了很大的烦恼,想想自己也是这样,我一旦输入字符࿰…...
汇编经典程序——将一个字节数据以十六进制形式显示
法一: 由于0-9的ASCII码实际值30h,A-Z的ASCII码实际值37h,故直接加对应的数即可 ;该程序将一个字节数据以十六进制形式显示(直接加对应数值).model small .stack .data hex db 4bh.code .startup;显示高位mov al,hex…...
Remix 开发小技巧(五)
文章目录 类型安全的 Fetcher 钩子一切从资源路由开始RPC 只是使用内置的 URL 获取使用 Zod 验证您的 RPC下一步是自定义提取器钩子 黑暗模式主题切换“最佳用户体验”是什么意思?第一个要求第二个要求第三个要求第四个要求 类型安全的 Fetcher 钩子 RPC 是一种远程…...
hive抽取mysql里的表,如果mysql表没有时间字段如何做增量抽取数据
如果MySQL表中没有时间字段,你可以通过其他方式实现增量抽取数据,以下是一些常见的方式: 使用自增主键:如果MySQL表中有自增主键,你可以记录上一次抽取数据时最大的主键值(即上一次抽取数据的结束位置&…...
20和遍历以及迭代器有关的一些东西
知识点有点散,只能这样记录了 1、这边是和遍历有关的: class Person:def __init__(self):self.result 1def __getitem__(self, item):self.result 1if self.result > 6:raise StopIteration(停止遍历)return self.resultpassp Person() for i in…...
前端工程化(editorconfig+ESLint+Prettier+StyleLint+Husky、Commitlint)
前言 致谢:有来技术大大 通过学习有来技术大大的文章和结合自己的实践,写一篇笔记记录一下 所使用的工具: ide项目风格(editorconfig)代码检查(ESLint)代码风格(Prettier)样式风格(StyleLint)git提交规范(Husky、Commitlint) 一、ide项目…...
UI自动化测试:Selenium+PO模式+Pytest+Allure整合
本人目前工作中未涉及到WebUI自动化测试,但为了提升自己的技术,多学习一点还是没有坏处的,废话不多说了,目前主流的webUI测试框架应该还是selenium,考虑到可维护性、拓展性、复用性等,我们采用PO模式去写我…...
【排序算法】详解冒泡排序及其多种优化稳定性分析
文章目录 算法原理细节分析优化1优化2算法复杂度分析稳定性分析总结 算法原理 冒泡排序(Bubble Sort) 就是从序列中的第一个元素开始,依次对相邻的两个元素进行比较,如果前一个元素大于后一个元素则交换它们的位置。如果前一个元素小于或等于后一个元素…...
使用 Go 和 Wails 构建跨平台桌面应用程序
由于多种原因,Electron 曾经(并且仍然)大受欢迎。首先,其跨平台功能使开发人员能够从单个代码库支持 Linux、Windows 和 macOS。最重要的是,它对于熟悉 Javascript 的开发人员来说有一个精简的学习曲线。 尽管它有其缺…...
花2个月时间学习,面华为测开岗要30k,面试官竟说:你不是在搞笑。。。
背景介绍 计算机专业,代码能力一般,之前有过两段实习以及一个学校项目经历。第一份实习是大二暑期在深圳的一家互联网公司做前端开发,第二份实习由于大三暑假回国的时间比较短(小于两个月),于是找的实习是…...
【Python学习笔记】字符串
1. 字符串定义 可以用双引号 、 单三引号、双三引号,下面的定义都是正确的 "你好" 你好 """你好"""其中三引号可以 直接写内容有多行 的字符串。如下 letter 刘总:您好!您发的货我们已经收到&am…...
【AUTOSAR中断管理】TC3XX中断系统介绍
摘要 这段文本主要介绍了AURIX TC3XX的中断系统(Interrupt Router,简称IR)以及中断注册的过程以及举例说明中断机制。 AURIX TC3XX 中断系统(Interrupt Router)介绍 流程图描述中断路由器(IR)处理服务请求并与服务提供者交互。 中断系统的作用是将service request进行…...
Unity实现摄像机向屏幕中间发射射线射击物体
1.创建一个准星放在屏幕中间 外部找个PNG透明图,拖到Unity文件夹,右上角改成精灵sprite2d 2.添加到UI画布 3.写脚本 首先,我们需要引入一些 "工具",就像我们在玩游戏时要先下载游戏客户端一样。这里的 "工具&quo…...
测试时数据增广(TTA)与mmdetection3d中的实现
1. 测试时数据增广 测试时数据增广(TTA)在测试时使用数据增广技术获取同一数据的多个“变体”,使用同一网络在这些“变体”以及原始数据上进行推断,最后整合所有结果作为该原始数据最终的预测结果。 TTA类似于集成学习,…...
深入探索BP神经网络【简单原理、实际应用和Python示例】
人工神经网络(Artificial Neural Networks)是一种受到生物神经网络启发的机器学习模型,它的应用范围广泛,包括图像识别、语音识别、自然语言处理等领域。其中,BP神经网络(Backpropagation Neural Network&a…...
【LVGL】SquareLine Studio入门基础操作
1.SquareLine Studio基础 在这篇文章中将介绍SquareLine Studio的基础操作、解释如何加载一个项目、布局结构。 启动软件后,可以加载之前的项目、创建项目、加载一个示例。 这里以打开示例audio_mixer为例,可以双击该项目打开或者选中该项目点击右下角的【创建】按…...
【单片机】19-TFT彩屏
一、背景知识--显示器 1.什么是TFT (1)LCD显示器的构成:液晶面板驱动器【电压驱动】控制器【逻辑控制】 (2)液晶面板大致分为:TN,TFT,IPS等 (3)驱动器是跟随…...
高质量!推荐一些免费自学网站
大家好,我是 jonssonyan 说到自学网站,大家第一印象肯定是”菜鸟教程“、”w3school“、B 站大学。这些教程当然非常的好,而且适合入门学习,但是存在一些缺点,第一,知识点比较分散,没有一个整体…...
百度网盘Mac版破解插件:免费解锁SVIP高速下载的终极指南
百度网盘Mac版破解插件:免费解锁SVIP高速下载的终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘Mac版的龟速下载而烦…...
在Adafruit Fruit Jam微控制器上移植运行经典游戏DOOM的完整指南
1. 项目概述:当经典FPS遇上迷你计算机作为一名在嵌入式系统和复古计算领域折腾了十多年的老玩家,我始终对“它能不能跑DOOM?”这个梗抱有极大的热情。这不仅仅是一句玩笑,更是对硬件性能和软件移植能力的终极试金石。最近…...
巷道管道安装机器人紧固装配控制【附仿真】
✨ 长期致力于六轴机械臂、运动学建模、轨迹规划、柔顺控制、六维力/力矩传感器研究工作,擅长数据搜集与处理、建模仿真、程序编写、仿真设计。 ✅ 专业定制毕设、代码 ✅ 如需沟通交流,点击《获取方式》 (1)六自由度机械臂运动学…...
大模型涌现能力:从原理到工程实践的激发与评测方法
1. 项目概述:从“玄学”到“可操作”的涌现能力拆解最近和几个做模型训练和评测的朋友聊天,话题总绕不开“涌现能力”。这个词现在火得不行,但聊深了发现,大家对这个概念的理解其实挺割裂的。有人说它是大模型“开窍”的瞬间&…...
ADC选型新思路:从抗混叠架构革新到极致集成设计
1. 从“采样”到“混叠”:一个老问题的现代解法做信号链设计,ADC选型永远是绕不开的核心。这些年,从工业物联网的传感器节点到汽车雷达的信号处理板,我经手过不少项目,一个深刻的体会是:系统性能的瓶颈&…...
如何永久保存微信聊天记录?WeChatMsg终极解决方案完全指南
如何永久保存微信聊天记录?WeChatMsg终极解决方案完全指南 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we/W…...
BookGet:构建分布式古籍数字资源采集系统的技术架构与实现
BookGet:构建分布式古籍数字资源采集系统的技术架构与实现 【免费下载链接】bookget bookget 数字古籍图书下载工具。 项目地址: https://gitcode.com/gh_mirrors/bo/bookget BookGet是一款基于Go语言开发的分布式古籍数字资源采集工具,专为历史研…...
口碑好的芯片老化座选哪家?
芯片测试和老化是确保产品质量的关键环节。选择一款性能稳定、可靠性高的芯片老化座对于企业来说至关重要。本文将对比分析几家知名品牌的芯片老化座,并推荐其中的佼佼者——鸿怡电子。1. 鸿怡电子:国产优质IC测试座领军者产品特点设计结构:鸿…...
罗技鼠标压枪宏配置实战:游戏辅助脚本的完整应用方案
罗技鼠标压枪宏配置实战:游戏辅助脚本的完整应用方案 【免费下载链接】logitech-pubg PUBG no recoil script for Logitech gaming mouse / 绝地求生 罗技 鼠标宏 项目地址: https://gitcode.com/gh_mirrors/lo/logitech-pubg 还在为绝地求生中枪口乱飘而苦恼…...
从调参到调优:手把手教你用RFSoC API榨干DAC性能(插值、滤波器、数据路径全解析)
从调参到调优:手把手教你用RFSoC API榨干DAC性能(插值、滤波器、数据路径全解析) 在无线通信和雷达系统的原型开发中,RFSoC的DAC性能直接决定了整个系统的信号质量与效率。许多开发者虽然能够完成基础配置,但当面临&qu…...
