問題タブ [query-tuning]

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

sql - 2 億行以上のテーブルに含まれるインデックス

2 億件をわずかに超えるレコードを含むテーブルにインクルード インデックスを作成するのに苦労しています。テーブルの構造は次のとおりです。

問題は、次のクエリを実行するときです。

..その後、結果は〜27ミリ秒で取得されます(non-clustered indexon列がありますUserId)。

ただし、追加の列を選択しようとすると、たとえば次のようになります。

..その後、結果は約 2,000 ミリ秒で返されます。

実行計画を見ると、 ここに画像の説明を入力 ..明らかに、Key Lookupここで最も時間がかかるのはこれです。

に次のような組み込みインデックスを作成しようとしましたVatId

..しかし、このクエリを数時間実行した後、エラーが発生します

プールのメモリ不足 (デフォルト)

(私の SQL Server インスタンスは 8 GB RAM、Core i7 で実行されます)

私の質問: これを取り除きClustered Key Lookup、パフォーマンスを向上させる他の方法はありますか?

どうもありがとう

編集:Idにはクラスター化インデックスがあります。

を呼び出すとset statistics io on;、次の結果が生成されます。

EDIT 2: 全体像を把握するために、ヒント付きの実行計画: ここに画像の説明を入力

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

sql - 揮発性テーブルを使用せずに Teradata の巨大な値リストを最適化する

`のような値リストを持っています

次に、リストを揮発性テーブルに押し込むのが最善の方法です。ただし、これはcognosを介して行われており、IBMはTeradataの揮発性テーブルが何であるかを知るほど賢くありません. 除外ロジックを使用して、揮発性のテーブルの内容を調べることができればよかったのにと思います。したがって、 volatile table がなければ、 where a.c1 in ( list ) 5K のような値を持つ値リストがあります。そのリストをレポートに残すことは、コストがかかることがわかっています。レポートに持ち込む前に、この種のリストをどこかに保存できないかと考えました。CTE についてはどうであり、 CTE に存在するものを使用すると、同様の利益が得られます。

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

postgresql - Amazon RDS Postgres でグループ化が遅すぎる

Amazon RDS db.r3.4xlarge インスタンス (16CPU、122GB メモリ) で Postgres 9.4.4 を実行しています。私は最近、大規模なテーブル (〜 2 億 7000 万レコード) でかなり単純な集計を必要とするクエリの 1 つに出くわしました。クエリの実行には 5 時間以上かかります。

大きなテーブルの結合列とグループ化列には、インデックスが定義されています。work_memtemp_buffersをそれぞれ1GBに設定して実験してみましたが、あまり役に立ちません。

これがクエリと実行計画です。どんなリードも高く評価されます。

これが実行計画です -

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

mysql - mysqlでレコード数を取得する高速な方法

2 つのテーブルを結合するために mysql でクエリを作成しています。また、両方のテーブルには 50,000 を超えるレコードがあります。

表 EMP 列 empid,

事業、

コード、

状態

テーブル EMPINFO

せっかちな、

事業、

コード、

プロジェクトタイプ、

使った時間、

スキル

各テーブルには候補キー [empid、project、code] があります。

したがって、INNER結合を使用してテーブルに結合すると

結果は出ていますが、外側のクエリに count(*) を追加してレコード数をカウントすると、何か接続に失敗するのに時間がかかります。

レコード数を取得するためにスピードアップする方法はありますか?

そして、内部結合クエリを高速化し、両方のテーブルに同じ候補キーを持つための提案をもっと聞きたいです。

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

sql-server - SQL Server - NOT EXISTS を使用する代わりに

一時テーブル変数にロードする EntityID 列を持つ約 200,000 レコードのリストがあります。

Temp テーブルの EntityID が dbo.EntityRows テーブルに存在しない場合、Temp テーブル変数から任意のレコードを挿入したいと考えています。dbo.EntityRows テーブルには、約 800,000 のレコードが含まれています。

dbo.EntityRows テーブルに約 500,000 のレコードがあった場合に比べて、プロセスは非常に遅くなります。

私の最初の推測は、NOT EXISTS 句のためです。Temp 変数の各行は、dbo.EntityRows テーブルの 800k 行全体をスキャンして、存在するかどうかを判断する必要があります。

質問: NOT EXISTS を使用せずに、この比較チェックを実行する別の方法はありますか?

編集:コメントに感謝します。これがクエリです(IF NOT EXISTSチェックの後の部分を省略しました。その後、NOT EXISTSの場合、4つのテーブルに挿入します)。

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

mysql - このクエリのパフォーマンスを改善する方法

インデックスを作成したり、mysql の設定を変更してクエリを改善したりしようと頭を悩ませましたが、うまくいきません。誰かが私を助けることができますか?

私は 400 万を超える製品を持つシステムを作成しており、ユーザーの応答時間を改善するためにマテリアライズド ビューを作成しています。

このビューを作成するには、以下のクエリを使用します

ただし、時間の経過と製品の増加に伴い、このテーブルが作成されるまでに約 4 時間かかります。テーブルや構成のシフト性能指標を改善することは可能ですか?

スクリプト作成テーブル

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

mysql - Mysql クエリが非常に遅く、適切なインデックスを使用していない (group by、IN 演算子を使用)

以下のクエリは、実行に 5 秒以上かかっていました (テーブルには 1m+ のレコードが含まれています)。外部クエリは適切なインデックスを使用していませんでした.FULLテーブルスキャンを使用して常にデータをフェッチしています.誰かがそれを最適化する方法を教えてくれます..

クエリ

クエリの説明

ここに画像の説明を入力

クエリ統計

ここに画像の説明を入力

実行計画

ここに画像の説明を入力

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

sybase - sybase iq 説明計画

Sybase IQ 16 のパフォーマンス チューニングに取り組んでいます。クエリを調整するために専門家の助けを求めています。

1)計画出力を生成するコマンドはありますか。2)クエリを調整するために従うべき一般的なガイドライン/手順はありますか。