数据库参数 PGA_AGGREGATE_LIMIT 限制进程大小
在自动化 PGA 内存管理模式下,Oracle 数据库通过动态控制分配到工作区的 PGA 内存量来尝试遵从 PGA_AGGREGATE_TARGET 值。但是,有时因为以下原因,PGA 内存使用量可能会超过 PGA_AGGREGATE_TARGET 设置:
-
PGA_AGGREGATE_TARGET 设置起到的是目标的作用,而非限制。
-
PGA_AGGREGATE_TARGET 仅控制可优化部分内存的分配。
使用大量 PGA 可能会导致高交换率。出现这种情况时,系统可能会无法响应,并且不稳定。这种时候需要考虑使用 PGA_AGGREGATE_LIMIT 初始化参数限制整体 PGA 使用量。
12c 引入了新的参数 PGA_AGGREGATE_LIMIT 以允许数据库管理员限制 pga 内存使用总量。
使用 PGA_AGGREGATE_LIMIT初始化参数可以为 PGA 内存使用量指定硬性限制。如果超过了 PGA_AGGREGATE_LIMIT 值,则 Oracle 数据库按照以下顺序,中断或者终止使用了最多不可优化 PGA 内存的会话或进程:
-
中止使用了最多不可优化 PGA 内存的会话调用。
-
如果 PGA 内存使用量仍超过 PGA_AGGREGATE_LIMIT,则终止使用了最多不可优化 PGA 内存的会话和进程。
使用最多不可优化内存会话的调用将被中止。并行查询将被视为一个单元。如果 PGA 内存使用总量仍超过限制,则将终止使用最多不可优化内存的会话。
不会对除作业队列进程之外的 SYS 进程和后台进程执行这一部分中所述的任何操作。取而代之的操作是,如果它们使用了最多不可优化内存,则会定期将其 PGA 使用量的简短摘要写入到跟踪文件中。
不可调的 PGA 内存就像每个会话、每个打开/活动游标、PL/SQL 或 Java 内存的上下文信息。
可调 PGA 内存是为密集型内存 SQL 运算符分配的内存,例如排序、哈希连接、分组、位图合并和位图索引创建。
PGA 不是 Oracle 中唯一的内存“全局区域”。还有 MGA(Managed Global Area)和 DGA(Dynamic Global Area)(当然还有 SGA):
MGA 或 Managed Global Area:允许“较小的一组”进程(甚至所有进程)在某段时间(通常是查询)内共享地址空间(命名空间)。
DGA 或 Dynamic Global Area:允许在 PGA 初始化期间初始化并且在运行时不可修改的变量池。
它们不会跨进程更改,但需要在 SGA 初始化之前可用。因此,它们可作为全局变量供其他进程使用。
MGA 和 DGA 至少从 12.1 开始就存在了。但是只有在最近的版本中,数据库组件才开始使用它,所以这个池可能比 12.1.0.2 上的要大得多。我们开始在18c 的 v$pgastat 中统计 MGA 和 DGA。
由于 MGA 和 DGA 在 Oracle 进程之间共享,因此它们不能归属于单个进程。
所以 v$process 和 v$sesstat 不能包含它们。它们仅计入 v$pgastat,其中一部分计入“使用中的总 PGA”。
您可以运行以下查询以查看这些池的属性,例如(注意“PGA”后面的空格):
SQL> col name for a40
SQL> select * from v$pgastat where name like '%GA%' and name not like '%PGA %';
NAME VALUE UNIT CON_ID
---------------------------------------- ---------- ------------ ----------
DGA allocated (under PGA) 10566656 bytes 0
maximum DGA allocated 12103680 bytes 0
MGA allocated (under PGA) 0 bytes 0
maximum MGA allocated 0 bytes 0
一般来说,最新版本的内存使用率总是会更高,因此在从 12.1.0.2 升级到 19c 时,可预期会看到更多的 PGA 分配。
PGA_AGGREGATE_LIMIT 初始化参数动态设置为 PGA 内存的实例范围硬性限制。由于该参数根据内存情况的变化做出响应,您无需显式设置参数值。默认情况下,PGA_AGGREGATE_LIMIT被设置为:
在Oracle 12.1版本: PGA_AGGREGATE_LIMIT默认为如下值中的最大者:
- 2 GB
- 200% 的 PGA_AGGREGATE_TARGET
- (PROCESSES 初始化参数设置值)* 3 MB
该参数不会超过物理内存大小减去总 SGA 大小的 120%。
在Oracle 12.2版本: PGA_AGGREGATE_LIMIT的默认值为:
* 如果设置了MEMORY_TARGET, 那么PGA_AGGREGATE_LIMIT默认值为MEMORY_MAX_TARGET的值.
* 如果MEMORY_TARGET没有设置, 那么PGA_AGGREGATE_LIMIT默认值为 200%的PGA_AGGREGATE_TARGET值.
* 如果MEMORY_TARGET没有设置, 并且PGA_AGGREGATE_TARGET被显式的设置为0, 那么PGA_AGGREGATE_LIMIT的默认值为90%的物理内存减去SGA的大小.
在以上所有情况中,默认的PGA_AGGREGATE_LIMIT至少是2GB 并且至少是数据库参数PROCESSES乘以3MB的大小. 在 Oracle 版本 18c 及更高版本中,它应该是 Oracle RAC 实例的 PROCESSES 参数的至少 5MB 倍。
注意: 如果指定PGA_AGGREGATE_LIMIT的值为0,则表示实例所使用的 PGA 内存总量没有限制。
在 Oracle 版本 18c 及更高版本中:
MGA(Managed Global Area)在 PGA 之外进行计算。
这实际上意味着在 18c 及以上版本中必须增加 PGA 大小以适应 MGA。
一个经验法则是:
PGA_AGGREGATE_LIMIT = (原始 PGA_AGGREGATE_LIMIT 值) + ((最大连接进程数) * 4M)
但是,有一种更“科学”的方法可以根据数据库中可检索的指标来确定该值(有关参考,请参阅 Note 2808761.1):
((实例生命周期内使用的最大 PGA) + ((实例生命周期内连接的最大进程数) * 5M)) * 1.1
此问题的另一个影响是客户可能会报告升级到 18c 及更高版本后 PGA 使用量增加。
这是意料之中的,因为 MGA 现在已从 PGA 中扣除。
PGA_AGGREGATE_LIMIT 初始化参数可以动态设置;并不需要数据库重新启动。可以设置 PGA_AGGREGATE_LIMIT 的值,不论是否使用了自动内存管理。
后台进程 CKPT 每三秒检查一次内存用量是否超过了 PGA_AGGREGATE_LIMIT 初始化参数的值。如果达到或超过了限制,则此进程中断使用最多不可优化 PGA 内存的会话调用。如果这些会话仍没有释放足够内存,则终止它们。
请注意,由于 pga 值仅每三秒检查一次,因此 pga 内存有可能超过 PGA_AGGREGATE_LIMIT。此外,如果在此期间该 pga 值减少到限制之下,则将不会捕获在这三秒间隔内超过限制的情况。如果进程在三秒的间隔内快速分配然后释放内存,则可能会出现这种情况。
示例:
如下的信息会被写入到CKPT trace 文件,
PGA LIMIT: pid 317111 is ineligible for an ORA-4036 interrupt
System processes and most background processes cannot receive ORA-4036
interrupts. When they are contributing to the instance exceeding
PGA_AGGREGATE_LIMIT, they will periodically dump their PGA usage.
PGA LIMIT: pid 317124 is a top contributor to going over PGA_AGGREGATE_LIMIT
PGA LIMIT: pid 317124 is ineligible for an ORA-4036 interrupt
PGA LIMIT: pid 317120 is a top contributor to going over PGA_AGGREGATE_LIMIT
PGA LIMIT: pid 317120 is ineligible for an ORA-4036 interrupt
如果达到了 PGA_AGGREGATE_LIMIT 值,则将报告如下错误。
ORA-04036: PGA memory used by the instance exceeds PGA_AGGREGATE_LIMIT
Cause: Private memory across the instance exceeded the limit specified in the PGA_AGGREGATE_LIMIT initialization parameter. The largest sessions using Program Global Area (PGA) memory were interrupted to get under the limit.
Action: Increase the PGA_AGGREGATE_LIMIT initialization parameter or reduce memory usage.
示例:
此示例将展示使用 pl/sql 填充内存中数组可以超过 pga_aggregate_limit 的值。
首先请查看当前 pga_aggregate_target。由于 pl/sql 内存区不是 pga 目标控制的可优化区域,进程 pga 将超过此值。
-- V$PGASTAT 的 PGA 统计信息:
-- 显示自实例启动以来分配的最大 pga 总量
select name, ROUND(value/1024/1024) as Mbytes from v$pgastat
where name in ('maximum PGA allocated','aggregate PGA target parameter','aggregate PGA auto target');
NAME Mbytes
---------------------- ------------
aggregate PGA target p 208
arameter
aggregate PGA auto tar 138
get
maximum PGA allocated 119
请注意 pga_aggregate_limit 显式设置为 512M。
select con_id, name as Parameter, value/1024/1024 as Mbytes from V$SYSTEM_PARAMETER
where name in ('pga_aggregate_target','memory_target','memory_max_target','sga_max_size','sga_target','pga_aggregate_limit','processes')
order by name;
CON_ID PARAMETER Mbytes
------ ------------------------------ ------------
0 memory_max_target 600
0 memory_target 600
0 pga_aggregate_limit 512
0 pga_aggregate_target 0
0 processes 0
0 sga_max_size 600
0 sga_target 0
运行这个过程的会话收到此错误:
ERROR at line 1:
ORA-04036: PGA memory used by the instance exceeds PGA_AGGREGATE_LIMIT
针对 V$PROCESS 的查询显示进程在 ckpt进程捕获到这种情况并中止其对内存的调用之前,在 3 秒时间内增长到 2.5G 大小。
SET PAGESIZE 120
COLUMN con_id HEADING 'CON_ID' FORMAT 9999999
COLUMN spid HEADING 'OSpid' FORMAT a8
COLUMN pid HEADING 'Orapid' FORMAT 999999
COLUMN sid HEADING 'Sess id' FORMAT 99999
COLUMN serial# HEADING 'Serial#' FORMAT 999999
COLUMN status HEADING 'Status' FORMAT a8
COLUMN pga_alloc_mem HEADING 'PGA alloc' FORMAT 99,999,999,999
COLUMN pga_used_mem HEADING 'PGA used' FORMAT 99,999,999,999
COLUMN username HEADING 'Oracle user' FORMAT a12
COLUMN osuser HEADING 'OS user' FORMAT a12
COLUMN program HEADING 'Program' FORMAT a20
SELECT p.con_id,
p.spid,
p.pid,
s.sid,
s.serial#,
s.status,
p.pga_alloc_mem,
p.pga_used_mem,
s.username,
s.osuser,
s.program
FROM v$process p, v$session s
WHERE s.paddr( + ) = p.addr
ORDER BY p.pga_alloc_mem DESC;
CON_ID OSpid Orapid Sess id Serial# Status PGA alloc PGA used PGA Max PNAME oracleuser OS user Program
------ -------- ------- ------- ------- -------- ------------ ------------ ------------ ----- ------------ ------------ ------------------------
4 5349 33 258 41 INACTIVE 3 2 2,536 SYSTEM oracle sqlplus@localhost.locald
omain (TNS V1-V3)
alert.log 显示以下错误。
Errors in file /u01/app/oracle/diag/rdbms/cdb1/cdb1/trace/cdb1_ora_5349.trc (incident=79479):
ORA-04036: PGA memory used by the instance exceeds PGA_AGGREGATE_LIMIT
Incident details in: /u01/app/oracle/diag/rdbms/cdb1/cdb1/incident/incdir_79479/cdb1_ora_5349_i79479.trc
Dumping diagnostic data in directory=[cdmp_20130128072143], requested by (instance=1, osid=5349), summary=[incident=79479].
进程的跟踪文件显示与导致此错误的进程相关的信息。
通过显示的服务名您可以知道是哪个容器发生了错误。
跟踪文件还提供了摘要 heap dump(堆转储)。在本例中,主堆具有 2159MB 的“koh-kghu call”。在该堆中,子堆包括 2154 MB 的“pl/sql vc2”。可以使用这些内容在 MOS 上搜索有关这些分配的任何已知问题。诸如这样一些与 pl/sql 相关的分配通常是 pl/sql 程序一次性将大量数据加载到内存中造成的。在这样的情况下,应该变更程序,一次将有限数量的记录加载到内存中。替代方法是允许这样大的分配并增加 pga_aggregate_limit 的值
*** SERVICE NAME:(pdb1.example.com) 2013-01-28 07:44:27.902 <===-----------请注意指示哪个容器出现错误的服务的名称。
*** MODULE NAME:(SQL*Plus) 2013-01-28 07:44:27.902
*** ACTION NAME:() 2013-01-28 07:44:27.902
*** CONTAINER ID:(4) 2013-01-28 07:44:27.902
*** TRACE FILE RECREATED AFTER BEING REMOVED ***
Process may have gone over pga_aggregate_limit
Just allocated 65536 bytes
Dumping short stack in preparation for potential ORA-4036
----- Abridged Call Stack Trace -----
ksedsts()+313<-ksm_pga_limit_short_stack()+456<-ksm_check_over_limit()+540<-ksmapg()+351<-kghgex()+1426<-kghfnd()+745<-kghalo()+693<-kghgex()
+401<-kghalf()+403<-kghualloc()+794<-kohalmc()+295<-kohalc()+110<-plsm0vc_rsz()+197<-pevm_MOVC_i()+1021<-pfrinstr_MOVC()+52
<-pfrrun_no_tool()+60<-pfrrun()+809<-plsql_run()+617<-peicnt()+287<-kkxexe()+789
----- End of Abridged Call Stack Trace -----
=======================================
PRIVATE MEMORY SUMMARY FOR THIS PROCESS
---------------------------------------
******************************************************
PRIVATE HEAP SUMMARY DUMP
2161 MB total:
2161 MB commented, 261 KB permanent
481 KB free (256 KB in empty extents),
2159 MB, 1 heap: "koh-kghu call " 1 KB free held <=============指示在 pga 中使用内存的命名内存分配
------------------------------------------------------
Summary of subheaps at depth 1
2155 MB total:
2155 MB commented, 104 KB permanent
295 KB free (20 KB in empty extents),
2154 MB, 138274 chunks: "pl/sql vc2 " <--------------------指示 pga heap(堆)中包含的子堆内存分配
*** 2013-01-28 07:44:28.045
Incident 79480 created, dump file: /u01/app/oracle/diag/rdbms/cdb1/cdb1/incident/incdir_79480/cdb1_ora_5349_i79480.trc
ORA-04036: PGA memory used by the instance exceeds PGA_AGGREGATE_LIMIT
*********START PLSQL RUNTIME DUMP************
***Got internal error Exception caught in pl/sql run-time while running PLSQL***
***Got ORA-4036 while running PLSQL***
PROCEDURE SYSTEM.FILL_MEMORY:
意外事件文件显示程序堆栈及行号
Dump continued from file: /u01/app/oracle/diag/rdbms/cdb1/cdb1/trace/cdb1_ora_5349.trc
ORA-04036: PGA memory used by the instance exceeds PGA_AGGREGATE_LIMIT
========= Dump for incident 79480 (ORA 4036) ========
*** 2013-01-28 07:44:28.045
dbkedDefDump(): Starting incident default dumps (flags=0x2, level=3, mask=0x0)
----- Current SQL Statement for this session (sql_id=gqbtzt92rm1ck) -----
BEGIN fill_memory(2680000); END;
----- PL/SQL Stack -----
----- PL/SQL Call Stack -----
object line object
handle number name
0x77335850 7 procedure SYSTEM.FILL_MEMORY <-------程序的行号
0x77238760 1 anonymous block
----- Call Stack Trace -----
相关文章:
数据库参数 PGA_AGGREGATE_LIMIT 限制进程大小
在自动化 PGA 内存管理模式下,Oracle 数据库通过动态控制分配到工作区的 PGA 内存量来尝试遵从 PGA_AGGREGATE_TARGET 值。但是,有时因为以下原因,PGA 内存使用量可能会超过 PGA_AGGREGATE_TARGET 设置: PGA_AGGREGATE_TARGET 设置…...
208.【2023年华为OD机试真题(C卷)】停车场车辆统计(贪心算法实现-JavaPythonC++JS实现)
🚀点击这里可直接跳转到本专栏,可查阅顶置最新的华为OD机试宝典~ 本专栏所有题目均包含优质解题思路,高质量解题代码(Java&Python&C++&JS分别实现),详细代码讲解,助你深入学习,深度掌握! 文章目录 一. 题目-停车场车辆统计二.解题思路三.题解代码Python题…...
JS 作用域和预解析
作用域 通常来说,一段程序代码中所用到的名字并不总是有效和可用的,而限定这个名字的可用性的代码范围就是这个名字的作用域。作用域的使用提高了程序逻辑的局部性,增强了程序的可靠性,减少了名字冲突。 作用域分为全局作用域和局…...
各种锁的概述
乐观锁与悲观锁 悲观锁指对数据被外界修改持保守态度,认为数据很容易就会被其他线程修改,所以在数据被处理前先对数据进行加锁,并在整个数据处理过程中,使数据处于锁定状态。 悲观锁的实现往往依靠数据库提供的锁机制࿰…...
【docker笔记】Docker容器数据卷
Docker容器数据卷 卷就是目录或者文件,存在于一个或多个容器中,由docker挂载到容器,但不属于联合文件系统,因此能够绕过Union File System提供一些用于持续存储或共享数据的特性 卷的设计目的就是数据的持久化,完全独…...
大前端nestjs入门教程系列(四):如何nestjs整合mysql数据库
经过前面的几篇文章,想必大家已经对nestjs有了基础的了解,那么这篇文章就带大家玩玩数据库,学会了这篇,就离大前端又进了一步 Nest与数据库无关,使你可以轻松地与任何 SQL 或 NoSQL 数据库集成。 根据你的喜好…...
Android studio环境配置
1.搜索android studio下载 Android Studio - Download 2.安装 3.配置环境 配置gradle,gradle参考网络配置。最后根据项目需求选择不同的jdk。...
017、使用包、单元包及模块来管理日渐复杂的项目
在编写较为复杂的项目时,合理地对代码进行组织与管理很重要,因为我们不太可能记住代码中所有的细枝末节。只有按照不同的特性来组织或分割相关功能的代码,我们才能够清晰地找到实现指定功能的代码片段,或确定哪些地方需要修改。 到…...
Git提交规范详解
在团队协作开发中,Git作为版本控制系统,其提交信息的清晰性和一致性至关重要。通过定义特定的提交类型和格式,我们可以更好地追踪项目历史,提高代码审查效率,并方便生成高质量的变更日志。以下是几种常见的Git提交类型…...
线程与UI操作
子线程中不能执行UI操作。 UI 操作指的是与用户界面(User Interface)相关的操作,包括但不限于以下几种: 更新视图:例如更改 TextView 的文本内容、设置 ImageView 的图片等。处理用户输入:例如响应按钮点…...
ELK企业级日志系统分析系统
目录 一、什么是ELK? 二、ELK三大组件 三、ELK的工作原理 四、完整日志系统基本特征 一、什么是ELK? ELK平台是一套完整的日志集中处理解决方案,将 ElasticSearch、Logstash 和 Kiabana 三个开源工具配合使用, 完成更强大的用…...
11.23 校招 实习 内推 面经
绿*泡*泡: neituijunsir 交流裙 ,内推/实习/校招汇总表格 1、校招&社招&实习丨图森未来传感器标定工程师招聘(内推) 校招&社招&实习丨图森未来传感器标定工程师招聘(内推) 2、校招 | 吉…...
Python战机
基础版 import pygame import random# 设置游戏屏幕大小 screen_width 480 screen_height 600# 定义颜色 WHITE (255, 255, 255) RED (255, 0, 0) GREEN (0, 255, 0) BLUE (0, 0, 255)# 初始化pygame pygame.init()# 创建游戏窗口 screen pygame.display.set_mode((scre…...
外包做了5个月,技术退步一大半了。。。
先说一下自己的情况,本科生,20年通过校招进入深圳某软件公司,干了接近4年的功能测试,今年年初,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试…...
设计模式的艺术P1基础—2.2 类与类的UML图示
设计模式的艺术P1基础—2.2 类与类的UML图示 在UML 2.0的13种图形中,类图是使用频率最高的两种UML图之一(另一种是用于需求建模的用例图),它用于描述系统中所包含的类以及它们之间的相互关系,帮助人们简化对系统的理解…...
PCB 的正片、负片那些事儿
最近在 PCB 打样的过程中遇到了 PCB 的正片层和负片层的问题,故以此记录一下。 问题产生的原因是在投产 PCB 时发现生产稿的 Gerber 图形和 PCB 设计有区别,如图所示,左边为某 PCB 内层,右边为对应层生产稿的 Gerber 图形&#x…...
QT应用篇:QT解析与生成XML文件的四种方式
四种常见的解析 XML 的方式(DOM、SAX、以及基于 Qt 的 XmlStreamReader)各有自己的优缺点,适合不同的应用场景。 DOM 适合小型且结构简单的 XML 文件,需要频繁修改和操作整个文档结构的情况。SAX 适合大型 XML 文件,以及只需读取不需要修改的情况。基于 Qt 的 XmlStreamRe…...
Android 正圆
<?xml version"1.0" encoding"utf-8"?> <RelativeLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"wrap_content"android:layout_height"wrap_content"android:padding&…...
C#,入门教程(13)——字符(char)及字符串(string)的基础知识
上一篇: C#,入门教程(12)——数组及数组使用的基础知识https://blog.csdn.net/beijinghorn/article/details/123918227 字符串的使用与操作是必需掌握得滚瓜烂熟的编程技能之一!!!!! C#语言实…...
Tracert 与 Ping 程序设计与实现(2024)
1.题目描述 了解 Tracert 程序的实现原理,并调试通过。然后参考 Tracert 程序和计算机网络教材 4.4.2 节, 计算机网络 课程设计指导书 2 编写一个 Ping 程序,并能测试本局域网的所有机器是否在线,运行界面如下图所示的 QuickPing …...
浅谈接口自动化测试
前言 自动化测试,算是近几年比较火热的一个话题,当然,更是软件测试未来的一个发展趋势。未来,功能测试等非核心的测试工作,都将被外包。 想要在软件测试这个行业继续前行,就必须拥有核心竞争力࿰…...
Hyperledger Fabric 核心概念与组件
要理解超级账本 Fabric 的设计,首先要掌握其最基本的核心概念与组件,如节点、交易、排序、共识、通道等。 弄清楚这些核心组件的功能,就可以准确把握 Fabric 的底层运行原理,深入理解其在架构上的设计初衷。知其然,进…...
【C语言题解】 | 101. 对称二叉树
101. 对称二叉树 101. 对称二叉树代码 101. 对称二叉树 这个题目要求判断该二叉树是否为对称二叉树,此题与上一题,即 100. 相同的树 这个题有异曲同工之妙,故此题可借鉴上题。 我们先传入需要判断二叉树的根节点,通过isSameTree()…...
Baumer工业相机堡盟工业相机如何通过NEOAPI SDK实现相机掉线自动重连(C#)
Baumer工业相机堡盟工业相机如何通过NEOAPI SDK实现相机掉线自动重连(C#) Baumer工业相机Baumer工业相机的掉线自动重连的技术背景通过PnP事件函数检查Baumer工业相机是否掉线在NEOAPI SDK里实现相机掉线重连方法:工业相机掉线重连测试演示图…...
[Vulnhub靶机] DriftingBlues: 5
[Vulnhub靶机] DriftingBlues: 5靶机渗透思路及方法(个人分享) 靶机下载地址: https://download.vulnhub.com/driftingblues/driftingblues5_vh.ova 靶机地址:192.168.67.24 攻击机地址:192.168.67.3 一、信息收集 …...
26 数字验证
效果演示 实现了一个简单的数字密码输入表单,用户需要输入一个4位数字密码来验证身份。表单包含一个标题、描述、输入字段、两个按钮和一个关闭按钮。输入字段是一个4位数字密码,用户需要在每个输入框中输入数字来输入密码。两个按钮分别是“验证”和“清…...
echarts - xAxis.type设置time时该如何使用formatter的分级模板
echarts 文档中描述了x轴的多种类型 一、type: ‘value’ ‘value’ 数值轴,适用于连续数据。 此时x轴数据是从零开始,有数据大小的区分。 【注意】 因为xAxis.data是为category服务的,所以xAxis.data里面设置的数据无效。 二、type: ‘ca…...
【代码随想录】刷题笔记Day47
前言 又过了个愉快的周末~大组会终于不用开了,理论上已经可以回家了!但是我多留学校几天吧,回家实在太无聊了,也没太多学习的氛围 198. 打家劫舍 - 力扣(LeetCode) dp[i]含义 考虑下标i(包括…...
6.1 截图工具HyperSnap6简介
图片是组成多媒体作品的基本元素之一,利用图片可以增强多媒体作品的亲和力和说说服力。截取图片最简单的方法是直接按下键盘上的“PrintScreen”键截取整个屏幕或按下“AltPrintScreen”组合键截取当前活动窗口,然后在画笔或者其它的图片处理软件中进行剪…...
stable diffusion 人物高级提示词(二)衣物、身材
一、衣服大类 英文中文Shirt衬衫Blouse女式衬衫Dress连衣裙Skirt裙子Pants裤子Jeans牛仔裤Swimsuit泳衣Underwear内衣Bra文胸Panties内裤Stockings长筒袜Shoes鞋子Socks袜子 二、细分分类 dress 是连衣裙: 英文解释Formal Dress正式礼服,通常用于正式…...
wordpress做双语网站/湛江今日头条新闻
有很多开源自动化运维工具都很好用如ansible/salt stack等,完全不用重复造轮子。只不过,很多运维同学学习Python之后,苦于没小项目训练。本篇就演示用Python写一个批量操作主机的工具。 1 思路分析 在运维工作中,古老的方式部署环…...
苏州模板建站哪家好/扬州seo博客
几种常见的基于比较的排序方式 排序简介 这些排序都给了示例图,可能没有视频那么生动,但图片也有视频没有的好处,那就是读者可以仔细斟酌每一处的细节,接下来让我们来感受排序算法的魅力吧! 交换排序 1.冒泡排序 思想…...
免费做网站. 优帮云/轻松seo优化排名 快排
💥 项目专栏:【Pandas数据处理100例目录】Python数据分析玩转Excel表格数据 前言 大家好,我是阿光。 本专栏整理了《Pandas数据分析处理》,内包含了各种常见的数据处理,以及Pandas内置函数的使用方法,帮助我们快速便捷的处理表格数据。 正在更新中~ ✨ 🚨 我的项目…...
贵阳设计网站/西安做网站的公司
原文:https://blog.csdn.net/weixin_39539399/article/details/83896748 背景:用户反馈系统好卡,进行系统排除,找到这篇帖子进行简单的学习。 一、查看服务器的内存和服务器核数大小 ①查看服务器内存大小 cat /proc/meminf…...
宿州医疗网站建设/google google
伪类要写content:"",否则无效...
我想做个网站/p站关键词排名
快捷键CtrlH 1、选中要替换内容 2、全局替换 快捷键CtrlH 3、替换内容 点击ok就可以了。...