问题标签 [optimizer-hints]

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

oracle - 直接路径插入是在 Oracle 中进行批量插入的好方法吗?

我们正在尝试找出使用 Oracle (10gR2) 处理 BULK INSERT 的最佳方法,我发现这可能是一个相当复杂的主题。我发现的一种方法涉及使用 Append 优化器提示:

我的理解是,这将告诉 Oracle 忽略索引并将结果放在表的末尾。然后,我要做的就是重建索引:

这比尝试将 SQL*Loader 作为外部进程启动或执行一些 pl/SQL 更容易。这似乎太容易了。有什么我想念的吗?如果我采取这种方法,有什么事情会反过来咬我吗?

0 投票
4 回答
13993 浏览

c++ - GCC 内联 C++ 函数是否没有“内联”关键字?

inlineGCC 在编译 C++ 代码时是否曾尝试通过选择内联未标记关键字的函数来优化速度?

0 投票
2 回答
8918 浏览

sql - 在 SQL Server 中的每个 SELECT 上使用 (nolock) 会发生什么?

我知道(nolock)优化器提示允许“脏读”,但是在什么非常具体的情况下这是一个坏主意?我从未(nolock)在组织中看到过如此广泛的使用,这让我感到紧张。我想要一个关于用户故事的解释。“保罗做 A,彼得做 B,X 发生而不是 Y”。

0 投票
2 回答
5199 浏览

sql - 如何在查询提示中为单个表的不同连接选择不同的提示?

假设我有以下查询:

我有关于 Ax 和 Bx 以及 By 和 Cy 和 Dz 的索引

Az 上没有索引

如何给这个查询一个提示,在 Ax 上使用 INDEX 提示,但在 Az 上使用 USE_HASH 提示?似乎提示只采用表名,而不是特定的连接,因此当使用具有多个连接的单个表时,我只能为所有连接指定一个策略。

或者,假设我在上述查询中使用了 LEADING 或 ORDERED 提示。这两个提示也只需要一个表名,那么我怎样才能确保 Ax = Bx 连接发生在 Az = Dz 之前呢?我意识到在这种情况下我可以首先列出 D,但想象 D 随后连接到 E,并且 DE 连接是我在整个查询中想要的最后一个连接。

第三种配置——假设我希望 Ax 连接成为整个查询的第一个,并且我希望 Az 连接成为最后一个。如何使用提示从 A 进行单个联接,然后是 BC 联接,最后是 AD 联接?

0 投票
1 回答
302 浏览

performance - 我应该使用 MAXDOP 来改进我的维护存储过程吗?

好的,所以我了解 的基础知识MAXDOP,但我想了解这是否是使用它的有效场景。

我有一个存储过程,它非常消耗资源,但已优化到最大。目前刷新整个系统需要 30 分钟(本地)(什么是刷新并不重要)。

此过程将每隔几个月或根据需要手动执行一次。

本地 (DEV) 服务器:

  • 4个CPU
  • Windows 7的
  • SQL Server 2008

直播服务器:

  • 16个CPU(我相信)
  • 视窗服务器 2008
  • SQL 服务器 2008。

我应该在这里使用MAXDOP吗?如果在我的本地上需要 30 分钟,它(大约)MAXDOP在现场直播时有多快?

如果是这样,我如何以及在哪里使用它?存储过程调用其他存储过程,后者调用其他存储过程等。如果我指定MAXDOP此存储过程,它是否会为所有其他存储过程保留此提示(即在父存储过程的范围内)?

0 投票
1 回答
908 浏览

python - 优化两个简单的嵌套循环

我一直在尝试优化以下两个嵌套循环:

有任何想法吗?谢谢。

0 投票
3 回答
2146 浏览

gcc - 来自 GCC 的 __builtin_expect 概率

__builtin_expect来自 GCC 的程序员可以使用来显示哪些变体预计会经常出现,哪些变体很少见。但 __builtin_expect只有“真”和“假”(0% 或 100% 的概率)

-fprofile-arcs对于一些大型项目,很难获得配置文件反馈(

是否可以向编译器提示分支的概率 >0% 和 <100% ?

0 投票
1 回答
4786 浏览

sql-server - 存储过程和 OPTIMIZE FOR UNKNOWN

我已经阅读了 SQL Server 2008 OPTIMIZE FOR UNKNOWN 查询提示。我明白它是如何工作的。

但是,我有一个关于何时地使用它的问题。它不能在 UDF 中指定。它可以在存储过程中指定。但是,MSDN 博客文章指出以下内容:

4.将查询移动到存储过程中可以将其放入单独的过程上下文中,并且可以是使优化器看到该值的好方法(注意:这在 SQL 2000 中也适用)

在我看来,这似乎是说传递给存储过程的任何参数都将被“嗅探”,从而帮助 SQL Server 编译最佳执行计划。这意味着将重新访问/重新编译缓存的计划(不确定该机制)。然而,这令人困惑,因为它否定了 OPTIMIZE FOR UNKNOWN 的全部需求。

关于查询提示的 MSDN 文章没有涵盖我的问题。

有人可以为我回答这个问题,理想情况下,可以用指向微软的东西来解决这个问题。谢谢。

0 投票
2 回答
655 浏览

search - 优化 PowerShell 中的简单搜索脚本

我需要创建一个脚本来搜索不到一百万个文本、代码等文件以查找匹配项,然后将特定字符串模式上的所有命中输出到 CSV 文件。

到目前为止,我做了这个;

这将返回给我一个名为“foo.txt”的 CSV 文件,其中包含所有包含单词“foo”的文件的列表,以及一个名为“bar.txt”的文件,其中包含包含单词“bar”的所有文件的列表。

有没有人可以想到优化此脚本以使其更快地工作?或者关于如何制作一个完全不同但运行速度更快的等效脚本的想法?

所有输入表示赞赏!

0 投票
0 回答
866 浏览

nhibernate - 如何在 NHibernate 中使用 rowlock 和 readpast?

我有一个应用程序,它当前使用以下存储过程从表中读取数据:

如您所见,存储过程使用 ROWLOCK 和 READPAST 以便仅由一个连接安全地读取许多行(由 @BatchSize 控制)。读取后,行将被删除。

谁能指出我如何使用 NHibernate 完成同样的任务?