人大金仓分析型数据库常见性能原因
目录
硬件失效
管理负载
避免竞争
统计信息
识别问题
调整统计
优化分布
优化设计
硬件失效
数据库的性能取决于它所运行的硬件基础设施。数据库由多台服务器(主机)构成,它们作为一个紧密的系统(阵列)一起工作。 作为诊断性能的第一步,应确保所有的数据库的实例都在线。数据库的性能将和阵列中最慢的那一台主机相同。 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 站大学。这些教程当然非常的好,而且适合入门学习,但是存在一些缺点,第一,知识点比较分散,没有一个整体…...
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以?
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以? 在 Golang 的面试中,map 类型的使用是一个常见的考点,其中对 key 类型的合法性 是一道常被提及的基础却很容易被忽视的问题。本文将带你深入理解 Golang 中…...
OkHttp 中实现断点续传 demo
在 OkHttp 中实现断点续传主要通过以下步骤完成,核心是利用 HTTP 协议的 Range 请求头指定下载范围: 实现原理 Range 请求头:向服务器请求文件的特定字节范围(如 Range: bytes1024-) 本地文件记录:保存已…...
镜像里切换为普通用户
如果你登录远程虚拟机默认就是 root 用户,但你不希望用 root 权限运行 ns-3(这是对的,ns3 工具会拒绝 root),你可以按以下方法创建一个 非 root 用户账号 并切换到它运行 ns-3。 一次性解决方案:创建非 roo…...
C++ 求圆面积的程序(Program to find area of a circle)
给定半径r,求圆的面积。圆的面积应精确到小数点后5位。 例子: 输入:r 5 输出:78.53982 解释:由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982,因为我们只保留小数点后 5 位数字。 输…...
Python 包管理器 uv 介绍
Python 包管理器 uv 全面介绍 uv 是由 Astral(热门工具 Ruff 的开发者)推出的下一代高性能 Python 包管理器和构建工具,用 Rust 编写。它旨在解决传统工具(如 pip、virtualenv、pip-tools)的性能瓶颈,同时…...
R语言速释制剂QBD解决方案之三
本文是《Quality by Design for ANDAs: An Example for Immediate-Release Dosage Forms》第一个处方的R语言解决方案。 第一个处方研究评估原料药粒径分布、MCC/Lactose比例、崩解剂用量对制剂CQAs的影响。 第二处方研究用于理解颗粒外加硬脂酸镁和滑石粉对片剂质量和可生产…...
LINUX 69 FTP 客服管理系统 man 5 /etc/vsftpd/vsftpd.conf
FTP 客服管理系统 实现kefu123登录,不允许匿名访问,kefu只能访问/data/kefu目录,不能查看其他目录 创建账号密码 useradd kefu echo 123|passwd -stdin kefu [rootcode caozx26420]# echo 123|passwd --stdin kefu 更改用户 kefu 的密码…...
【无标题】路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论
路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论 一、传统路径模型的根本缺陷 在经典正方形路径问题中(图1): mermaid graph LR A((A)) --- B((B)) B --- C((C)) C --- D((D)) D --- A A -.- C[无直接路径] B -…...
RabbitMQ入门4.1.0版本(基于java、SpringBoot操作)
RabbitMQ 一、RabbitMQ概述 RabbitMQ RabbitMQ最初由LShift和CohesiveFT于2007年开发,后来由Pivotal Software Inc.(现为VMware子公司)接管。RabbitMQ 是一个开源的消息代理和队列服务器,用 Erlang 语言编写。广泛应用于各种分布…...
uniapp 小程序 学习(一)
利用Hbuilder 创建项目 运行到内置浏览器看效果 下载微信小程序 安装到Hbuilder 下载地址 :开发者工具默认安装 设置服务端口号 在Hbuilder中设置微信小程序 配置 找到运行设置,将微信开发者工具放入到Hbuilder中, 打开后出现 如下 bug 解…...
