当前位置: 首页 > 面试题库 >

检查PostgreSQL中的统计目标

邢飞雨
2023-03-14
问题内容

我已经搜索过,但是找不到任何简单,直接的答案。如何检查ANALYZE当前使用的统计目标?


问题答案:

统计目标的设置存储在目录表中的每一列中pg_attribute。您可以这样设置:

ALTER TABLE myschama.mytable ALTER mycolumn SET STATISTICS 127;

并像这样检查它:

SELECT attstattarget
FROM   pg_attribute
WHERE  attrelid = 'myschama.mytable'::regclass
AND    attname = 'mycolumn';

或者,您只需在pgAdmin的对象浏览器中查看创建脚本,如果该值与中的默认值不同,则会在该脚本中附加创建脚本default_statistics_target

我引用以下手册attstattarget

attstattarget控制由累积的该列统计信息的详细程度ANALYZE。零值表示不应收集统计信息。 负值表示使用系统默认统计信息目标。
正值的确切含义取决于数据类型。对于标量数据类型,attstattarget既是要收集的“最常见值”的目标数,也是要创建的直方图bin的目标数。

大胆强调我的。



 类似资料:
  • 问题内容: 我需要在应用程序中收集一些统计信息。我有一个用户表(tb_user),每当一个新用户访问该应用程序时,它将在该表中添加一条新记录,即每个用户一行。主要字段是 id 和 date_hour (用户首次访问该应用程序的时间戳)。 tb_user 我需要得到: 按日,周和月划分的平均用户数 例子: 每天:55.45 每周:XX.XX 月:XX.XX 编辑: 我最好的解决方案是: 但是,此解决

  • 我正在我的web应用程序中运行以下sql查询: 我期望结果为true(布尔数据),但我得到的是false的t或f。我如何让它返回到我的lua代码一个标准的布尔值? 我发现了以下帖子: 用PHP正确读取Postgres中的布尔值 所以我试着把代码改成这样: 或 但是我有一个语法错误<你能告诉我最好的处理方法吗?我是否应该以某种方式将结果“t”转换为布尔值?或者有没有办法告诉postgresql返回t

  • 问题内容: 我正在尝试从Linux amd64上的gdb中调查C / C ++堆的状态,有没有很好的方法呢? 我尝试过的一种方法是“调用mallinfo()”,但是不幸的是,由于gdb无法正确处理返回值,因此我无法提取所需的值。 我不容易为嵌入的进程编写要编译为二进制文件的函数,因此我可以通过以自己的代码调用mallinfo()来简单地实现自己的函数以提取值。也许有一个巧妙的技巧可以让我即时进行此

  • 问题内容: 我知道如何创建索引 以及如何检查索引是否已存在? 我需要检查它们的存在并创建它们(如果还不存在)。 问题答案: 您可以使用以下查询获取索引列表,它们的表和列: 从那里,您可以按索引名称或所涉及的列检查是否存在,并决定创建/跳过索引。

  • ./redis-cli --bigkeys 对redis中的key进行采样,寻找较大的keys。是用的是scan方式,不用担心会阻塞redis很长时间不能处理其他的请求。执行的结果可以用于分析redis的内存的只用状态,每种类型key的平均大小。

  • 问题内容: 我有一个用户表,例如: 和一张有工作的桌子: 可以将作业分配给用户,但只能分配给超级用户。其他用户无法分配作业。 因此,我有一个表格,通过它可以查看将哪个作业分配给了哪个用户: 但是我想创建一个检查约束,该约束引用具有的用户。 那可能吗?还是有其他解决方案? 问题答案: 这将适用于INSERTS: 然后在user_has_job表上检查约束: 适用于插入物: 但是,这是可能的: 因此,