問題タブ [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.
sql - オラクルでのヒントの使用
クエリにヒントを適用しようとしていますが、説明プランが使用されているヒントに変更されません。
私の質問
計画を説明する
ご覧のとおり、ネストされたループの代わりにハッシュ結合を使用するようにクラスターに強制しています。しかし、説明計画は、ネストされたループを使用していることを示しています。
oracle - オラクルの注文は非常に遅く実行されます
私はこのようなクエリを実行していますが、完了するまでに6秒かかります:
テーブルに約 160 万のレコードがあり、削除された列と作成された列に別のインデックスを追加しようとしました。作成された列と削除された列の両方を含むインデックスを追加して、同じインデックスを作成しようとしました。別の順序で。何も役に立たないようです。これをスピードアップするにはどうすればよいですか?
休止状態によって生成されるため、クエリをあまり変更できません
編集:クエリがなくaaa."DELETED" is null
ても実行が非常に遅くなります。
編集2:
編集 3: インデックス定義を追加します。正直なところ、これらの数字のほとんどが何を意味するのかわかりません。インデックスの作成に sqldeveloper を使用しています。各インデックスに非常に多くの構成オプションがあることさえ知らなかったので、ドキュメントを調べます。
sql - 動的テーブルを1つのクエリに結合する
以下のSQLを1つのステートメントに組み合わせるクリーンな方法はありますか?FilterIDは長さゼロにすることができるため、Filters
テーブルはオプションです。したがって、それを行うためのより良い方法がない限り、私は以下のEXISTSロジックを使用するように「強制」されます。
私
はすでに認識しています...動的な文字列を作成し、それを使用しEXEC
て実行できることをすでに認識しています...しかし、それは遅いです。
DocumentとDocumentMetadataの関係は次のとおりです。1対多Document
のDocumentMetadata
関係FilterとDocumentMetadataの関係は次のとおりです
1 対多の関係Filter
DocumentMetadata
SQLは次のとおりです。
mysql - OR 条件による DISTINCT SQL クエリの最適化
次の SQL クエリがあります。
私が達成しようとしているのは、レコードのコンセプト=ケースと属性=ステータスと値=クローズドを持たないすべての一意のビジネス キーを取得することです。すべての一意の business_keys を持つ 500,000 レコードを使用して MySQL でこのクエリを実行すると、約 11 秒と非常に遅くなります。
business_key 列、concept、attrib、および value 列にインデックスを配置しました。また、3 つの列すべて (concept、attrib、value) への複合インデックスを使用してみましたが、結果は同じです。
EXPLAIN EXTENDED
コマンドのスクリーンショットを次に示します。
興味深いことに、distinct 指定子なしでクエリを実行すると、実行が非常に高速になります。
私もこれを試しました:
さらに悪い結果: 約 25 秒
mysql - 多対多の関連テーブルでの効率的な検索
3番目の接続テーブルを介して多対多に関連する2つのテーブルがあります:製品とカテゴリ。各製品はいくつかのカテゴリに分類できます。これは典型的な多対多の実現です。
選択したカテゴリの一部に含まれ、同時に他の選択したカテゴリに含まれていない製品をユーザーが検索できるようにしたい。
例:カテゴリ「コンピュータ」と「ソフトウェア」に含まれているが、カテゴリ「ゲーム」、「プログラミング」、「教育」には含まれていないすべての製品を検索します。
これを行うために私が設計したクエリは次のとおりです。
できます。しかし、それは非常に遅いので、私はそれを本番環境で使用することができません。すべてのidexeが配置されていますが、このクエリでは5つの従属サブクエリが生成され、テーブルは巨大になります。
依存するサブクエリなしで同じタスクを解決したり、他の方法でこのクエリを最適化する方法はありますか?
アップデート
インデックスは次のとおりです。
すべてのテーブルはInnoDBです
sql - 比率を計算するためのSQLクエリの最適化
2つのテーブルがあります(このクエリに必要なのはテーブル列の一部のみです):
OwnerIdごとに、比率関数の結果を計算する必要があります。ItemsRelationstableへのリンクを持つユーザー要素の数/すべてのユーザー要素の数。
このクエリを作成しましたが、速度が遅く、最適ではありません。それを行うためのより簡単でより速い方法はありますか?
mysql - MySQL:これらのN個のクエリをより少ないクエリに変換する方法はありますか?
user_id
私はN
整数のリストを持っています、例えば
とテーブル:
N
私はそれらの整数を取得する必要がuser_id
あり、それぞれについて、最高user_id
の上位3つを取得します。したがって、基本的にこのクエリ時間を実行する必要があります。content
score
N
N
非常に大きな数になる可能性があります。したがって、これらのクエリを1つずつ実行することは避けたいと思います。
実行する必要のあるクエリの数を減らす方法はありますか?ある種の一括選択はおそらく?
sql - クエリに IF 条件がある場合、CTE が機能しない
クエリに機能を追加して、特定の条件で実行されるクエリを選択しようとしています。
上記のサンプルテストコードの時点で、次のようになりました。
メッセージ 319、レベル 15、状態 1、行 5
キーワード「with」付近の構文が正しくありません。このステートメントが共通テーブル式または xmlnamespaces 節である場合、前のステートメントはセミコロンで終了する必要があります。メッセージ 102、レベル 15、状態 1、行 8
「,」付近の構文が正しくありません。
多分私は何かを逃していますか?
mysql - 大量のデータでより速く実行できますか[MySQL]
次のクエリを最適化する方法はありますか:
ここでの主なタスクは、特定の keyword_id (CURRENT_KID) がある場合、CURRENT_KID と共に記事に属していたすべてのキーワードを検索し、これらのキーワードの使用量に基づいて結果を並べ替える必要があります。
次のように定義されたテーブル:
「explain」の出力が怖い
ビッグデータでは、このクエリはすべてを殺す可能性があります:)どうにかして高速化できますか?
ありがとう。