ANALYZE - 收集与数据库有关的统计
SYNOPSIS
ANALYZE [ VERBOSE ] [ table [ (column [, ...] ) ] ]
DESCRIPTION 描述
ANALYZE 收集有关 PostgreSQL 表的内容的统计,然后把结果保存在系统表 pg_statistic 里。随后,查询规划器就可以使用这些统计帮助判断查询的最有效的规划。
如果没有参数,ANALYZE 检查在当前数据库里的所有表。 如果有参数,ANALYZE 只检查那个表。 你还可以给出一列字段名字,这个时候只收集那些字段的统计信息。
PARAMETERS 参数
- VERBOSE
- 打开处理过程信息的显示。
- table
- 要分析的特定表(可能用模式名修饰)的名字。缺省是当前数据库里所有表。
- column
- 要分析的特定字段的名字。缺省是所有字段。
OUTPUTS 输出
如果声明了 VERBOSE,ANALYZE 发出进度信息,表明当前正在处理的是哪行。 同时打印有关改表的很多其它信息。
NOTES 注意
周期性地运行 ANALYZE,或者在对表的大部分内容做了更改之后马上运行它是个好习惯, 准确的统计信息将帮助规划器选择最合适的查询规划,并因此而改善查询处理的速度。 一种比较经常采用的策略是每天在低负荷的时候运行一次 VACUUM [vacuum(7)]
和 ANALYZE。
和 VACUUM FULL 不同的是, ANALYZE 只需要在目标表上有一个读取锁, 因此它可以和表上的其它活动并行地运行。
收集的统计信息通常包括一个每字段最常用数值的列表以及一个包线图,显示每个字段里数据的近似分布。 如果 ANALYZE 认为它们都没有什么用, (比如,在一个唯一键字的字段上没有公共的数值)或者是该字段数据类型不支持相关的操作符, 那么它们都可以忽略。在 Chapter 21 ``Routine Database Maintenance'' 中有关于统计的更多信息。
对于大表,ANALYZE 采集表内容的一个随机的抽样做统计,而不是检查每一行。 这样就保证了即使是在很大的表上,我们也只需要很少的一些时间就可以完成分析。 不过,要注意的是统计只是近似的结果,而且每次运行ANALYZE都会导致 EXPLAIN 显示的规划器的预期开销有一些小变化, 即使表内容实际上没有改变也这样。在很小的概率的情况下,这个不确定的行为会导致查询优化器在不同 ANALYZE 之间选择不同的查询规划。为了避免这个问题,可以提高 ANALYZE 收集的统计数量,像下面描述的那样。
分析的广度可以通过用调整 default_statistics_target 参变量, 或者是以每字段为基础通过用 ALTER TABLE ... ALTER COLUMN ... SET STATISTICS (参阅 ALTER TABLE [alter_table(7)]) 设置每字段的统计目标来控制。目标数值设置最常用数值列表中的记录的最大数目以及包线图中的最大块数。 缺省的目标数值是 10,不过我们可以调节这个数值获取规划器计算精度和 ANALYZE 运行所需要的时间以及 pg_statistic 里面占据的空间数目之间的平衡。 特别是,把统计目标设置为零就关闭了该字段的统计收集。 这么做对那些从来不参与到查询的 WHERE,GROUP BY,或者 ORDER BY 子句里的字段是很有用的,因为规划器不会使用到这样的字段上的统计。
在被分析的字段中最大的统计目标决定为统计采样的表中的行的数目。 增大目标会导致做 ANALYZE 的时候成比例地增大对时间和空间的需求。
ANALYZE - 收集与数据库有关的统计的更多相关文章
- SQL Server 数据库表的统计信息的更新
最近在调整基础信息数据时,新增了几个客户类型,意想不到的事情发生了,在使用新增的客户类型作为 查询条件查询报表时,居然出现了超时的现象,但是用其他以前的客户类型查询就没有问题,用一个 ...
- Sybase数据库收集表及其索引的统计信息
更新表及其索引的统计信息: update table statistics 表名 go update index statistics 表名 go 建议此操作在闲时操作.
- CSDN数据库被爆 统计CSDN用户都喜欢哪些密码
今天有黑客在网上公开了知名网站CSDN的用户数据库,这是一次严重的暴库泄密事件,涉及到的账户总量高达600万个.有人写了一个小程序,统计了这次公布的 6428632 个 CSDN 哪些密码出镜率较高? ...
- 【网络收集】数据库中字段类型对应C#中的数据类型
数据库中字段类型对应C#中的数据类型: 数据库 C#程序 int int32 text string bigint int64 binary System.Byte[] bit Boolean cha ...
- MySQL数据库(4)----生成统计信息
MySQL最有用的一项功能就是,能够对大量原始数据进行归纳统计. 1.在一组值里把各个唯一的值找出来,这是一项典型的统计工作,可以使用DISTINCT 关键字清楚查询结果里重复出现的行.例如,下面的查 ...
- Android面试收集录 数据库
1.SQLite数据库如何查询表table1的第20条到30条记录? select * from table1 limit 19,11 ==>从19开始,11个数据 2.如何才能将table ...
- 收集Oracle数据库中的SQL基线信息(一)基础信息收集
Oracle数据库中的SQL基线信息,当数据库出现性能问题时,在业务无法提供相应业务信息时,通过对比SQL基线信息来查找SQL的变化. 查找数据库一天内运行次数大于5000次的sqlid select ...
- 数据库联表统计查询 Group by & INNER JOIN
原数据表 视频信息表 tab_video_info 播放记录表 tab_play_record 需求 统计播放量(已经开始播放)最多的前20个视频: SELECT a.video_id, SUM( ...
- 数据库表数据统计及数据表的数据大小统计SQL
USE [YourDBName] -- replace your dbname GO SELECT s.Name AS SchemaName, t.Name AS TableName, p.rows ...
随机推荐
- adbi命令【转】
本文转载自:https://zmywly8866.github.io/2015/01/24/all-adb-command.html ADB很强大,记住一些ADB命令有助于提高工作效率. 获取序列 ...
- POJ3616 Milking Time —— DP
题目链接:http://poj.org/problem?id=3616 Milking Time Time Limit: 1000MS Memory Limit: 65536K Total Sub ...
- 风云流水 jQuery技巧总结 (转)
jQuery技巧总结 (转) 一.简介 1.1.概述 随着WEB2.0及ajax思想在互联网上的快速发展传播,陆续出现了一些优秀的Js框架,其中比较著名的有Prototype.YUI.jQuery.m ...
- linux上用mplayer播放264文件
Linux上,264视频裸码流可用mplayer进行播放. 同时,可用-fps参数控制帧率. 参考:http://www.chinavideo.org/archiver/?tid-16088.html
- bzoj 3732: Network【克鲁斯卡尔+树链剖分】
先做最小生成树,这样就保证了最大值最小 然后随便用个什么东西维护一下最大值,我用的树剖log^2,倍增会更快 #include<iostream> #include<cstdio&g ...
- bzoj 3122: [Sdoi2013]随机数生成器【BSGS】
题目要求的是: \[ ...a(a(a(ax+b)+b)+b)+b...=a^nx+a^{n-1}b+a^{n-2}b+...+b\equiv t(mod\ p) \] 后面这一大坨看着不舒服,所以考 ...
- bzoj 4916: 神犇和蒟蒻【欧拉函数+莫比乌斯函数+杜教筛】
居然扒到了学长出的题 和3944差不多(?),虽然一眼看上去很可怕但是仔细观察发现,对于mu来讲,答案永远是1(对于带平方的,mu值为0,1除外),然后根据欧拉筛的原理,\( \sum_{i=1}^{ ...
- bzoj 3052: [wc2013]糖果公园【树上带修改莫队】
参考:http://blog.csdn.net/lych_cys/article/details/50845832 把树变成dfs括号序的形式,注意这个是不包含lca的(除非lca是两点中的一个) 然 ...
- 全选Js
<th><input type="checkbox" value="" id="checkedAll" onclick=& ...
- 查找MySQL和 SQL sever data
MySql SQL server