问题标签 [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.
oracle - 直接路径插入是在 Oracle 中进行批量插入的好方法吗?
我们正在尝试找出使用 Oracle (10gR2) 处理 BULK INSERT 的最佳方法,我发现这可能是一个相当复杂的主题。我发现的一种方法涉及使用 Append 优化器提示:
我的理解是,这将告诉 Oracle 忽略索引并将结果放在表的末尾。然后,我要做的就是重建索引:
这比尝试将 SQL*Loader 作为外部进程启动或执行一些 pl/SQL 更容易。这似乎太容易了。有什么我想念的吗?如果我采取这种方法,有什么事情会反过来咬我吗?
c++ - GCC 内联 C++ 函数是否没有“内联”关键字?
inline
GCC 在编译 C++ 代码时是否曾尝试通过选择内联未标记关键字的函数来优化速度?
sql - 在 SQL Server 中的每个 SELECT 上使用 (nolock) 会发生什么?
我知道(nolock)
优化器提示允许“脏读”,但是在什么非常具体的情况下这是一个坏主意?我从未(nolock)
在组织中看到过如此广泛的使用,这让我感到紧张。我想要一个关于用户故事的解释。“保罗做 A,彼得做 B,X 发生而不是 Y”。
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 联接?
performance - 我应该使用 MAXDOP 来改进我的维护存储过程吗?
好的,所以我了解 的基础知识MAXDOP
,但我想了解这是否是使用它的有效场景。
我有一个存储过程,它非常消耗资源,但已优化到最大。目前刷新整个系统需要 30 分钟(本地)(什么是刷新并不重要)。
此过程将每隔几个月或根据需要手动执行一次。
本地 (DEV) 服务器:
- 4个CPU
- Windows 7的
- SQL Server 2008
直播服务器:
- 16个CPU(我相信)
- 视窗服务器 2008
- SQL 服务器 2008。
我应该在这里使用MAXDOP
吗?如果在我的本地上需要 30 分钟,它(大约)MAXDOP
在现场直播时有多快?
如果是这样,我如何以及在哪里使用它?存储过程调用其他存储过程,后者调用其他存储过程等。如果我指定MAXDOP
此存储过程,它是否会为所有其他存储过程保留此提示(即在父存储过程的范围内)?
python - 优化两个简单的嵌套循环
我一直在尝试优化以下两个嵌套循环:
有任何想法吗?谢谢。
gcc - 来自 GCC 的 __builtin_expect 概率
__builtin_expect
来自 GCC 的程序员可以使用来显示哪些变体预计会经常出现,哪些变体很少见。但 __builtin_expect
只有“真”和“假”(0% 或 100% 的概率)
-fprofile-arcs
对于一些大型项目,很难获得配置文件反馈(
是否可以向编译器提示分支的概率 >0% 和 <100% ?
sql-server - 存储过程和 OPTIMIZE FOR UNKNOWN
我已经阅读了 SQL Server 2008 OPTIMIZE FOR UNKNOWN 查询提示。我明白它是如何工作的。
但是,我有一个关于何时何地使用它的问题。它不能在 UDF 中指定。它可以在存储过程中指定。但是,此MSDN 博客文章指出以下内容:
4.将查询移动到存储过程中可以将其放入单独的过程上下文中,并且可以是使优化器看到该值的好方法(注意:这在 SQL 2000 中也适用)
在我看来,这似乎是说传递给存储过程的任何参数都将被“嗅探”,从而帮助 SQL Server 编译最佳执行计划。这意味着将重新访问/重新编译缓存的计划(不确定该机制)。然而,这令人困惑,因为它否定了 OPTIMIZE FOR UNKNOWN 的全部需求。
关于查询提示的 MSDN 文章没有涵盖我的问题。
有人可以为我回答这个问题,理想情况下,可以用指向微软的东西来解决这个问题。谢谢。
search - 优化 PowerShell 中的简单搜索脚本
我需要创建一个脚本来搜索不到一百万个文本、代码等文件以查找匹配项,然后将特定字符串模式上的所有命中输出到 CSV 文件。
到目前为止,我做了这个;
这将返回给我一个名为“foo.txt”的 CSV 文件,其中包含所有包含单词“foo”的文件的列表,以及一个名为“bar.txt”的文件,其中包含包含单词“bar”的所有文件的列表。
有没有人可以想到优化此脚本以使其更快地工作?或者关于如何制作一个完全不同但运行速度更快的等效脚本的想法?
所有输入表示赞赏!
nhibernate - 如何在 NHibernate 中使用 rowlock 和 readpast?
我有一个应用程序,它当前使用以下存储过程从表中读取数据:
如您所见,存储过程使用 ROWLOCK 和 READPAST 以便仅由一个连接安全地读取许多行(由 @BatchSize 控制)。读取后,行将被删除。
谁能指出我如何使用 NHibernate 完成同样的任务?