vacuum 数据库 用法_[数据库学习]第二章SQL命令参考-VACUUM
VACUUM
Garbage-collectsand optionally analyzes a database.
概要
VACUUM[FULL] [FREEZE] [VERBOSE] [table]
VACUUM[FULL] [FREEZE] [VERBOSE] ANALYZE
[table[(column [, ...] )]]
描述
vacuum回收已删除的元组占用的存储。Greenplum在日常数据操作中,更新或删除的数据并没有从物理表中删除,数据仍然存在于磁盘上,直到vacuum操作完成。因此,有必要定期做vacuum,尤其是在频繁更新的表。
在没有参数的情况下,vacuum处理当前数据库中的每个表格。有了参数,vacuum只处理那张表。
VACUUMANALYZE
对每个表先执行vacuum,然后执行analyze。这对于日常维护脚本一个方便的组合形式。请参阅分析有关其处理的更多细节。
vacuum(无FULL)只能标记那些空间是在表的末端的空间以备将来重复使用表和索引数据和回收空间再利用,获得的所是表排它锁。在表的开始或中间的未使用空间仍保持原样。对于堆表,这种形式的命令都可以在正常的读取和表写入并行操作,因为没有获得独占锁。
对于附加优化表,vacuum首先压缩索引,再依次压缩每个段文件,最后对辅助关系进行vacuum,并更新统计事实表。在每个环节,有效行从当前段文件复制到一个新的段文件,然后当前的段文件被放入待删除队列进行删除,并将新的段文件置为可用。追加优化表中的空vacuum允许扫描,插入,删除,和表中的更新,与此同时一个分段的文件被压缩。
VACUUM
FULL确实更广泛的处理,包括跨越块的元组的移动要尽量表压缩到磁盘块的最小数目。这种形式要慢得多,并要求每个表上的排它锁正在处理它。
随着附加优化表,VACUUM
FULL获取排它锁,禁止插入,更新和删除,但是SELECT语句可以在大部分的压实过程中被执行。当所有可见行已被复制到新的段文件,而新段可用和老段设置要删除的表被锁定简要介绍。
重要提示:有关使用真空的信息,FULL真空,真空ANALYZE详见备注
Outputs
指定详细信息时,vacuum会发出进度消息以指示当前正在处理哪个表。 有关表格的各种统计信息也被打印出来。
parameter
FULL
选择一个完整的真空,这可能会回收更多的空间,但需要更长的时间,并锁定表。
FREEZE
指定FREEZE相当于在vacuum_freeze_min_age服务器配置参数设置为零的情况下执行VACUUM。
有关vacuum_freeze_min_age的信息,请参阅服务器配置参数。.
VERBOSE
打印每个表格的详细真空活动报告。
ANALYZE
更新规划人员使用的统计信息,以确定执行查询的最有效方式。
table
真空的特定表的名称(可选模式修饰)。 默认为当前数据库中的所有表。
column
要分析的特定列的名称。 默认为所有列。
Notes
vacuum不能在事务块里面执行。
关键的建议生产数据库经常vacuum(至少每晚),以除去到期行。添加或删除大量的行之后,运行vacuum
analyze命令对性能提升会有好的作用。这将更新与最近的更改结果系统目录,并允许Greenplum数据引擎查询优化器,使规划的查询更好的选择。
重要提示:经常PostgreSQL有所谓的自动清理后台程序的独立可选的服务器进程,其目的是自动执行vacuum和ANALYZE命令。该功能在Greenplum数据引擎当前已禁用。
vacuum导致I /
O流量的大幅增加,这可能会导致其它活动会话的性能较差。因此,最好是在低使用时间进行真空数据库。
对于堆表,过期的行保存在所谓的自由空间映射中。 可用空间映射的大小必须足够大,以覆盖数据库中所有堆表的空行。
如果尺寸不够大,那么溢出自由空间映射的死行所占用的空间就不能被常规的VACUUM命令收回。。
VACUUM命令跳过外部表。
VACUUM
FULL回收所有到期的行空间,但是它要求在每个正在处理的表上进行独占锁定,这是一项非常昂贵的操作,可能需要很长时间才能在大型的分布式Greenplum数据库表上完成。
Pivotal建议在数据库维护期间执行VACUUM FULL操作。
作为VACUUM FULL的替代方法,您可以使用CREATE TABLEAS语句重新创建表并删除旧表。
适当调整自由空间图的大小。 使用以下服务器配置参数配置可用空间映射:
图:
• max_fsm_pages
• max_fsm_relations
对于追加优化表,VACUUM需要足够的可用磁盘空间来容纳VACUUM过程中的新段文件。
如果段文件中隐藏行与总行数之比小于阈值(缺省为10),则不压缩段文件。
阈值可以使用gp_appendonly_compaction_threshold服务器配置参数进行配置。 VACUUM
FULL忽略阈值,并重写段文件,而不考虑比率。
VACUUM可以使用gp_appendoniy_compaction服务器配置参数禁用附加优化表。
有关服务器配置参数的信息,请参阅服务器配置参数。
如果在追加优化表被抽真空时检测到并发可串行化事务,则当前和后续段文件不被压缩。
如果段文件已经被压缩,但是在删除原始段文件的事务中检测到并发可序列化的事务,则跳过该删除。
真空完成后,这可能会使一个或两个段文件处于“等待下降”状态。
有关Greenplum数据库并发控制的更多信息,请参阅“Greenplum数据库管理员指南”中的“日常系统维护任务”。
示例
Vacuum alltables in the current database:
VACUUM;
Vacuum aspecific table only:
VACUUMmytable;
Vacuum alltables in the current database and collect
statistics for the query optimizer:
VACUUM ANALYZE;
兼容性
There is no vacuum statement in the SQL standard.
相关参考
ANALYZE
vacuum 数据库 用法_[数据库学习]第二章SQL命令参考-VACUUM相关推荐
- 第二章 SQL命令参考-REASSIGN OWNED
REASSIGN OWNED 更改数据库角色拥有的数据库对象的所有权. 概要 REASSIGN OWNEDBY old_role [,...] TO new_role 描述 REASSIGN OWNE ...
- 深度学习 - 第二章 - 机器学习基础
深度学习 - 第二章 - 机器学习基础 第二章 机器学习基础 2.1 各种常见算法图示 2.2 监督学习.非监督学习.半监督学习.弱监督学习? 2.3 监督学习有哪些步骤 2.4 多实例学习? 2.5 ...
- Python爬虫学习第二章-1-requests模块简介
Python爬虫学习第二章-1-requests模块简介 这一章主要是介绍requests模块的相关知识以及使用 1.requests模块简介: 概述:是python中原生的一款基于网络请求的模块 ...
- MySQL数据库 第0章:每章SQL命令总结
MySQL数据库 第0章:每章SQL命令总结 MySQL数据库 第1章:数据库入门 MySQL数据库 第2章:数据库基本操作 MySQL数据库 第3章:数据类型与约束 MySQL数据库 第4章:数据库 ...
- 第二章 SQL聚合函数 AVG
文章目录 第二章 SQL聚合函数 AVG 大纲 参数 描述 数据值 对单个值求平均值 优化 当前事务期间所做的更改 示例 第二章 SQL聚合函数 AVG 返回指定列值的平均值的聚合函数. 大纲 AVG ...
- 第二十九章 SQL命令 DISTINCT
文章目录 第二十九章 SQL命令 DISTINCT 大纲 参数 描述 DISTINCT和ORDER BY DISTINCT和GROUP BY 字母大小写与DISTINCT优化 DISTINCT的其他用 ...
- 第二十二章 SQL命令 CREATE TRIGGER(二)
文章目录 第二十二章 SQL命令 CREATE TRIGGER(二) SQL触发器代码 ObjectScript触发代码 字段引用和伪字段引用 引用流属性 引用SQLComputed属性 标签 方法调 ...
- 第二十一章 SQL命令 CREATE TRIGGER(一)
文章目录 第二十一章 SQL命令 CREATE TRIGGER(一) 大纲 参数 描述 权限和锁 定义触发器的其他方式 参数 trigname event ORDER REFERENCING acti ...
- 第六章 SQL命令 CREATE INDEX(一)
文章目录 第六章 SQL命令 CREATE INDEX(一) 大纲 参数 描述 权限与锁 仅支持兼容性选项 索引名称 现有索引 表明 字段名称 嵌入对象中的字段(`%SerialObject`) 索引 ...
最新文章
- AppScan使用分享
- dubbo provider异步_Dubbo学习(六) Dubbo面试问题
- MTFBWU的完整形式是什么?
- linux 查看手机硬件信息失败,linux下硬件信息的查看总结
- 走进COM组件系列(一)
- 猜数游戏python_零基础掌握Python入门到实战
- vue3,vite2,json数据通过拼接显示链接src
- 实话实说!为什么说闷头学Python是自欺欺人?
- python必背入门代码-python必背内容有哪些
- 我是如何从蛋壳的虎口里维权的?
- docker入门及安装及基本命令
- 【愚公系列】2022年10月 .Net Core使用cpolar内网穿透功能实现钉钉回调事件的监听
- 安装deepin系统
- matlab仿真高尔顿正态分布源码,中心极限定理:从高尔顿板到麦克斯韦分布
- linux 搜狗拼音输入法
- ubuntu系统服务器网速测试方法
- 江南春:30年,我用1000亿,换来这99句话
- 积极指数化:一种全新的投资模式
- 什么是路由器?路由器有什么用?
- 移动端h5页面帮助资料干货
热门文章
- python基础笔记二_面向对象
- 2022中国制造业行业研究报告:(现状、驱动因素、外流现象、发展趋势)27页可下载
- 修改图片颜色 色相 饱和度 亮度 ColorMatrix
- 股票kdj指标api接口
- WordNet 介绍(ICL-PKU)
- 百度云高速下载Pandownload
- 电脑为什么刚开机时网速挺快,可过一段时间后就很慢了?重启电脑就解决了问题。
- 苹果研发卫星技术,Facebook自建操作系统,Uber推空中出租车 | 科技前沿周报
- 苹果CMS v10模板 - JOEOEL模板/苹果CMS手机端模板
- 南师大计算机语言学,科学网—南京师范大学语言学及应用语言学专业简介及报考指南(2018)更新中 - 李斌的博文...