问题标签 [cost-based-optimizer]

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.

0 投票
2 回答
21600 浏览

python - 对张量流中的张量列表求和

我有一个深度神经网络,其中层之间的权重存储在一个列表中。

layers[j].weights我想在我的成本函数中包含岭惩罚。然后我需要使用类似的东西, tf.nn.l2_loss(layers[j].weights**2 for j in range(self.n_layers))即所有权重的平方和。

特别是权重定义为:

我怎样才能在 tensorflow 中做到这一点?

0 投票
1 回答
2919 浏览

mysql - 如何计算一个数据库表上的简单选择查询的成本?

Employee(ename、title、dname、address)都是相同长度的字符串字段。

ename 属性是候选键。该关系包含 10,000 页。有 10 个缓冲页。

查询是:SELECT E.title, E.ename FROM Employee E WHERE E.title='Administrator'</p>

假设只有 10% 的 Employee 元组满足选择条件。

假设 ename 上的聚集 B+ 树索引(唯一索引)可用。最佳计划的成本是多少?

我将如何计算这个成本?如果标题上有一个聚集的 B+ 树索引,我将如何计算?

另一个查询:SELECT E.ename FROM Employee E WHERE E.title='Administrator' AND E.dname='Finance'</p>

假设只有 10% 的 Employee 元组满足条件 E.title ='Administrator',只有 10% 满足 E.dname ='Finance',只有 5% 满足这两个条件。

假设一个聚集的 B+ 树索引是(唯一的)可用的。最佳计划的成本是多少?

专家!请帮忙。任何意见/建议将不胜感激。我想了解整个过程。我做了很多研究,我想我知道如何计算每个操作的成本,让我困惑的是他们说关系包含 10,000 页而不是说每页中有多少个元组?根据我所学到的,我相信我们必须以元组的形式获得关系的总大小,对吗?为什么?

感谢任何花时间阅读问题的人:-)

0 投票
0 回答
325 浏览

neural-network - C# 中的错误/损失/成本函数列表

我在代码中找不到列表,这似乎是它的正确位置。激活函数列表请看这里

这个链接中函数的翻译开始。

这是我的尝试:(同样在这里不确定所有数学是否正确,所以不要发布为答案)

0 投票
2 回答
723 浏览

oracle - oracle db trace 中的动态采样查询

我有一个巨大的 Oracle 跟踪文件。生成此文件的应用程序运行了 1 小时 15 分钟。在这个 Tracefile 中,我发现了 4 个 Selects 以及一个多小时的运行时间。问题是这些选择是由优化器采样的。

这是四个之一,它们看起来几乎相同。我想我找到了原始语句,这些语句是从 Uniface 服务执行的。我不知道 Uniface 是如何工作的,我只是 db 的人。问题是我不知道优化器为什么要重建这个语句。原来的不使用dynamic_sample提示。我还发现了这些,我想是的,原始状态还在跟踪文件中。

这就是为什么我不确定这些抽样语句是什么。任何的想法?

非常感谢。

0 投票
2 回答
69 浏览

oracle - 为什么优化器计划与实验查询运行不相关?

假设我们有以下问题:

  • 给定一个包含一列的表,其中'X'包含一些从 1 到 100 的随机整数的行:

    /li>
  • 我们必须删除重复的行,以便所有不同的整数都保留在表中。


让我们考虑下面的三种解决方案(平均执行时间和优化器计划)。

我必须补充一点,实验表明:

  • 解决方案 1 和 2 是可扩展的,并且随着每行数量步骤的线性时间增长(使用多达 1000 万行的表进行测试)
  • 解决方案 3 的指数时间增长近似于3 * exp(0.6 * N)

我们看到,对于解决方案 2 ,优化器计划给出了与实验结果无关的期望,甚至与它们相反:

  • 计划 2 和 3 中的成本和其他值几乎相同
  • 解决方案 1 和 2 的执行时间几乎相同

在这个实验中,表的收集统计数据的存在与否不会影响优化器计划和执行时间。


请解释为什么我不能相信案例 2 中的优化器计划。

是什么导致优化器忽略了线性复杂度和指数复杂度之间的明显区别?


解决方案:
1。

2.

3.

计划于Oracle 12.1.0.2.0

0 投票
1 回答
732 浏览

sqlite - SQLite:从查询优化器获取查询成本

对于 SQLite,给定一个 SQL 查询 Q,我试图弄清楚如何使用 C++ API 从 SQLite 的查询优化器中获取 Q 的估计查询执行成本。

我搜索了这个问题,在 SQLite 的网站上发现了很多关于这个成本的讨论,以及查询优化器如何在内部使用它。但是我找不到任何 C++ API 调用来获得这个成本。

因此,我猜可能没有实现这样的调用,但也许有人可能知道从 SQLite 中获取此成本的方法?

0 投票
5 回答
1078 浏览

sql - 使用子查询在 Oracle 中加入消除不起作用

我能够让连接消除适用于简单的情况,例如一对一关系,但不适用于稍微复杂的场景。最终我想尝试锚建模,但首先我需要找到解决这个问题的方法。我正在使用 Oracle 12c Enterprise Edition Release 12.1.0.2.0。

我的测试用例的 DDL:

一些示例数据:

5NF 观点

第一个视图无法编译 - 它失败并出现 ORA-01799: a column may not be outer-joined to a subquery。不幸的是,当我查看锚建模的在线示例时,这就是大多数历史视图的定义方式......

下面是我修复它的尝试。当通过简单的选择来使用这个视图时product_id,Oracle 设法消除了 product_color 而不是product_price。

我发现的唯一解决方案是使用标量子查询,如下所示:

现在 Oracle 成功地消除了 product_price 表。但是,标量子查询的实现方式与连接不同,它们的执行方式根本不允许我在现实世界的场景中获得任何可接受的性能。

TL;DR 我如何重写视图product_5nf以使 Oracle 成功地消除这两个依赖表?

0 投票
0 回答
1345 浏览

postgresql - 考虑到其解释成本,查询的估计经过时间是多少

如果我使用 postgres 的EXPLAIN命令,就会有一个顶级的“成本”。假设解释是准确的(即尽管成本实际上非常不可靠和/或不一致),从成本到分钟/秒查询持续时间的非常近似的转换是多少(对于“大”成本)?

就我而言,查询成本是6000万

就上下文而言,我的硬件是一台普通的笔记本电脑,数据是 12M 行,连接到索引列上的 250K 行,按几列分组以产生 1K 行输出。


这个问题与查询本身无关 - 可能有更好的方法来编码查询。这个问题也不是关于解释输出有多不准确、不可靠或不一致。

这个问题是关于在给定 EXPLAIN 成本并假设 EXPLAIN 输出实际上是对查询的准确分析的情况下估计查询执行时所花费的运行时间。

0 投票
1 回答
45 浏览

python - 对于循环写入数组中先前条目的部分但不是全部

我正在编写一个非常简单的随机游走函数。整个代码如下。当当前成本函数小于前一个时,我使用数组来跟踪参数值。但是由于某种原因,跟踪输出的数组正在重写?以前的条目。我认为这与将参数附加为“c”有关,因此存在内存分配问题,因为附加了“c”而不是 c 的值,但我不知道如何解决这个问题,也不知道为什么成本函数值 psi 会有所不同,它按预期附加和维护其值。

我正在尝试创建类似的东西:

相反,我得到的是

所以它正在替换参数,但保留以前的成本。当跟踪功能超出成功(成本较低)的 if 语句时,也会发生这种情况。

帮助 ?

这是一个示例输出

0 投票
0 回答
43 浏览

sql - DBMS:为约束 PK、FK 插入查询一致性

假设我们有一个包含三个表的数据库:

R(A',B,C):100.000 条记录,r=100 字节/记录,bfr(R)=40 条记录/块,B(R)=2.500 块

S(B',D,E):1.000 条记录,r=200 字节/记录,bfr(S)=20 条记录/块,B(S)=50 块

T(C'F,G):1.000 条记录,r=200 字节/记录,bfr(T)= 20 条记录/块,B(T)=50 块

R:堆组织的

S:顺序组织

T:顺序组织

没有可用的索引!

问题:

如何计算检查表 R 中主键和外键一致性的 INSERT 命令的成本?我是否只需阅读表格直到最后

COST1 = B(R) 主键一致性约束

COST2 = B(S)/2 外键一致性约束

还是系统可以通过其他方式自行检查?