問題タブ [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.
sql-server - SQL Server 実行計画をリセットする
このコマンドをよく調べました....SQL Server の実行計画をリセットするコマンドは何ですか?
sql - SQL Server クエリ プランを比較するためのツールですか?
(比較的複雑な) クエリ プランを比較するために使用できるツールを知っている人はいますか? 私が探しているのはクエリ プランのガイドではなく、さまざまなインデックスの使用などをすばやく確認できるツールだけです。
編集:明確にするために、私は計画に関する情報を探しているのではなく、2つの計画の違いをすばやく指摘できるツールを探しています(私は知っています、自分でそれを行うことができますが、計画のサイズ)それを難しくします)。
sql - SELECT ステートメントが SQL Server 2008 の実行計画コストの 45% になるのはなぜですか?
5 つの左外部結合テーブルのそれぞれからいくつかの列を選択するクエリがあります。
私は SQL Server 2008 で実行計画を立てました。基本的に、結合されたすべてのテーブルでテーブル スキャンが行われますが、それらのコストはすべて 0% です。これらのテーブルには多くのレコードがないためだと思います。
次に、実行計画の最後の 2 ステップ (すべてのテーブルの最終マージ結合と実際の SELECT ステートメント) で、コストの 55% がマージ結合であり、コストの 45% が選択であると述べています。
これは私には奇妙に思えます...最後の2つの「すべてをまとめる」ステップのコストがなぜそれほど高いのですか? これらすべてのテーブル スキャンまたは並べ替えの手順には、より大きなコストがかかると思いました。
これらすべてのテーブルから「要約された」レコードを 1 つ取得しようとしています。
SQL で更新
sql-server - クエリでキャッシュを使用しないように SQL Server に知らせる方法は?
一般的な質問:
特定のクエリを実行するときにキャッシュを使用しないように SQL Server に渡すことができるクエリ/コマンドはありますか?
構成設定ではなく、設定できるクエリ/コマンドを探しています。これを行う必要はありませんか?
sql - SQLワイルドカード:パフォーマンスのオーバーヘッド?
私はこの質問をグーグルで検索しましたが、一貫した意見、または確かなデータに基づく多くの意見を見つけることができないようです。SQL SELECTステートメントでワイルドカードを使用すると、各アイテムを個別に呼び出すよりも追加のオーバーヘッドが発生するかどうかを知りたいだけです。いくつかの異なるテストクエリで両方の実行プランを比較しましたが、見積もりは常に同じであるようです。他の場所でオーバーヘッドが発生する可能性はありますか、それとも本当に同じように処理されますか?
私が具体的に言及していること:
対。
tsql - 最適な形式のクエリを選択するのに役立つT-SQLクエリプラン?
A+Bの合計を生成したい2つのデータ列AとBを持つ単純なデータロギングテーブルがあります。ただし、AとBのいずれかまたは両方がnullになる可能性があります。テーブルには、主キーであるタイムスタンプ列もあります
この猫の皮を剥ぐ方法はいくつかありますが、タイムスタンプの範囲でデータを合計するのに適した方法を知りたいと思いました。
実行プランナーから次の結果が得られます。
これまでクエリプランを詳しく調べたことがないので、数値の解釈方法がわかりません。一般に、右側に押すほど、全体的なパーセンテージが歪んでいると言っても過言ではありませんか?フォーム3を1と2よりも優れたものにしますか?
mysql - 実行プランが大きく異なるMySQLマスターとスレーブ
3つのテーブルを結合し、1つのテーブルをそれ自体に自己結合する複雑なMySQLクエリがあります。
同一のデータとインデックスを持つマスターとスレーブがあります。マスターはスレーブと比較して強力なボックスですが、クエリはスレーブで10倍高速に実行されます(マスターの負荷が軽い期間中)。
実行計画は大きく異なります。
テーブルはさまざまな順序で処理され、マスターDBは一時テーブルとファイルソートの両方を使用しますが、スレーブはファイルソートのみを使用します。
実行時間が大幅に異なるさまざまな計画を引き起こす可能性のある要因は何ですか?
アップデート:
これがインデックス統計に関係している可能性はありますか?少量の期間にマスターでANALYZETABLEを実行する予定です。SHOW INDEXは、マスターとスレーブの間でいくつかのキーのカーディナリティが大きく異なることを示しています。
sql - SQL Server実行計画でテーブルスプールを取り除く
いくつかの一時テーブルを作成し、それらにデータを挿入するクエリがあります。私が理解していることから、これはテーブル スプールの潜在的な原因です。実行計画を見ると、処理の大部分がテーブル スプールに費やされています。この種のパフォーマンスの問題を改善するための優れた手法はありますか? ビューまたは CTE を使用すると、一時テーブルよりもメリットがありますか?
また、各テーブル スプールにマウスを合わせると、出力リストが同じ一時テーブルからのものであることに気付きました。
sql - クラスタ化インデックス シークのパフォーマンスを向上させる方法
実行速度が非常に遅いクエリのパフォーマンスを改善しようとしています。実際の実行計画を経て; Clustered Index Seekが 82% を占めていることがわかりました。Index Seekのパフォーマンスを向上させる方法はありますか?
索引:
表 (簡潔にするために一部の列を省略):
sql - 私の実行計画は私をだまそうとしていますか?
実行時間の長いクエリを高速化しようとしています(実行に約10分かかります...)。クエリのどの部分に最もコストがかかっているかを追跡するために、実行時に実際の実行プランを含めて、55%を占めている特定のセクションを見つけました(下のスクリーンショット)
代替テキストhttp://img109.imageshack.us/img109/9571/53218794.png
これは私にはまったく正しくないように思われたので、このトラブルセクションの前後に追加Print '1'
しました。Print '2'
クエリをわずか17秒間実行してからキャンセルすると、1と2の印刷がキャンセルされます。これは、最初の17秒間にそのセクションを通過していることを意味すると想定しています。
代替テキストhttp://img297.imageshack.us/img297/4739/66797633.png
私はここで何か間違ったことをしていますか、それとも私の実行計画は私を誤解させていますか?