自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(64)
  • 收藏
  • 关注

原创 dav_pg9_autovacuum触发机制

autovacuum触发机制。

2025-04-08 02:30:00 649

原创 dav_pg8_vacuum

在PostgreSQL中,当数据被更新或删除时,系统并不会立即释放物理空间,而是将其标记为 “可重用”。随着时间推移,表中的死元组(已删除或已被新版本覆盖的数据)会越来越多,这 不仅会导致存储空间利用率下降,也可能影响查询性能,因为查询需要遍历这些无用的元组。而 VACUUM命令的主要任务就是清理这些死元组,并回收相应的存储空间。

2025-03-29 22:35:14 935

原创 Dav_pg7_mvcc_Introduction

pg cmin cmax xmin xmax

2025-03-15 01:45:00 706

原创 pg_实例架构图解

dav postgresql 实例 内存 架构

2025-03-10 22:38:56 93

原创 dav_pg-5_内存溢出 如何预防

由于内核实现内存超额分配的方式,如果 PostgreSQL 或其他进程的内存需求导致系统虚拟内存耗尽,内核可能会终止 PostgreSQL 的 postmaster(主控服务器进程)。如果您未设置 PG_OOM_ADJUST_FILE,子进程将以与 postmaster 相同的 OOM 分数调整值运行,这是不明智的,因为整个要点在于确保 postmaster 具有优先设置。如果内存紧张,增加操作系统的交换空间有助于避免该问题,因为只有当物理内存和交换空间都耗尽时,才会调用内存不足(OOM)杀手。

2025-03-06 20:00:42 275

原创 PG on Linux about Memory Overcommit

PG on Linux about Memory OvercommitThe default virtual memory behavior on Linux is not optimal for PostgreSQL. Because of the way that the kernel implements memory overcommit, the kernel might terminate the PostgreSQL postmaster(the supervisor server

2025-03-05 22:28:29 338

原创 DAV_postgresql_4-pg安装

操作系统:Red Hat Enterprise Linux 8数据库:PostgreSQL 15.5。

2025-03-04 23:04:26 873

原创 不谓侠--记录

不谓侠

2025-03-02 22:07:59 245

原创 DAV_postgresql_3-schema

由于PG下一个用户对应多个模式,创建用户时没有创建对应的默认模式,而对象都是基于模式管理的,所以创建了一个公用的模式public。初始化数据库时会自动创建一个public模式,共享给所有用户使用,任何用户都可以把对象创建在该模式下。每个数据库对象都有一个所有者,默认情况下,所有者拥有该对象的所有权限。对于数据库对象,开始只有所有者和超级用户可以做任何操作,其它走ACL。可以把用户下对象根据业务分类,不同的对象放在不同的模式。对象权限:对某个对象进行操作的权限。不同模式下的对象可以同名。什么是schema?

2025-03-02 21:49:58 235

原创 DAV_postgresql_2-user_role

-创建一个具有超级用户权限的 用户。• 4、任何属于该组角色的对象都必须先被删除或者将对象的所有者赋予其它角色,任何赋予该组角色的权限也都必须被撤消。--创建一个具有登录权限的角色,类似于用户。

2025-02-27 22:20:36 432

原创 DAV_postgresql_1

中文社区:http://www.postgres.cn/docs/14/datatype.html #14version。可以看到,postgres用户在 testdb这个库创建的表 pg1 是存放在oid为16387的testdb这个库下面。查看表所在路径,使用函数:pg_relation_filepath('tabname');本节开始,进行postgresql数据库的再次熟悉与探索,先从基本的温故吧;查看系统表 pg_roles|pg_user;查看某用户或角色的权限。显示对象的访问权限列表。

2025-02-25 22:11:38 610

原创 rman 备份恢复1

a、输入文件的数量:一个备份集至少包含一个输入文件,输入文件不可以跨多个备份集,默认一个备份集最多容纳64个输入文件。a、输入文件的数量:一个备份集至少包含一个输入文件,输入文件不可以跨多个备份集,默认一个备份集最多容纳64个输入文件。b、通道的个数,但是也要看文件的个数是否大于等于通道数,如果小于通道数,那么产生的备份集的数量行于实际文件的个数。b、通道的个数,但是也要看文件的个数是否大于等于通道数,如果小于通道数,那么产生的备份集的数量行于实际文件的个数。rman将大的数据文件划分为文件块,

2025-02-20 22:55:05 926

原创 Dav_笔记14:优化程序提示 HINTs -4

指定表的提示通常是指发生提示的DELETE,SELECT或UPDATE查询块中的表,而不是指语句引用的任何视图中的表。■对于非内联视图的视图,仅当引用查询不引用其他表或视图时(即,如果SELECT语句的FROM子句仅包含视图),才会保留视图中的访问路径和连接提示。■如果视图是内联视图(即,如果它出现在SELECT语句的FROM子句中),则当视图与顶级查询合并时,将保留视图内的所有访问路径和连接提示。■如果没有顶级优化程序模式提示,则只要视图中的所有模式提示都一致,数据库就会在引用的视图中使用模式提示。

2025-02-17 22:24:47 728

原创 Dav_笔记14:优化程序提示 HINTs -3

例如,如果您有一个非常复杂的查询(包含许多表连接),并且如果仅指定给定表的INDEX提示,则优化程序必须确定要使用的剩余访问路径以及相应的连接方法。因此,即使您提供了INDEX提示,优化程序也可能不一定使用该提示,因为优化程序可能已确定由于优化程序选择的连接方法和访问路径而无法使用所请求的索引。要在查询中标识查询块,可以在提示中使用可选的查询块名称来指定提示适用的块。查询块标识符可以是系统生成的,也可以是用户指定的。例如,由UNION运算符组合的两个组件查询组成的复合查询有两个块,每个块用于一个组件查询。

2025-02-13 22:11:04 691

原创 Dav_笔记14:优化程序提示 HINTs -2

您可以使用CHANGE_DUPKEY_ERROR_INDEX和IGNORE_ROW_ON_DUPKEY_INDEX提示来处理在线应用程序升级期间冲突的INSERT操作。如果SQL语句具有指定优化方法和目标的提示,则优化程序将使用指定的方法,无论是否存在统计信息,OPTIMIZER_MODE初始化参数的值以及ALTER SESSION语句的OPTIMIZER_MODE参数。如果为访问路径或连接操作指定提示以及ALL_ROWS或FIRST_ROWS(n)提示,则优化程序优先考虑提示指定的访问路径和连接操作。

2025-02-12 22:23:00 651

原创 Dav_笔记14:优化程序提示 HINTs -1

语句块只能有一个包含提示的注释,并且该注释必须遵循SELECT,UPDATE,INSERT,MERGE或DELETE关键字。多表提示类似于单表提示,但提示可以指定一个或多个表或视图。请注意,USE_NL(table1 table2)不被视为多表提示,因为它是USE_NL(table1)和USE_NL(table2)的快捷方式。出于这个原因,通过提示进行测试,但使用其他技术来管理SQL执行计划,例如SQL Tuning顾问程序和SQL计划基准。在这种情况下,您可以使用提示来指示优化程序使用更好的执行计划。

2025-02-12 22:10:43 347

转载 JSON/JSONB类型

同时由于JSONB类型存在解析后的格式归一化等操作,同等的语义下只会有一种格式,因此可以更好更强大的支持很多其他额外的操作,比如按照一定的规则进行大小比较等。JSON和JSONB的主要差异在于存储方式上的不同,JSONB存储的是解析后的二进制,能够体现JSON的层次结构,更方便直接访问等,因此JSONB会有很多JSON所不具有的高级特性。对象(object):{}结构,存储key:value的键值对,其键只能是用“”包裹起来的字符串,值可以是任意类型的JSON,对于重复的键,按最后一个键值对为准。

2024-12-02 13:51:48 89

原创 Dav_笔记13:SQL Access Advisor 之 2 使用SQL Access Advisor-4

本节说明了使用SQL Access Advisor的一些典型方案。Oracle数据库提供了一个脚本,其中包含本章的示例aadvdemo.sql。来自用户定义的工作负载的建议以下示例从用户定义的表SH.USER_WORKLOAD导入工作负载。 然后,它会创建一个名为MYTASK的任务,将存储预算设置为100 MB,然后运行该任务。 PL / SQL过程打印建议。 最后,该示例生成一个脚本,您可以使用该脚本来实现建议。使用SQL语句加载USER_WORKLOAD表,如下所示:步骤3从用户定义的表SH

2024-08-14 23:39:05 853

原创 Dav_笔记13:SQL Access Advisor 之 2 使用SQL Access Advisor-3

■执行快速调整■管理任务。

2024-08-14 23:32:06 962

原创 Dav_笔记13:SQL Access Advisor 之 2 使用SQL Access Advisor-2

您可以使用多个目录视图查看SQL Access Advisor生成的每个建议,例如(DBA,USER)_ADVISOR_RECOMMENDATIONS。此外,顾问在推荐过程早期提出的建议不包含任何基表分区建议。有几个控制命名约定的任务参数(MVIEW_NAME_TEMPLATE和INDEX_NAME_TEMPLATE),这些新对象的所有者(DEF_INDEX_OWNER和DEF_MVIEW_OWNER)以及表空间(DEF_MVIEW_TABLESPACE和DEF_INDEX_TABLESPACE)。

2024-08-13 22:57:09 992

原创 Dav_笔记13:SQL Access Advisor 之 2 使用SQL Access Advisor-1

本节讨论有关SQL Access Advisor的一般信息和使用所需的步骤,包括:■使用SQL Access Advisor的步■使用SQL Access Advisor所需的权限■设置任务和模板■SQL Access Advisor工作负载。

2024-08-13 22:20:42 537

原创 Dav_笔记13:SQL Access Advisor 之 1 Summary

使用SQL Access Advisor的一种简单方法是调用其向导,该向导可从Advisor Central页面的Enterprise Manager中获得。如果您更喜欢通过DBMS_ADVISOR包使用SQL Access Advisor,那么本节将介绍必须调用这些过程的基本组件和顺序。本节介绍生成一组建议的四个步骤:■创建任务■定义工作负载■生成建议■查看并实施建议工作负载由一个或多个SQL语句以及完全描述每个语句的统计信息和属性组成。完整工作负载包含来自目标业务应用程序的所有SQL语句。

2024-08-13 21:57:21 1046

原创 Dav_笔记12:Automatic SQL Tuning 之 6 相关视图

■有关SQL调优集中语句的捕获执行计划的信息显示在DBA_SQLSET_PLANS和USER_SQLSET_PLANS视图中。■顾问执行进度信息显示在V$ADVISOR_PROGRESS视图中。■SQL配置文件信息显示在DBA_SQL_PROFILES视图中。和DBA_ADVISOR_RATIONALE视图。和DBA_SQLSET_REFERENCES视图。和DBA_SQLTUNE_PLANS视图。■包含与SQL调优相关的信息的动态视图,和V$SQL_BIND_DATA视图。■SQL调整信息视图,

2024-08-08 22:30:00 226

原创 Dav_笔记12:Automatic SQL Tuning 之 5 managing SQL Profiles

SQL配置文件包含对自动SQL调整期间发现的较差优化程序估计值的更正。此信息可以改进优化器基数和选择性估计,从而导致优化器选择更好的计划。SQL配置文件不包含有关各个执行计划的信息。相反,优化程序在选择计划时具有以下信息源:■环境,包含数据库配置,绑定变量值,优化程序统计信息,数据集等■SQL配置文件中的补充统计信息如果环境或SQL配置文件发生更改,则优化程序可以创建新计划。您可以使用SQL配置文件,无论是否有SQL计划管理。如果使用SQL计划管理,则优化程序选择的计划必须是已启用的计划基准。

2024-08-07 22:18:55 1225

原创 Dav_笔记12:Automatic SQL Tuning 之 4 管理SQL STS

SQL调优集(STS)是一个数据库对象,它包含一个或多个SQL语句及其执行统计信息和执行上下文,并且可以包括用户优先级排名。您可以将SQL语句加载到来自不同SQL源的SQL调优集中,例如AWR,共享SQL区域或用户提供的自定义SQL。STS包括:■一组SQL语句■关联的执行上下文,例如用户架构,应用程序模块名称和操作,绑定值列表以及游标编​​译环境■关联的基本执行统计信息,例如已用时间,CPU时间,缓冲区获取,磁盘读取,已处理的行,游标提取,执行次数,完成执行次数,优化程序成本和命令类型。

2024-08-01 23:00:00 1137

原创 Dav_笔记12:Automatic SQL Tuning 之 3 SQL-Tuning

您可以手动调用SQL Tuning Advisor以按需调整一个或多个SQL语句。要调整多个语句,必须创建SQL调优集(STS)。SQL调优集是一个数据库对象,它存储SQL语句及其执行上下文。您可以使用命令行API或企业管理器创建SQL调优集。请参见“Dav_笔记12:Automatic SQL Tuning 之 4 管理SQL调优集”。

2024-08-01 00:15:00 2500

原创 Dav_笔记-Automatic Performance Statistics 之基线管理

本节介绍如何管理基线。用于管理基准的主要界面是Oracle企业管理器。如有可能,您应该使用Oracle Enterprise Manager来管理基线,如Oracle数据库2日+性能调优指南中所述。

2024-07-31 23:00:00 744

原创 Dav_笔记-Automatic Performance Statistics -工具及分析

统计的累积值通常通过动态性能视图可用,例如V $ SESSTAT和V $ SYSSTAT视图。请注意,当数据库实例关闭时,动态视图中的累积值会重置。自动负载信息库(AWR)会自动保留除会话级别以外的所有级别的大部分统计信息的累积值和增量值。这个过程在一个固定的时间段重复进行,结果被称为AWR快照。快照捕获的增量值代表了该时间段内每项统计数据的变化。性能报告:1.AWR2.ADDM3.ASH反应了从数据库本次启动以来,一共发生了多少次提交;

2024-07-30 19:30:00 607

原创 Dav_笔记12:Automatic SQL Tuning 之 2 管理STA

SQL Tuning Advisor将一个或多个SQL语句作为输入,并调用自动调整优化器对语句执行SQL调优。产出采取建议或报告的形式,以及每项建议的理由及其预期收益。该建议涉及对象统计信息的集合,新索引的创建,SQL语句的重构或SQL配置文件的创建。您可以选择接受建议以完成SQL语句的调优。数据库可以通过在系统维护窗口期间使用SQL Tuning Advisor识别有问题的语句并实现建议来自动调整SQL语句。自动运行时,SQL Tuning Advisor称为自动SQL调优顾问。

2024-07-30 00:15:00 824

原创 Dav_笔记1-configuring a database for performance

当然这些对性能影响不到,最重大的是processes这个参数,最重要,参数关注如下:sessions,

2024-07-29 21:17:45 974

原创 Dav_笔记2-管理自动负载存储库 之 APD

本章介绍用于性能诊断和调优的Oracle数据库自动功能。本章包含以下主题:在大多数情况下,当遇到性能问题时,ADDM输出应该是DBA看起来的第一位。ADDM提供以下功能:■默认每小时自动执行一次性能诊断报告■基于数十年调整专业知识的问题诊断■对问题影响和建议收益进行基于时间的量化■找出根本原因,而不是症状■处理问题根源的建议■识别系统的非问题区域■在诊断过程中对系统的开销最小认识到调整是一个迭代过程很重要,解决一个问题可能会导致瓶颈转移到系统的另一部分。

2024-07-29 00:15:00 664

原创 Dav_笔记2-管理自动负载存储库 之 ASH解读

生成ASH报告后,您可以查看内容以确定瞬态性能问题。ASH报告的内容分为以下几部分:■Top SQL■Top Java。

2024-07-28 07:00:00 594

原创 Dav_笔记2-管理自动负载存储库 之 ASH概述

ashrpt.sql SQL脚本生成一个HTML或文本报告,显示指定持续时间的ASH信息。要生成ASH报告:在此示例中,接受默认名称并生成名为ashrpt_1_0310_0131的ASH报告。报告将从当前时间的前10分钟开始收集ASH信息,并在当前时间结束。

2024-07-27 08:40:03 851

原创 Dav_笔记2-管理自动负载存储库 之 AWR

例如,如果应用程序工作负载在下午10点和每晚的午夜之间已知是稳定的,但是在星期四的表现在晚上十点和下午11点之间表现不佳,产生周四下午10点的到下午11点和星期三下午10点到下午11点AWR比较期报告。为AWR比较期报告选择的两个时间段可以具有不同的持续时间,因为报告通过在每个时间段花费在数据库上的时间量来统计统计量,并呈现按期间之间的最大差异排序的统计数据。AWR报告显示两个快照(或两个时间点)之间的AWR数据,而AWR比较期间报告显示两个时间段(或两个AWR报告,相当于四个快照)之间的差异。

2024-07-27 08:36:27 351

原创 Dav_笔记12:Automatic SQL Tuning 之 1 概述

Oracle数据库使用优化程序为已提交的SQL语句生成执行计划。优化器以以下模式运行:■普通模式优化器编译SQL并生成执行计划。正常模式为绝大多数SQL语句生成合理的计划。在正常模式下,优化器以非常严格的时间约束运行,通常只有几分之一秒。■调整模式优化程序执行其他分析以检查是否可以进一步改进在正常模式下生成的计划。优化器输出不是执行计划,而是一系列操作,以及它们的基本原理和产生明显更好的计划的预期收益。在调整模式下运行时,优化程序称为自动调整优化程序。

2024-07-27 08:24:33 945

原创 Dav_笔记11:SQL Tuning Overview-sql调优 之 4

本节介绍了提高SQL语句效率的方法:■验证优化程序统计信息■审查执行计划■重构SQL语句■重组索引■修改或禁用触发器和约束■重组数据■随着时间的推移维护执行计划■尽可能少地访问数据。

2024-07-27 00:00:00 1039

原创 Dav_笔记11:SQL Tuning Overview-sql调优 之 5

单击“活动事件”链接(指示活动事件的数量)。这将打开Support Workbench页面,其中列出了表中的事件。

2024-07-26 22:56:36 477

原创 Dav_笔记11:SQL Tuning Overview-sql调优 之 3

由于手动SQL调优过程给应用程序开发人员带来了许多挑战,因此Oracle调优过程已通过Oracle数据库的自动SQL调优功能实现自动化。这些功能旨在同样适用于OLTP和数据仓库类型的应用程序:■ADDM■SQL调整集。

2024-07-25 00:45:00 388

原创 Dav_笔记11:SQL Tuning Overview-sql调优 之 2

本节介绍在高负载SQL语句上标识和收集数据所涉及的步骤。高负载SQL是性能低下,资源密集的SQL语句,会影响Oracle数据库的性能。以下工具可以识别高负载SQL语句:■Automatic Database Diagnostic Monitor 自动数据库诊断监视器 ADDM■Automatic SQL tuning 自动SQL调整■Automatic Workload Repository 自动工作负载存储库■V$SQL view V $ SQL视图。

2024-07-25 00:30:00 992

原创 Dav_笔记11:SQL Tuning Overview-sql调优 之 1

如果您可以安排非关键报告和批处理作业在夜间运行并减少白天的并发性,那么数据库可以为当天更重要的程序释放资源。2.如果用户正在查看以特定排序顺序返回的10,000行的前20行,并且如果索引可以满足查询(和排序顺序),则用户无需访问和排序 10,000行查看前20行。调整系统的目的是减少系统最终用户的响应时间,或减少用于处理相同工作的资源。■通过查看系统中可用的过去SQL执行历史记录,识别负责大量应用程序工作负载和系统资源的高负载或顶级SQL语句。■实施纠正措施,以便为性能较差的SQL语句生成更好的执行计划。

2024-07-24 20:08:48 311 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除