タグ付けされた質問 「explain」

4
さまざまなタイムスタンプ(2列)でのクエリの最適化
Ubuntu 12.04でPostgreSQL 9.1を使用しています。 時間範囲内のレコードを選択する必要があります。テーブルにtime_limitsは2つのtimestampフィールドと1つのintegerプロパティがあります。実際のテーブルには、このクエリに関係しない追加の列があります。 create table ( start_date_time timestamp, end_date_time timestamp, id_phi integer, primary key(start_date_time, end_date_time,id_phi); このテーブルには、およそ2Mのレコードが含まれています。 次のようなクエリには膨大な時間がかかりました。 select * from time_limits as t where t.id_phi=0 and t.start_date_time <= timestamp'2010-08-08 00:00:00' and t.end_date_time >= timestamp'2010-08-08 00:05:00'; そこで、別のインデックスを追加してみました-PKの逆です: create index idx_inversed on time_limits(id_phi, start_date_time, end_date_time); パフォーマンスが向上したという印象を受けました。テーブルの中央にあるレコードにアクセスする時間は、より合理的であるようです。40〜90秒の間です。 ただし、時間範囲の中央の値の場合はまだ数十秒です。そして、テーブルの終わりをターゲットにすると(時系列的に)、さらに2倍になります。 私explain analyzeは初めてこのクエリプランを取得しようとしました。 Bitmap Heap …

4
Explainクエリで「constテーブルを読み取った後に「不可能なWHERE」に気付くのはなぜですか?
テーブルにfr(fromid、toid)のような一意の複合キーがあり、explainを使用してクエリを実行すると、次の結果が得られます。 Impossible WHERE noticed after reading const tables` 私が実行したクエリ: explain SELECT rid FROM relationship WHERE fromid=78 AND toid=60 何か助け? EDIT1: 以下のクエリを使用する場合: explain SELECT rid FROM relationship WHERE fromid=60 and toid=78 AND is_approved='s' OR is_approved='f' OR is_approved='t' 私が見るUSING WHERE代わりに、前のメッセージで、私は、クエリの下に使用する場合: explain SELECT rid FROM relationship WHERE fromid=60 and toid=78 AND (is_approved='s' OR …
27 mysql  explain 

1
EXPLAIN ANALYZEはplpgsql関数内のクエリの詳細を表示しません
PostgreSQL 9.3でPL / pgSQL関数を使用し、いくつかの複雑なクエリを内部で使用しています。 create function f1() returns integer as $$ declare event tablename%ROWTYPE; .... .... begin FOR event IN SELECT * FROM tablename WHERE condition LOOP EXECUTE 'SELECT f2(event.columnname)' INTO dummy_return; END LOOP; ... INSERT INTO ... FROM a LEFT JOIN b ... LEFT JOIN c WHERE ... UPDATE …

3
MySQLはなぜこの順序で強制的にインデックスを無視するのですか?
私は実行しEXPLAINます: mysql> explain select last_name from employees order by last_name; +----+-------------+-----------+------+---------------+------+---------+------+-------+----------------+ | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | +----+-------------+-----------+------+---------------+------+---------+------+-------+----------------+ | 1 | SIMPLE | employees | ALL | NULL | NULL | NULL | NULL | …

2
EXPLAINコマンドの時間形式について-Postgres
特定のクエリでEXPLAIN ANALYZEコマンドを実行すると、出力された時間値の解釈が困難になります。たとえば(実際の時間= 8163.890..8163.893)。内部小数は繰り返し文字を表しますか?? 申し訳ありませんが、これは初心者向けの質問かもしれませんが、結果を正しく解釈していることを確認したいと思います。 -> GroupAggregate (cost=2928781.21..2929243.02 rows=1 width=27712) (actual time=8163.890..8163.893 rows=1 loops=1)

2
Explainが答えを知っているのに、なぜcount(*)が遅いのですか?
このクエリ:select count(*) from planner_event実行に非常に長い時間がかかります-とても長いので、終了する前にそれをgaveめて殺しました。ただし、実行するexplain select count(*) from planner_eventと、出力に列数(14m)の列が表示されます。 Explainが行数を即座に取得できるのに、count(*)の実行に時間がかかるのはなぜですか?
14 mysql  count  explain 

1
作成した機能ベースのインデックスはコストを下げたが、説明プランの内訳に表示されないのはなぜですか?
ひどい列/テーブル名で申し訳ありませんが、これは作業プロジェクト用なので、質問しても問題ないことを保証したいと思いました。少なくとも機能インデックスが使用されていない理由を少なくとも知りたいと思っていたので、本番環境にこのインデックスを追加した方がよいと感じました。 クエリは、私が作成したビューに、次のようなwhere句を含むさまざまな列を使用しています。 .... AND e.sysid = NVL(wi.ALPHAid, -999) AND NVL(wi.ALPHAid, -999) <> -999 AND NVL(wi.BRAVOid, -999) = -999 AND NVL(wi.CHARLIEid, -999) = -999 ... 関数を介して列を渡し、代わりに関数ベースのインデックスを作成する必要がある場合、Oracleはインデックスを使用できないことを理解しています。したがって、インデックスを作成する前に、説明プランで次のコストを取得します。 計画ハッシュ値:1233409744 ------------------------------------------------------------------------------------------------------------------- | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | ------------------------------------------------------------------------------------------------------------------- | 0 | SELECT STATEMENT | | …
8 oracle  index  explain 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.