問題タブ [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 を処理する最善の方法を見つけようとしていますが、かなり複雑な問題になる可能性があることがわかりました。私が見つけた方法の 1 つは、Append オプティマイザー ヒントを使用することです。

私の理解では、これによりOracleはインデックスを無視し、結果をテーブルの最後に置くようになります。次に、インデックスを再構築するだけです。

これは、SQL*Loader を外部プロセスとして起動したり、pl/SQL を実行したりするよりも簡単です。これはほとんど簡単すぎるようです。足りないものはありますか?私がこのアプローチを取った場合、私を噛むために戻ってくる可能性のあるものはありますか?

0 投票する
4 に答える
13993 参照

c++ - GCCインラインC++は、「inline」キーワードなしで機能しますか?

GCCは、C ++コードをコンパイルするときに、inlineキーワードでマークされていない関数をインライン化することを選択して、速度を最適化しようとしますか?

0 投票する
2 に答える
5199 参照

sql - クエリ ヒント内の 1 つのテーブルの結合ごとに異なるヒントを選択するにはどうすればよいですか?

次のクエリがあるとします。

Ax と Bx と By と Cy と Dz にインデックスがあります

Azにはインデックスがありません

このクエリにヒントを与えて、Ax では INDEX ヒントを使用し、Az では USE_HASH ヒントを使用するにはどうすればよいですか? ヒントは特定の結合ではなくテーブル名のみを取るように思われるため、複数の結合を持つ単一のテーブルを使用する場合、それらすべてに対して単一の戦略しか指定できません。

別の方法として、上記のクエリで LEADING または ORDERED ヒントを使用しているとします。これらのヒントはどちらもテーブル名のみを使用するため、Ax = Bx 結合が Az = Dz 結合の前に確実に行われるようにするにはどうすればよいでしょうか? この場合、D を最初にリストすることができますが、D がその後 E に結合し、DE 結合がクエリ全体で必要な最後の結合であると想像してください。

3 番目の構成 -- Ax 結合をクエリ全体の最初にし、Az 結合を最後にしたいとします。ヒントを使用して、A からの単一の結合を実行し、その後に BC 結合を実行し、最後に AD 結合を実行するにはどうすればよいですか?

0 投票する
1 に答える
302 参照

performance - MAXDOP を使用してメンテナンス ストアド プロシージャを改善する必要がありますか?

の基本は理解できましたがMAXDOP、これが有効なシナリオであるかどうかを理解したいと思います。

非常にリソースを消費するストアド プロシージャがありますが、最大限に最適化されています。現在、システム全体を更新するには 30 分 (ローカル) かかります (更新とは何かは重要ではありません)。

この手順は、数か月に 1 回、または必要に応じて手動で実行されます。

ローカル (開発) サーバー:

  • 4つのCPU
  • ウィンドウズ7
  • SQL Server 2008

ライブサーバー:

  • 16個のCPU(私は信じています)
  • Windows Server 2008
  • SQL サーバー 2008。

ここで使うべきMAXDOPですか?ローカルで 30 分かかる場合、MAXDOPライブでは (およそ) どれくらい速くなりますか?

もしそうなら、どのように、どこでそれを使用しますか? ストアド プロシージャは他のストアド プロシージャを呼び出し、他のストアド プロシージャは他のストアド プロシージャを呼び出します。MAXDOPこのストアド プロシージャを指定すると、他のすべてのストアド プロシージャ (つまり、親ストアド プロシージャのスコープ内) に対してこのヒントが保持されますか?

0 投票する
1 に答える
908 参照

python - 2 つの単純なネストされたループを最適化する

次の 2 つのネストされたループを最適化しようとしています。

何か案は?ありがとう。

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 の記事では、私の質問は取り上げられていません。

理想的には、これを解決する Microsoft からの何かへのポインターを使用して、誰かが私のためにこれに答えることができますか? ありがとう。

0 投票する
2 に答える
655 参照

search - PowerShell での簡易検索スクリプトの最適化

テキストやコードなどの 100 万ファイル弱を検索して一致を見つけ、特定の文字列パターンのすべてのヒットを CSV ファイルに出力するスクリプトを作成する必要があります。

これまでのところ、これを作成しました。

これにより、「foo」という単語を含むすべてのファイルのリストを含む「foo.txt」という名前の CSV ファイルと、「bar」という単語を含むすべてのファイルのリストを含む「bar.txt」という名前のファイルが返されます。

このスクリプトを最適化して動作を高速化する方法はありますか? または、まったく異なるが、より高速に動作する同等のスクリプトを作成する方法についてのアイデアはありますか?

すべての入力に感謝します!

0 投票する
0 に答える
866 参照

nhibernate - NHibernate で rowlock と readpast を使用するには?

現在、次のストアド プロシージャを使用してテーブルからデータを読み取るアプリケーションがあります。

ご覧のとおり、ストアド プロシージャは ROWLOCK と READPAST を使用して、多数の行 (@BatchSize によって制御される) が 1 つの接続のみで安全に読み取られるようにします。読み取り後、行は削除されます。

NHibernate で同じことを達成する方法を教えてもらえますか?