问题标签 [sql-execution-plan]

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 投票
7 回答
21095 浏览

sql - MySQL解释计划中“选择优化的表”的含义

Select tables optimized awayMySQL解释计划 中的含义是什么?

注意:explain plan为易读性编辑输出。

0 投票
2 回答
479 浏览

mysql - 请帮帮我Mysql慢查询分析

我有我要分析的这个 mysql 查询。它很慢,这里的访问者表大约有 50K 条目,这个查询永远不会返回。当我尝试解释语句时,我发现访问者表上没有使用索引,尽管索引可用。现在这是我需要帮助解决的大难题。任何提示表示赞赏。

询问:

解释输出屏幕截图: http: //grab.by/grabs/9c3a629a25fc4e9ec0fa54355d4a092c.png

0 投票
1 回答
69 浏览

sql - 这 2 个 sql 查询在所有方面(例如估计和实际执行计划)是否等效?

查询 1) == 2) 是根据估计的查询计划和实际计划吗?(统计数据会影响这里的实际计划吗?)

声明 @cat int -- 来自 prc 的输入参数

...

1)

2)

在我看来,这些在逻辑上应该是等价的,并且无论表中的实际差异如何,执行计划都应该始终相同。并且在连接中添加更多条件,或者在哪里添加更多的表,或者添加更多的表来连接不应该改变这一点。

有没有这种情况不是真的?

0 投票
4 回答
3439 浏览

sql - 关于如何阅读 SQL 执行计划的问题

我已经执行了一个查询并包含了实际执行计划。有一个我感兴趣的哈希匹配,因为它的子树使用索引扫描而不是索引搜索。当我将鼠标悬停在这个哈希匹配上时,有一个名为“Probe Residual”的部分。我曾假设这是我加入的任何价值观。我在这里是正确的还是对这意味着什么有更好的解释?

我遇到的第二个问题是关于它使用的索引。在我的示例中,我很确定这个特定的连接是在两列上连接的。它正在扫描的索引中包含这两个列以及连接中未使用的另一列。我的印象是,这将导致 Index Seek 而不是 Scan。我错了吗?

0 投票
1 回答
310 浏览

sql - 执行计划重用

考虑以下“代码”

使用以下方法调查缓存的查询计划:

我的印象是,第一个“Execute”生成了一个复合执行计划,而不是两个单一的执行计划,从而禁用了第二个“Execute”重用第一个 Execute 中生成的任何执行计划。

我对吗?

0 投票
6 回答
3468 浏览

sql-server - SQL查询执行快捷方式或逻辑?

我有三张桌子:

SmallTable最多有几十条记录。BigTable有几百万,实际上是一个视图,它将这个数据库中的一个表与同一服务器上另一个数据库中的一个表联合起来。

这是连接逻辑:

平均连接大小是几千个结果。显示的所有内容都已编入索引。

对于大多数SmallTable记录,flag1并且flag2设置为1,因此实际上甚至不需要访问 BigTable.text1 上的索引,但 SQL Server 无论如何都会这样做,从而导致代价高昂的索引扫描和嵌套循环。

有没有更好的方法来提示 SQL Server,如果flag1flag2都设置为1,它甚至不应该费心去看text1

实际上,如果我可以在这些情况下完全避免加入 BigTable(JoinTable 是托管的,所以这不会产生问题),那将使这个键查询更快。

0 投票
1 回答
2315 浏览

php - 如何从 PHP 获取 Oracle SQL 查询的 EXPLAIN PLAN?

我在 Windows XP 上使用 Oracle 10g Express,在 Macbook OS X 10.5.8 上使用 PDO 和 Oracle Instant Client 10.2.0.4.0_4 运行 PHP 5.3.1,我运行以下脚本:

没问题。但我也希望能够编写一个 PHP 脚本来获取EXPLAIN PLAN此查询的报告。当我尝试这个时,我得到一个错误:

(为此测试,我将查询参数更改为硬编码的整数文字。)

当我尝试调用时出现此错误fetch()

ORA-24374: 在获取或执行和获取之前定义未完成

对此有何解释,如何EXPLAIN PLAN从 PHP 脚本中获取报告?我已经为此错误进行了一些网络搜索,但找不到足够清晰的解释。

0 投票
7 回答
513 浏览

sql-server - 什么是 SQL 执行计划,它们对我有何帮助?

最近我听到很多人说我应该看看我的 SQL 的执行计划来判断它的执行情况。但是,我不确定从哪里开始使用此功能或它的确切含义。

我正在寻找对执行计划的作用、它的限制是什么以及我如何利用它的一个很好的解释,或者寻找一个可以做的资源。

0 投票
2 回答
5879 浏览

sql - 如何减少 MS SQL 执行计划中的“执行次数”

有谁知道如何减少您在 MS SQL Server 中的 SQL 查询的执行计划中看到的“执行次数”?

我们有一个查询在一台生产服务器上运行缓慢(其他都很好)。在检查执行计划时,我们看到第一步是聚集索引扫描。在运行良好的服务器上,此扫描执行一次。在运行缓慢的那个上,它被执行 4 次。

我们在这里( http://www.sql-server-performance.com/tips/query_execution_plan_analysis_p2.aspx )读到你应该尝试减少它,但我们找不到任何关于如何做到这一点的提示。

两台服务器都运行相同版本的 Windows (2003) 和 SQL Server (2000)。

任何帮助,将不胜感激。

0 投票
1 回答
175 浏览

sql - SQL 2005 Express 未在显式查询中使用物化视图

我知道 SQL Server 2005 的 Express 版本在估计最佳执行计划时不会自动包含物化视图(带有模式绑定)。但是,当直接查询视图时 - 我仍然会在实际执行计划中显示底层表。为什么我的聚集索引没有在查询中使用的物化视图上创建?

视图代码是:

并且在 oTextValue 列上创建了一个唯一的聚集索引。

但是,当我执行如下查询时:

...我看到基础表(dbo.athObjects)在执行计划中使用条件(oTypeID < 100)。athObjects 表的 oTextValue 列上没有索引。即使我将条件更改为“<'Alibabki'”,索引仍然没有用。

提前感谢您的帮助。