select count(distinct ec.logicalid) from event_counts ec where ec.eventname = 'Searches'
select count(a.logicalid) from sf_accounts a
これらの2つのクエリは、それぞれ数ミリ秒で実行されます。
クエリを1つに組み合わせると、同じ結果が得られますが、実行には2分かかります。
select count(distinct ec.logicalid), count(distinct a.logicalid) from event_counts ec, sf_accounts a where ec.eventname = 'Searches'
このクエリを高速化する何かが欠けていますか?
これらのテーブルを相互結合しているため、古いスタイルで結合します。これが起こっていることを知らなかったと思いますが、なぜそれらを使用すべきでないのかについてはここで読むことができます
あなたが望んでいたのは、1つのテーブルの結果だったと思います。その場合は、サブクエリを使用してください。
select (
select count(distinct ec.logicalid)
from event_counts ec
where ec.eventname = 'Searches'
) as firstcount,
(
select count(a.logicalid)
from sf_accounts a
) as secondcount
それ以外の場合は、テーブルを正しく結合します
select
count(distinct ec.logicalid)
,count(a.logicalid)
from event_counts ec
inner join sf_accounts a on a.logicalid = ec.logicalid
where ec.eventname = 'Searches'
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加