問題タブ [query-performance]
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.
mysql - 制限とオフセットを使用した MySQL クエリの実行が非常に遅い
重複の可能性:
MySQL クエリに制限があり、大きなオフセットが永遠にかかる
私のテーブルには 25,000 行が含まれており、ページネーションを使用してすべての行をページに表示しています。ページ制限が 1 ページあたり 10 行に設定されている場合、各ページが非常に高速に表示されます。ただし、ページ制限サイズを 1 ページあたり 250 行に変更すると、テーブルの読み込み (レコードの表示) に 30 秒から 1 分かかります。使用しているクエリは次のとおりです。
これは、最初にページをロードしたときに得られるものです。ページを変更すると制限番号 0、250 が変更されるため、ページ 2 にアクセスすると制限が次のように変更されます。
私のクエリに問題がある場合は、お知らせください。ページごとに 250 行がフェッチされているときに、テーブルのロードに 1 分かかる理由がわかりません。mysqlテーブルで、さまざまなIDのインデックスを使用してみましたが、速度は同じです。
sql-server - SQL Server:フィルター値がインデックスヒストグラムの範囲を超えると、間違ったインデックスが使用されます
非常に大きなテーブルがあり、毎日1〜200万行がテーブルに追加されています。
このクエリでは:
Task
との両方にインデックスが存在しFinishTime
ます。
task
行数がはるかに少ないため、インデックスが使用されることを期待していました。私たちが目にする問題は、SQL ServerがFinishTime
タスクの代わりにインデックスを使用する不適切なクエリ実行プランを作成し、クエリに非常に長い時間がかかることです。
これは、終了時間の値がFinishTime
インデックスヒストグラムの外側にある場合に発生します。
統計は毎日/数時間更新されますが、クエリが最近の値に対するものである場合がまだ多くあります。
質問:この場合、推定実行プランで、の推定行数がであることがはっきりFinishTime
とわかります。1
そのため、FinishTime
インデックスが選択されます。1
SQL Serverが、データがない場合にこれを想定するのはなぜですか?より合理的なものを使用するように指示する方法はありますか?
日付を少し前の日付に置き換えると、ヒストグラムに統計が存在し、推定行数は約7000になります。
sql-server - UDF の SQL サーバー クエリ統計
ストアド プロシージャを 1 回実行し、sys.dm_exec_query_stats でクエリの統計情報を確認すると、正しい実行回数が 1 になっています。
しかし、UDF を 1 回実行すると、実行回数が 4 であることがわかります (sys.dm_exec_query_stats には、その udf の行が 3 つあります)。
ObjName ExecutionCount AvgWorkerTime
fnGetDomesticNumber 1 3066
fnGetDomesticNumber 2 411
fnGetDomesticNumber 1 657
誰でもこれを理解するのを手伝ってもらえますか。
ありがとうございました
mysql - 誰でもここで私を助けることができます。クエリのパフォーマンスを向上させる方法
私のクエリは 30 分以上実行されています。インデックスも含まれていても単純なクエリです。なぜ実行時間がかかりすぎていたのかを見つけることができず、データベース全体のパフォーマンスに影響を与えています。昨日実行しました: 122.6 分 誰でもここで私を助けることができます。クエリのパフォーマンスを向上させる方法
インデックスを持っていても、調整する方法を教えてください
mysql - 実行する時間が長すぎる
- 以下のクエリは、実行に約2分かかるため、このクエリのパフォーマンスを向上させる方法を教えてください。
- したがって、2〜3秒以内に結果を取得する必要があります。
- クエリもインデックスを使用しています。
- しかし、それはより多くのスキャンを実行していました。
クエリ:
Expalinプラン:
テーブル構造:
mysql - (or),(and)条件を置き換えてクエリを書き直す方法
- クエリの実行に時間がかかりすぎて、約 130 分かかります。
- テーブルにはインデックスがありますが、クエリはインデックスを使用していません。
- テーブルのサイズは約 3,000 万レコードです。
- (または)、(および) 条件を変更して、クエリを書き直すのを手伝ってください。
- クエリは通常の実行では使用されていないため、強制インデックスで試しましたが、うまくいきませんでした。
クエリ:
プランの説明:
mysql - 実行時間の長いクエリ
1.以下のクエリは、実行に約 49 秒かかります。2.私たちの目標は、1秒から2秒で結果を得る必要があります。3.クエリにインデックスがあり、4.この長時間の実行を回避する方法を使用していました。5. これは単純なクエリです。 6. 可能であれば、クエリを書き直すのを手伝ってください。
mysql - クエリの実行時間が長すぎる
- 私のクエリは、出力を取得するのに約 2800 秒かかります。
- インデックスもありますが、運がありません。
- 私の目標は、2〜3秒で出力を取得する必要があります。
可能であれば、クエリを書き直してください。
/li>
mysql - ストアド プロシージャを使用すると、パフォーマンスが向上します
ストアド プロシージャを使用する利点を知る必要があります。
現在、クライアントには 3 層アーキテクチャがあります。ほとんどのテーブルは innodb です。ほとんどのサーバーには ~64G の RAM があり、すべてのサーバーは Linux 64 ビットです。最近、一部のサーバーのクラスターも開始しました。
クライアントは、長所と短所を書き上げるよりも、データベース レベルで物事を把握する方が正確です。
mysql - Order By を使用した Mysql クエリが遅すぎる
この種の質問が以前に尋ねられたことは知っていますが、どれも私を解決に導きませんでした。
これが私のクエリです:
最後に少し説明AND
:
基本的に、20 枚のユニークな写真について最新のコメントを取得しようとしています。たとえば、1 枚の写真に 5 つのコメントがある場合、最後の 1 枚だけを表示します。
ORDER BY c.id
キラーです。18 万のコメントと 10 万の写真しかありません。それを削除するとORDER BY
、クエリはすぐに返されますが、明らかに必要な結果は得られません。
インデックスは次のとおりです。
何か案は?ありがとう!