問題タブ [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.

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

mysql - クエリに時間がかかりすぎて、パフォーマンスに影響を与えています

クエリに時間がかかりすぎています。このクエリは、Web アプリケーションから取得されます。それは私たちのパフォーマンスに影響を与えていました.誰かがそれを書き直し、あなたの貴重な提案を私と共有するのを手伝ってください.

Explain Plan を使用したクエリ:

テーブル構造:

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

sql - SQLAccessのクエリ速度

Access2003データベースに次のクエリがあります。

テーブルProjetには最大2500行があり、InfoProjetには200行しかありません。Accessでこのテーブルのいずれかを開くのにかかる時間は1秒未満です。ただし、上記のクエリの実行には5秒以上かかります。

このクエリのパフォーマンスを向上させるためにできることがあるかどうかを知りたいのですが。パフォーマンスの観点から避けるべきクエリに何かありますか?または、アクセス制限のすぐ下にありますか?サブクエリで使用しても効果はないと思いLikeますが、クエリの速度を低下させる何かが他にあるはずです。

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

database - 非正規化は非効率になる可能性がありますか?

ユーザーのデータ量に対して結合が遅すぎるという大きなリスクがあるため、非正規化したテーブルがあります。そのため、10 列の情報 (INFO0、INFO1... INFO9) を作成しました。ほとんどの場合、最初の 2 ~ 3 列のみが使用され、他は null です。

しかしここで、それぞれ 10 列の情報をさらに 2 種類追加する必要があります (合計 20 列の新しい列)。注意が必要なのは、私たちの設計では、ユーザーが 30 個の非正規化列をすべて使用できないことです。いつでも、各行で最大 10 個を使用できます。さらに、さらに新しい非正規化列を追加する必要があるかもしれませんが、各行で 10 を超える列を使用することはできません。

良いデザインではないことはわかっていますが、選択の余地はありません。私の質問は、この設計が非効率になる可能性があるかどうかです。null 値を持つ列が多数あると、クエリが遅くなる可能性がありますか? はいの場合、それは大したことになる可能性がありますか?

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

sql - 列 A が同じで B が異なるレコードを取得する SQL

という名前の次のテーブルがあるとしますmeals

同じ食事で星が異なるレコードを取得するにはどうすればよいですか? 星だけが違うレコードが欲しい。

上記の表の結果は次のようになります。

次のクエリを試しました。

しかし、あまりにも多くの時間を消費し、かなりの量のメモリを消費します。

私のテーブルの実際のサイズは次のとおりです。

だから私は何か他のことを考え出す必要があり、私はあなたの助けを求めています!

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

sql - 断続的な SQL クエリのパフォーマンスの低下を改善する

適度に複雑な入れ子になった T-SQL クエリがありますが、2 週間の支払い期間の開始時 (処理するレコードが少ない!) を除いて、ほとんどの部分で優れたパフォーマンスが得られます。もっとゆっくり。その後、隔週のある時点で、SQL Server (2008) は実行計画を変更する必要があると判断し、すべてが通常の速度に戻ります。私は「良い」シナリオと「悪い」シナリオの実行計画を持っていますが、私はこの分野の初心者であり、それらを解釈する方法がわかりません。ここでの次のステップは何ですか? クエリを投稿しますか? 実行計画?いくつかの記事/本を読みますか?

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

mysql - MySQL で複数の M-to-N をフラット化するか、ドキュメント化しますか?

. . プロジェクトの古い MySQL データベースをリファクタリングしています。products テーブル (約 20k 行で、40k またはそれ以上になる可能性があります) とさまざまな種類の分類 (現在は 4 種類) があります。簡単にするために、2 つの明白で一般的なサンプル タイプ (「カテゴリ」と「タグ」) のみを使用して例を作成します。これは単なる例であり、もちろん私はクリエイティブな人間ではありません。

. . カテゴリとタグが結び付けられたすべての製品のリストを取得する必要があります。この例の (適切で大幅に簡略化された) データベース構造は次のようになります。

  • Products テーブル: ID、名前
  • カテゴリ テーブル: id、名前
  • タグ テーブル: ID、名前
  • Products_Tags テーブル: product_id、tag_id
  • Products_Categories テーブル: product_id、category_id

. . サブクエリを使用してリレーションシップをフラット化でき(この記事GROUP_CONCATに良い例があります)、比較的優れたパフォーマンスを実現できますが、これは MongoDB のようなドキュメント指向のデータベースでは当てはまらないのではないかと思います。次のような単一のドキュメント:

  • 製品テーブル: {id、名前、カテゴリ: []、タグ: []}

. . ドキュメント指向のルートに進むと、さまざまな種類の製品にさまざまな種類のカテゴリを使用できるという追加の利点がありますが、データベースに任せるのではなく、コードでデータの一貫性をチェックする必要があります。

. . より良い代替手段はありますか?ヒント、アイデア、同様の経験はありますか?

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

mysql - Mysql 5.0.51 と 5.1.66 のパフォーマンスの問題

私は2つのmysqlサーバーを持っています

サーバー A には mysql 5.0.51 - 8GB RAM シングル クアッド コア サーバー B には mysql 5.1.66 - 64GB RAM - 2x クアッド コア

次のクエリの実行

ユーザーから U

サーバーAでは27秒で完了

サーバーBでは終了しません.400秒間データを送信した後、終了しました.

サーバーAの構成変数は次のとおりです

join_buffer_size 131072
key_buffer_size 16777216
myisam_sort_buffer_size 8388608
net_buffer_length 16384
preload_buffer_size 32768
read_buffer_size 131072
read_rnd_buffer_size 262144
sort_buffer_size 2097144

サーバーBからも同じ

join_buffer_size 131072
key_buffer_size 16777216
myisam_sort_buffer_size 8388608
net_buffer_length 16384
preload_buffer_size 32768
read_buffer_size 131072
read_rnd_buffer_size 262144
sort_buffer_size 20
OFF97144_result_sql_buffer

より高速ではるかに強力なサーバーで完了しない理由がわかりません。

オンラインでいくつかの投稿を見つけましたが、それらはすべて「インデックス作成」の問題であると述べていましたが、2 台のマシン間でどのように違いがあるのか​​ わかりません。今朝、すべてのインデックスを使用してダンプを取得し、すべて正常に再インポートしました.

どんな助けでも大歓迎です!

説明コードで更新

サーバーA

サーバー B

両方の場所で Explain を実行する前に SESSION SQL_BUFFER_RESULT= ON を設定しましたが、結果は同じです。

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

jquery - jQuery ajax 解析の http リクエストを最小限に抑える

以下の関数を作成しました。これは基本的に、特定の URL の HTML を解析し、特定のクラスをスキャンして、見つかったテキストを処理します。

私の関数の小さなサンプル:

複数のページから収集できる複数のデータを表示する必要があるため、この関数を 15 回呼び出します。この方法では、httpリクエストの数が関数が呼び出される数 (15) と同じになることを望んでいました。ただし、非常に大きな数 (340) を取得します。これは、HTML を解析するときに、呼び出した URL に含まれるすべての画像をバックグラウンドで要求することを意味します。これは、ページの読み込み時間が許容できないことを意味します (5 ~ 6 秒)。

私の質問は:バックグラウンドですべての画像をロードせずに HTML をプレーンテキストとして読み取るように、この関数を最適化できますか? これらのリクエストを最小限に抑える方法はありますか?

注: 残念ながら、PHP はオプションではありません。

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

sql-server - 更新/削除クエリのパフォーマンス

同じテーブルから生成された値でテーブルを更新したいと考えています。

私の目標は、_NS や _WP などの proftxt と同じ ao を使用してすべての行を検索し、それらを合計し
、値をその ao の _H、_G、_L 要素の数で割り、この値を _H、_G に追加することです。その ao の _L オブジェクト。

ao に _NS 行と _WP 行しかない可能性があります。ルーチンがこの ao を飛び越える必要があります。

例:

私のデータは次のようになります。

私のデータは次のようになります。

私のルーチンは、少量のテストデータに対して機能します。

更新機能は、実際のデータベースでの作業中に、13 時間の成功後に終了します。
しかし、210000 行のうち 5000 行しか編集されていません。

ルーチンが非常に遅いことはわかっていますが、どうすればよいですか?