問題タブ [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 に答える
53 参照

mysql - 最新の報告日を使用して、貨物の最後の場所を効率的に追跡するにはどうすればよいですか?

貨物内の各貨物の最新の場所を見つける必要があります。これは主に、委託用に選択されたルートを調べてから、このルートのノードに対して入力された最新の (最大) 時間を見つけることによって行われます。たとえば、ルートに 5 つのノードがあり、最初の 3 つのノードに対してタイミングを入力した場合、最新のタイミング (最大時間) によって 3 つのノード間の位置がわかります。
パフォーマンスの問題に関するこのクエリに本当に行き詰まっています。数百行でも 2 分以上かかります。このクエリを改善するにはどうすればよいか、または取得する必要がある代替アプローチを提案してください。

注: ATA = 実際の到着時間と ATD = 実際の出発時間

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

sql-server-express - SQL Server Express 2008 ストアド プロシージャの実行時間が定期的に急増する

SQL Server 2008 Express SP2 データベースに、約 200 ミリ秒ごとに実行される大きなストアド プロシージャがあります。通常の実行時間は約 50ms です。私が見ているのは、この実行時間に大きな矛盾があります。しばらくの間、たとえば 40 ~ 60 ミリ秒で 50 ~ 100 回実行すると予想されますが、同じストアド プロシージャの実行には 900 ミリ秒または 1.5 秒かかるなど、一見ランダムに時間がかかります。同じプロシージャを連続して複数回呼び出すと、時間がかかる場合もあります。

何かが原因で 1 分ごとに SQL Server の速度が大幅に低下しているように見えますが、何が原因かわかりません。発生間にタイミング パターンはありません。

2 台の異なるコンピューターで同じセットアップを行っています。そのうちの 1 台はウイルス チェックを行わず、SQL サーバー以外は何もインストールされていないクリーンな XP Pro ロードです。

また、すべてのデータベースのリカバリ オプションが「シンプル」に設定されています。

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

sql - データベース テーブルの部分キーとインデックスに関する質問

データベース テーブルに対して 2 つのクエリがあるとします。

クエリは、クエリで使用されるフィールドに関して定義されます。

Query1: f1、f2、および f3 に依存

クエリ 2: f1、f2、f3、および f4 に依存

SQL クエリ エンジン (この場合は mySQL) がインデックスの左端のフィールドから開始してインデックス ツリーを解析することをどこかで読んだことを覚えています。

それが正しければ、次のようにテーブルに 2 つのインデックスを定義する代わりに、次のように仮定します。

両方のクエリで使用されるキーの結合を含む 1 つのインデックスを定義するだけです。

このインデックスを定義するだけです。

2 つの質問があります。

  1. 私の仮定は正しいですか?つまり、前の 2 つのインデックスの代わりに 1 つのインデックス (the_idx) を定義できますか?

  2. このインデックスの動作は PostgreSQL クエリ エンジンにも当てはまりますか?

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

sql - このmysqlクエリを実行するより速い方法はありますか?

サーバーの負荷に関して、この最も単純なクエリをより高速に実行する方法はありますか? この方法以外に試したことはないと思います。

これを改善する方法はありますか?

0 投票する
6 に答える
2542 参照

sql-server - ビューを使用してクエリのパフォーマンスを向上させる

SQLServerデータベースに1,000万以上のレコードを含む大きなテーブルがあります。この表には、米国の50州すべての特定のタイプのデータが含まれています。したがって、このテーブルから状態ごとに1つずつ、50のビューを作成すると、アプリケーションからクエリを作成するパフォーマンスが向上しますか?他の提案?

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

sql-server - Selectの左結合とサブクエリの奇妙な問題

パフォーマンスの問題を引き起こしている T-SQL クエリがあります。分厚いものですが、問題を引き起こしていると思われる部分は単純な LEFT JOIN です。

これは、左の結合を削除し、選択でサブクエリを使用することで解決できますが、一方がすばやく機能し、他方が機能しない理由がわからないため、これは私には不十分なようです。

関連するデータはそれほど多くなく、すべての結合列にキー/インデックスがあります。私が疑問に思っていたのは、データベースの統計と、それらがパフォーマンスに影響を与えているかどうかということだけでした。

たとえば ( Nb これは、はるかに複雑なクエリを単純化したものにすぎません

スロー

速い

SELECT A.1, A.2, (SELECT B.3 FROM B WHERE B.ID = A.ID) FROM A

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

sql-server - MS-SQL がテーブル インデックスを維持するのはいつですか?

議論のために、SQL 2005/8 用としましょう。SELECTステートメントを調整するためにテーブルにインデックスを配置する場合、これらのインデックスはINSERT/ UPDATE/DELETEアクション中に維持する必要があることを理解しています。

私の主な質問はこれです:

SQL Server がテーブルのインデックスを維持するのはいつですか?

私は多くのその後の質問があります:

コマンドが実行された後にそうすると単純に思います。20 行を挿入するとします。20 行が挿入されてコミットされた後、インデックスは維持されます。

  • スクリプトがテーブルに対して複数のステートメントを備えているが、それ以外は別個のステートメントである場合はどうなりますか?

  • サーバーには、すべてのステートメントが実行された後にインデックスを維持するインテリジェンスがありますか?それとも、ステートメントごとに行いますか?

INSERT大規模な/多くの/UPDATEアクション の後にインデックスが削除され、再作成される状況を見てきました。

  • ほんの一握りの行しか変更しない場合でも、これはおそらくテーブル全体のインデックスを再構築することになりますか?

  • 多くの小さな挿入を行うのではなく、行を収集して一時テーブルに挿入するなど、より大きなバッチに照合INSERTして アクションを実行しようとすると、パフォーマンス上の利点はありますか?UPDATE

  • 上記の行を照合することは、インデックスを削除することとメンテナンス ヒットを取得することに対してどのように積み重なるでしょうか?

質問が増えて申し訳ありません - これは私がいつも気をつけていることですが、スクリプトを調整してバランスを取ろうとすると、インデックスのメンテナンスがいつ行われるのか実際にはわかりません。

編集:パフォーマンスの問題は、挿入/更新中のデータ量とインデックスの数に大きく依存することを理解しています。繰り返しますが、議論のために、次の 2 つの状況があります。

  • 選択用に調整されたインデックスの重いテーブル。
  • インデックスライトテーブル(PK)。

どちらの状況でも、大きな挿入/更新バッチ、たとえば 10,000 行以上が発生します。

編集 2:データ セットで特定のスクリプトをプロファイリングできることを認識しています。ただし、プロファイリングでは、特定のアプローチが別のアプローチよりも高速である理由はわかりません。私は、インデックスの背後にある理論と、パフォーマンスの問題が発生する場所に興味があり、「これはそれよりも速い」という決定的な答えではありません。

ありがとう。

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

sql - select ステートメントが MySQL でのクエリの実行とパフォーマンスに影響を与えるのはなぜですか?

MySQL の奇妙な動作に遭遇しています。クエリの実行 (例: Explain [QUERY] で示されるインデックスの使用) と実行に必要な時間は、where 句の要素に依存します。

問題が発生するクエリは次のとおりです。

対応する Explain 出力は次のとおりです。

ご覧のとおり、1 列のインデックスには、それが属する列と同じ名前が付いています。また、使用されているものと一緒にいくつかの役に立たないインデックスも追加しました。それらが実行を変更するかどうかを確認するためです (変更されません)。

実行には約 4.5 秒かかります。

列 entl1.name を選択部分に追加すると (他に何も変更されていません)、el1 のインデックス fk_ent は使用できなくなります。

実行には約 8.5 秒かかります。

私は常に、クエリの選択部分はエンジンによるインデックスの使用に影響を与えず、そのような方法でパフォーマンスに影響を与えることはないと考えていました。

属性を除外することは解決策ではなく、さらに多くの属性を選択する必要があります。さらに悪いことに、使用されている形式のクエリはさらに複雑であり、パフォーマンスの問題が大きな問題になります。

私の質問は次のとおりです。1) この奇妙な動作の理由は何ですか? 2) パフォーマンスの問題を解決するにはどうすればよいですか?

ご協力いただきありがとうございます!グレッド

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

sql-server - SQLサーバーのタイムアウト–ごくまれにしか発生しません

このエラーを時々スローするWebアプリケーションがあります…。

例外メッセージ:タイムアウトが期限切れになりました。操作が完了する前にタイムアウト期間が経過したか、サーバーが応答していません。

管理スタジオを使用してもSQLサーバーに接続できない場合、サーバーがタイムアウトして接続できないと表示されます。

iisをリセットすると、すぐに元に戻ります。つまり、これは明らかに、これを引き起こしているのが私のコード内の何かであることを意味します。サービスブローカーを有効にして、LinqからSQLおよびSQLキャッシュの依存関係を使用するMVCサイトがあります。

私はコード全体でusingステートメントを徹底的に使用しているので、リークのある接続ではないことを確認してください。サーバーログを読むと、情報や警告イベントが非常に多く、システム管理者ではないため、何が起こっているのかを知るのが難しいため、事態はさらに混乱します。

それは私がASP.net4.xxxxxイベントID1309例外メッセージを取得することから始まります:タイムアウトが期限切れになりました。操作が完了する前にタイムアウト期間が経過したか、サーバーが応答していません。エラー

前回、以前のサーバーでこのエラーが発生したときにIISを再表示することで問題を解決したと思います。これは、この新しいサーバーでは利用したくないものです。

だから私の質問は、このタイムアウトエラーを減らすためにどのような手順を踏むことができますか?

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

Truegilly

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

sql-server-2005 - T-SQLクエリでは、変数と定数の使用によるパフォーマンスの大幅な違い

全て、

最初に値が設定されている変数を使用することと、クエリで定数として値を実際に使用することの間で、パフォーマンスの観点からクエリを実行すると、非常に奇妙な動作が見られます。

私が見ているのはそれです

私が実行するときよりもはるかに速く実行されます

これは明らかに実際のクエリのより単純なバージョンですが、この動作を説明するクエリを解析する方法でSQLServer2005の既知の問題を知っている人はいますか。私の元のクエリは、2つのアプローチの間で13秒から8分になります。

ありがとう、Ashish