問題タブ [sql-optimization]

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 に答える
296 参照

sql - オラクルでのヒントの使用

クエリにヒントを適用しようとしていますが、説明プランが使用されているヒントに変更されません。

私の質問

計画を説明する

ご覧のとおり、ネストされたループの代わりにハッシュ結合を使用するようにクラスターに強制しています。しかし、説明計画は、ネストされたループを使用していることを示しています。

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

oracle - オラクルの注文は非常に遅く実行されます

私はこのようなクエリを実行していますが、完了するまでに6秒かかります:

テーブルに約 160 万のレコードがあり、削除された列と作成された列に別のインデックスを追加しようとしました。作成された列と削除された列の両方を含むインデックスを追加して、同じインデックスを作成しようとしました。別の順序で。何も役に立たないようです。これをスピードアップするにはどうすればよいですか?

休止状態によって生成されるため、クエリをあまり変更できません

編集:クエリがなくaaa."DELETED" is nullても実行が非常に遅くなります。

編集2: クエリ プラン

編集 3: インデックス定義を追加します。正直なところ、これらの数字のほとんどが何を意味するのかわかりません。インデックスの作成に sqldeveloper を使用しています。各インデックスに非常に多くの構成オプションがあることさえ知らなかったので、ドキュメントを調べます。

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

sql - 動的テーブルを1つのクエリに結合する

以下のSQLを1つのステートメントに組み合わせるクリーンな方法はありますか?FilterIDは長さゼロにすることができるため、Filtersテーブルはオプションです。したがって、それを行うためのより良い方法がない限り、私は以下のEXISTSロジックを使用するように「強制」されます。


はすでに認識しています...動的な文字列を作成し、それを使用しEXECて実行できることをすでに認識しています...しかし、それは遅いです。

DocumentとDocumentMetadataの関係は次のとおりです。1対多DocumentDocumentMetadata関係FilterとDocumentMetadataの関係は次のとおりです
1 対多の関係FilterDocumentMetadata

SQLは次のとおりです。

0 投票する
3 に答える
839 参照

mysql - OR 条件による DISTINCT SQL クエリの最適化

次の SQL クエリがあります。

私が達成しようとしているのは、レコードのコンセプト=ケースと属性=ステータスと値=クローズドを持たないすべての一意のビジネス キーを取得することです。すべての一意の business_keys を持つ 500,000 レコードを使用して MySQL でこのクエリを実行すると、約 11 秒と非常に遅くなります。

business_key 列、concept、attrib、および value 列にインデックスを配置しました。また、3 つの列すべて (concept、attrib、value) への複合インデックスを使用してみましたが、結果は同じです。

EXPLAIN EXTENDEDコマンドのスクリーンショットを次に示します。

ここに画像の説明を入力

興味深いことに、distinct 指定子なしでクエリを実行すると、実行が非常に高速になります。

私もこれを試しました:

さらに悪い結果: 約 25 秒

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

mysql - 多対多の関連テーブルでの効率的な検索

3番目の接続テーブルを介して多対多に関連する2つのテーブルがあります:製品とカテゴリ。各製品はいくつかのカテゴリに分類できます。これは典型的な多対多の実現です。

選択したカテゴリの一部に含まれ、同時に他の選択したカテゴリに含まれていない製品をユーザーが検索できるようにしたい。

例:カテゴリ「コンピュータ」と「ソフトウェア」に含まれているが、カテゴリ「ゲーム」、「プログラミング」、「教育」には含まれていないすべての製品を検索します。

これを行うために私が設計したクエリは次のとおりです。

できます。しかし、それは非常に遅いので、私はそれを本番環境で使用することができません。すべてのidexeが配置されていますが、このクエリでは5つの従属サブクエリが生成され、テーブルは巨大になります。

依存するサブクエリなしで同じタスクを解決したり、他の方法でこのクエリを最適化する方法はありますか?

アップデート

インデックスは次のとおりです。

すべてのテーブルはInnoDBです

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

sql - 比率を計算するためのSQLクエリの最適化

2つのテーブルがあります(このクエリに必要なのはテーブル列の一部のみです):

OwnerIdごとに、比率関数の結果を計算する必要があります。ItemsRelationstableへのリンクを持つユーザー要素の数/すべてのユーザー要素の数。

このクエリを作成しましたが、速度が遅く、最適ではありません。それを行うためのより簡単でより速い方法はありますか?

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

mysql - MySQL:これらのN個のクエリをより少ないクエリに変換する方法はありますか?

user_id私はN整数のリストを持っています、例えば

とテーブル:

N私はそれらの整数を取得する必要がuser_idあり、それぞれについて、最高user_idの上位3つを取得します。したがって、基本的にこのクエリ時間を実行する必要があります。contentscoreN

N非常に大きな数になる可能性があります。したがって、これらのクエリを1つずつ実行することは避けたいと思います。

実行する必要のあるクエリの数を減らす方法はありますか?ある種の一括選択はおそらく?

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

sql - クエリに IF 条件がある場合、CTE が機能しない

クエリに機能を追加して、特定の条件で実行されるクエリを選択しようとしています。

上記のサンプルテストコードの時点で、次のようになりました。

メッセージ 319、レベル 15、状態 1、行 5
キーワード「with」付近の構文が正しくありません。このステートメントが共通テーブル式または xmlnamespaces 節である場合、前のステートメントはセミコロンで終了する必要があります。

メッセージ 102、レベル 15、状態 1、行 8
「,」付近の構文が正しくありません。

多分私は何かを逃していますか?

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

mysql - 大量のデータでより速く実行できますか[MySQL]

次のクエリを最適化する方法はありますか:

ここでの主なタスクは、特定の keyword_id (CURRENT_KID) がある場合、CURRENT_KID と共に記事に属していたすべてのキーワードを検索し、これらのキーワードの使用量に基づいて結果を並べ替える必要があります。

次のように定義されたテーブル:

「explain」の出力が怖い

http://o7.no/J6ThIs

ビッグデータでは、このクエリはすべてを殺す可能性があります:)どうにかして高速化できますか?

ありがとう。