问题标签 [table-statistics]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
r - 查找导致低 p 值的条目
在 R 中有 2 个向量
我想测试 H:u
并且v
是独立的,所以我运行卡方检验:
并得到一个非常低的 p 值,这意味着我可以拒绝 H,这意味着它u
不是v
独立的。
但是当我输入
我得到一个 0.23 的 p 值,这意味着我可以接受 H。我应该选择这两个测试中的哪一个?
此外,我想在这些向量中找到导致这个低 p 值的条目。任何想法如何做到这一点?
r - reshape2:dcast 边距行为
我写信寻求帮助理解 reshape2::dcast 让我感到困惑的行为。当我运行以下四行时(示例数据集 'french_fries' 带有 'reshape2' 包),我得到三个不同长度的 data.frames,而我希望它们除了排列的行和列之外是相同的:
公式左侧的变量是否被视为嵌套变量,因此我们只能在第一个变量的级别内获得第二个变量的边距?我将不胜感激任何见解,尤其是解释如何使用一个函数调用获得所有三种类型的边距,例如,treament=all by subject,subject=all by treatment,以及both=all。
非常感谢!
sql - teradata 使用样本收集统计信息不太有效
试图在一个VT
问题上收集样本 2 pct 多列统计信息,它没有采样或者我遗漏了一些东西
易失性表 VT 有几十亿行,收集 VT 上的统计数据与常规统计数据收集一样多“永远”时间。
同样在其他地方,在过去的类似情况下,我观察到如果我使用“新”(一个多列)统计集合语法,它会对第一个列进行采样并忽略其余部分(现在这第二部分没有全部验证自从我把它更多地基于“花费时间”的预感而不是窥视历史以来的方式。)
这里
/* SamplePercent */ 0.00,
是我要去的。我确定我错过了一些东西。
indexing - 何时手动重新计算索引统计信息
我有一个存储连续数据的应用程序。然后根据两列 (timestamp
和integer
) 选择行。
为了保持性能尽可能好,我必须重新计算索引的统计信息,但是基于时间间隔重新计算有两个问题:
- 每天插入的行数可能非常不同。一个安装可能有十行,另一个安装可能有数百万行。
- 无法保证应用程序 24/7 全天候运行。例如,它可以每天只运行一小时,甚至每周运行一次。
我读到最好在负载最小的时间内每天重新计算一次索引统计信息,这对某些网络或公司数据库来说是很好的建议,但这是完全不同的情况,所以我想在 auto 中添加一些“智能”重新计算。
每个表是否有一些行数(42;1,000;1,000,000?),之后应该重新计算统计信息?它是否还取决于表中当前的总行数?
oracle - 没有权限收集表统计信息
我有一个带有创建表的过程的 oracle 包,而不是它授予权限。
代码与此类似:
该过程的所有者是具有 DBA 角色的用户。
这个角色有
创建任何表权限
如
分析任何表权限
那么为什么当我运行这个过程时,我在收集表命令上得到一个“无特权”异常,但“创建”刚刚执行好?
解决方案是什么?我是否需要 SU 用户向 DBA 授予显式分析权限?
我正在使用 oracle 11g 版本。
谢谢。
r - plot geom box stat_statistic in a side table
I've plotted the result of medians from a different month in the year.
I've used stat_summary
to get the sample size of each month. I need the sample size of each month and put it on the side so far I'm only able to put it on the box and it looks bad
oracle - Oracle 12c 第 1 版倾斜数据的直方图
我们在 12.1.0.2.0 数据库上运行 Oracle Applications 12.2.4。当我执行以下查询时:
我得到:
但是,当我运行时:
我只得到NONE
Oracle 应用程序实例怎么可能没有需要直方图的偏斜表?还是我不了解设置?
此外,当您想要列上的直方图时,您是否必须使用method_opt => 'for all columns size skewonly'
?如何为所有列指定自动并为一列指定倾斜?
我真的很喜欢直方图可以带来的潜在的巨大速度提升,我很惊讶 Oracle 应用程序默认情况下不提供这一点。有一个每天晚上运行的 Gather Schema Statistics 进程,是不是其中的代码非常旧并且它会杀死任何 dbms_stats 调用?我专门创建了以下索引,它应该有一个直方图。
c# - 更新数据库中所有统计信息的最快方法?
所以我想在我的数据库中的所有表上运行更新统计信息。一个限制是我不能一次对超过 20 个统计表运行更新统计信息。例如,如果表 A 有 40 个统计信息,我必须将其分解为 2 个更新统计信息语句。这是因为其中一些表非常大,并且我正在处理的应用程序在数据库调用时超时。
我一直在尝试并行化这个过程。首先,我尝试为每个块创建最多 20 个统计表的作业,并使用parallel.foreach
. 但是我注意到即使我设置maxDegreeOfParallelism
为 5 通常一次只在我的数据库上执行 3 个查询。我已经阅读了有关parallel.foreach
线程之间资源共享/分区的一些东西的信息,但如果我只是为每个任务进行一次数据库调用,我觉得没有理由使用它。
然后我尝试使用信号量创建任务并限制活动任务的数量。使用相同的 5 个任务限制,我能够看到 5 个查询在数据库上同时运行,但总体而言,与使用 parallel.foreach 相比,并没有发现太多的性能优势。
现在我真正想知道的一件事是这个过程的速度如何随着运行的数量而变化Update Statistics
。有些事情我注意到了,但可能是错误的。每当我尝试Update statistics
在同一张桌子上同时运行两个
一个查询似乎被阻止,直到另一个完成。我想这是有道理的,因为我们正在尝试扫描同一张表。
然后,当Update Statistics
同时在两个不同的表上运行时
我确实注意到每个查询比我一次只运行一个更新需要更长的时间,但是这种延迟似乎并没有完全阻塞(即如果 Update Statistics A
需要 2 分钟和Update Statistics B
2 分钟,那么它们都完成可能需要 3分钟完成而不是4)。这是我真正不确定的,当您并行运行更多查询时,这种性能如何扩展。
基本上我只是想知道使用任务与parallel.foreach 是否更有意义,以及构建这些查询以提高性能的最佳方式。
apache-spark - 在 Apache Spark 中收集 Hive 列统计信息
我用来Pyspark 2.1
从 hive 表中计算表和列统计信息。
当我做:
我可以使用DESCRIBE EXTENDED
SQL 命令收集统计信息:
但是,当像这样计算列统计信息时:
作业已发送并成功完成,但我无法按照此答案的建议使用 SQL 命令收集统计信息:
我得到:
ParseException 不支持的 SQL 语句
重新发出相同的DESCRIBE EXTENDED
查询(没有列名)不会返回 CatalogTable 中的任何更改:我只能看到表统计信息(即 sizeInBytes 和 rowCount)。
This other answer建议从元存储中的“表”中检索Spark统计信息,但这对我来说很神秘......
如何在 Spark 中访问这些列级统计信息?
编辑:我对此进行了进一步调查,这使我可以细化问题的范围:
看起来我的 Hive 客户端(Hive View 2.0)和 Spark SQL 没有将统计信息写入同一位置。
使用 Spark SQL 的
/li>ANALYZE TABLE
方法时,-only- 表统计信息显示在 CatalogTable 的Statistics键中:
但是,Hive View 对这些统计信息视而不见,这些统计信息未在我的表统计信息中列出
相反,在 Hive View 中计算表或列统计信息时,我可以使用 Spark SQL 的
/li>DESCRIBE EXTENDED
方法收集表统计信息,但它们出现在我的 CatalogTable的Properties键中。它还指示是否已计算某些列统计信息:
因此,这些信息看起来是独立的,我的问题就变成了:Spark 可以使用哪个信息来优化执行计划?我知道其中一些问题可以通过升级到最新版本的 Spark 来解决,但这暂时不在我的计划中。
Jacek Laskowski的上述回答DESCRIBE EXTENDED
表明,如果可以通过 Spark SQL方法获得 Hive 的统计信息,则可以使用它们。
有人可以证实这一点吗?
非常感谢您帮助我解决这个问题。
oracle - Oracle - 即使在 GATHER_TABLE_STATS 之后也显示 NONE 的列直方图
我正在尝试对使用窗口分区的 Oracle 12c 中的 SQL 查询进行性能调整。在 PIT 表的 HUB_POL_KEY、PIT_EFF_START_DT 上创建了一个索引。在使用 /*+gather_plan_statistics */ 提示运行解释计划时,我观察到解释计划中有一个窗口排序步骤,其估计行数为 5000K,实际行数为 1100。我在表上执行了 DBMS_STATS.GATHER_TABLE_STATS . 当我检查 USER_TAB_COLUMNS 表时,我看到没有为 HUB_POL_KEY PIT_EFF_START_DT 生成直方图。但是,所有其他列都存在直方图。
SQL 查询
第一次尝试:
第二次尝试:
检查直方图:
表统计:
我在这里想念什么?为什么即使我使用 method_opt 指定大小运行gather_table_stat 过程,存储桶大小仍为 1?