Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1srV76-0029PZ-Hp for pgsql-general@arkaria.postgresql.org; Fri, 20 Sep 2024 04:19:25 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1srV74-00EOh0-Id for pgsql-general@arkaria.postgresql.org; Fri, 20 Sep 2024 04:19:23 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1srV73-00EOgo-MX for pgsql-general@lists.postgresql.org; Fri, 20 Sep 2024 04:19:23 +0000 Received: from fout4-smtp.messagingengine.com ([103.168.172.147]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1srV70-0007iz-81 for pgsql-general@lists.postgresql.org; Fri, 20 Sep 2024 04:19:22 +0000 Received: from phl-compute-01.internal (phl-compute-01.phl.internal [10.202.2.41]) by mailfout.phl.internal (Postfix) with ESMTP id DB9601380350; Fri, 20 Sep 2024 00:19:17 -0400 (EDT) Received: from phl-mailfrontend-01 ([10.202.2.162]) by phl-compute-01.internal (MEProxy); Fri, 20 Sep 2024 00:19:17 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=aklaver.com; h= cc:content-transfer-encoding:content-type:content-type:date:date :from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to; s=fm1; t=1726805957; x=1726892357; bh=99lKDYk0HAK1JmLkg/oc5uizbzN2qODqoGar6vacEWw=; b= TOqrlW2kaEKwFXYV7dXCeOAIQnY6mq42wqOVOt4z8vCY7JPfE9wV2+89DU1gvXQy oR78m9m+AyDwDx0CXUv9CLdvY0F1RIM9MtKPUrAlCz10/4aHh3Lea92cLu4qCciy YUKXihSFlpCjRWcHI6+OQ44P89b3oQC2caraK0fbFE+0fkAdBF6bOjCCsAtU8ell WuqDAZpuBs7soBY8V1oNPM0dO/luDrZ981BqV3Z07i4S4VazY5SIOwh71T8fCOc6 PMhE8kNkcIliD+3gS3RAwq+7/To00eFA//oqPeFG7U/cDnkL+R5SH7pe18gPvn8r 16Ivj5p2Qe3NjHUnmvUrlQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:content-type :content-type:date:date:feedback-id:feedback-id:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:subject:subject:to:to:x-me-proxy:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=1726805957; x= 1726892357; bh=99lKDYk0HAK1JmLkg/oc5uizbzN2qODqoGar6vacEWw=; b=U zy9hlWsQyr3Vqdsl0avOtKxesB/6Sn4nbGqJIL6Fil4DtswrnCClUAvvU6h15+bR 1Sw0bl8e1AunZnRU4lv6hNcCbajwmI12nyI+uq6iz4/1UuwYuTd+eNjhqCN8217M UeHe8rpEbbuhDUZPZ7ZWQEKjVYQNBY/PoVR2MNqXCz4FYkiGFWkWI/KPLpl8I0hn L75Ug1pbav6tTPQ43RFInOr0K0SH6cMRj+ZD8cxq4pXhZfbNgUZtsAoCr33IiWbJ +KvejAk0XAye2p6/RR7XasF/giuFVDKgMgEE9sYpa15QTEwGsc8mDvArC3ElY0vE /QvcWJyDZmh2PZfnWHtNA== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrudelvddgkeegucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggvpdfu rfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucenucfjughrpefkffggfg fuvfhfhfgjtgfgsehtkeertddtvdejnecuhfhrohhmpeetughrihgrnhcumfhlrghvvghr uceorggurhhirghnrdhklhgrvhgvrhesrghklhgrvhgvrhdrtghomheqnecuggftrfgrth htvghrnhepleehfeefveffvddvudegjeeliedtffdttdeujedtveffueegleetfeejjedt udffnecuffhomhgrihhnpegurghrohhlugdrnhgvthenucevlhhushhtvghrufhiiigvpe dtnecurfgrrhgrmhepmhgrihhlfhhrohhmpegrughrihgrnhdrkhhlrghvvghrsegrkhhl rghvvghrrdgtohhmpdhnsggprhgtphhtthhopedvpdhmohguvgepshhmthhpohhuthdprh gtphhtthhopehtohhsihhrrghjrdhgsehgmhgrihhlrdgtohhmpdhrtghpthhtohepphhg shhqlhdqghgvnhgvrhgrlheslhhishhtshdrphhoshhtghhrvghsqhhlrdhorhhg X-ME-Proxy: Feedback-ID: i76984098:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Fri, 20 Sep 2024 00:19:16 -0400 (EDT) Message-ID: <2cf838b6-2e49-42a0-8d8c-98649127dd4b@aklaver.com> Date: Thu, 19 Sep 2024 21:19:16 -0700 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: Need assistance in converting subqueries to joins To: Siraj G , pgsql-general@lists.postgresql.org References: Content-Language: en-US From: Adrian Klaver In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk On 9/19/24 21:07, Siraj G wrote: > Hello Tech gents! > > I am sorry if I am asking the wrong question to this group, but wanted > assistance in converting a query replacing subqueries with joins. > > Please find the query below (whose cost is very high): Add the output of the EXPLAIN ANALYZE for the query. > > select em_exists_id from IS_SEC_FILT WHERE (IS_SEC_FILT_GUID) NOT IN > (SELECT IS_OBJ_GUID FROM TMP_IS_SEC_FILT T0, IS_PROJ P0 WHERE > T0.IS_PROJ_GUID = P0.IS_PROJ_GUID AND P0.IS_PROJ_ID = > IS_SEC_FILT.IS_PROJ_ID) AND (IS_PROJ_ID) IN (SELECT IS_PROJ_ID FROM > IS_PROJ P0, TMP_IS_SEC_FILT T0, EM_MD R0 WHERE T0.IS_REPOSITORY_GUID = > R0.REP_GUID AND T0.IS_PROJ_GUID = P0.IS_PROJ_GUID AND > P0.IS_REPOSITORY_ID = R0.REP_ID); For future reference formatting the query here: https://sqlformat.darold.net/ helps get it into a form that is easier to follow: SELECT em_exists_id FROM IS_SEC_FILT WHERE (IS_SEC_FILT_GUID) NOT IN ( SELECT IS_OBJ_GUID FROM TMP_IS_SEC_FILT T0, IS_PROJ P0 WHERE T0.IS_PROJ_GUID = P0.IS_PROJ_GUID AND P0.IS_PROJ_ID = IS_SEC_FILT.IS_PROJ_ID) AND (IS_PROJ_ID) IN ( SELECT IS_PROJ_ID FROM IS_PROJ P0, TMP_IS_SEC_FILT T0, EM_MD R0 WHERE T0.IS_REPOSITORY_GUID = R0.REP_GUID AND T0.IS_PROJ_GUID = P0.IS_PROJ_GUID AND P0.IS_REPOSITORY_ID = R0.REP_ID); > > Regards > Siraj -- Adrian Klaver adrian.klaver@aklaver.com