Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pUPFu-0005uC-Oj for pgsql-admin@arkaria.postgresql.org; Tue, 21 Feb 2023 09:48:14 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1pUPFt-0007Mq-Fa for pgsql-admin@arkaria.postgresql.org; Tue, 21 Feb 2023 09:48:13 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pUPFs-0007Mh-Vs for pgsql-admin@lists.postgresql.org; Tue, 21 Feb 2023 09:48:13 +0000 Received: from mail-wm1-x333.google.com ([2a00:1450:4864:20::333]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1pUPFr-0006uU-Kr for pgsql-admin@postgresql.org; Tue, 21 Feb 2023 09:48:12 +0000 Received: by mail-wm1-x333.google.com with SMTP id l2-20020a05600c1d0200b003e1f6dff952so3010616wms.1 for ; Tue, 21 Feb 2023 01:48:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cybertec-at.20210112.gappssmtp.com; s=20210112; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject :date:message-id:reply-to; bh=kLiRVqqoy+2HlES78jsDILYJK9AlCtE8xO2MJORQBHc=; b=sXEVPdpuFiqPdGuaInsIsVjQ5n8UyA5zSY14RiAE2UC1MSMxUOidSc8UA4IqiveLxJ pte5yKPNWCJN72KyzbkOxEaZl51BaQ/gDOSVXUveDQPy7l3/b8lhd58+I9QlVkmI7m6s ITB6ZQm1VW4mPwU0RZOm08h4ONiETidyxG/NsDZyGbG+SjIKV+HCKJowI8Gl1INaDaih dGlqJN6TC4gLNAhf70q942Qcrx7yZeFgZmcNKPXSHfkPTv0oXxMuKH5INm9bVmEfEojh /8FvAt3/VZMFPODwRu3xm0m5JGjwNb2ORIEvfGkxXonEA0kGF1sZQ1YFlJAxmqwzqJcl xDgA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=kLiRVqqoy+2HlES78jsDILYJK9AlCtE8xO2MJORQBHc=; b=7/z7g3pbsiXM7jqv8pfBjp5SUuUIqQEwsfC7SxLz0DfpyxMFcgChIBjvym9BAHmiYa r9E6uJcVtpEhuvlhuj8fgdQVzphiQsr+mTubi+UIgXjKs2hrt1a/010U0mBRJsNqPSGA rqbEww22DfQAR5ndmAIu1mp9jxqmiRvii4yefNYWhT89NK7AYcBzuN6VSDJwxZzSYLkL 1T5r2grGGZpVL/T+c68PkJDPWHWPU9ZjrQLgpXadl/CdI9dKADkBkY8tHILZY4MsSx09 n/6sSzIt0UAYxrCPiWhKsvQzk6OU1ZSKMDejjm4bVla6EzYJzXHMjyGeO6U93ndEL02Y OAjQ== X-Gm-Message-State: AO0yUKXCBBn7wPXdvC6opOZN9f8Iqs/RHW7uZ0LC00uevrw8ITRIFoFx 1+VamrB+u8GLWSGqY1TObuMvtA== X-Google-Smtp-Source: AK7set/x+U4ZvjhcOkIzZqWwsg/H0Ri1DAjQZ2Xhh8Aop5DTK4NdNhftKQJ2tjTF00yN2o8rQ1xgTQ== X-Received: by 2002:a05:600c:1615:b0:3e5:16a1:f478 with SMTP id m21-20020a05600c161500b003e516a1f478mr3489102wmn.27.1676972890334; Tue, 21 Feb 2023 01:48:10 -0800 (PST) Received: from dynamic-pd01.res.v6.highway.a1.net ([2001:871:5e:539:1b2c:c52a:475d:310c]) by smtp.gmail.com with ESMTPSA id y14-20020a7bcd8e000000b003e118684d56sm3065024wmj.45.2023.02.21.01.48.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 21 Feb 2023 01:48:10 -0800 (PST) Message-ID: <4d957ea8d55be25b893e485ba0f499be42f162ef.camel@cybertec.at> Subject: Re: Is it possible to log long running recursive/internal postgresql queries? From: Laurenz Albe To: Hotmail , Tom Lane Cc: pgsql-admin Date: Tue, 21 Feb 2023 10:48:09 +0100 In-Reply-To: References: <2713826.1676658480@sss.pgh.pa.us> <563e0f91d547c52d7cd2b0d2767290818836f615.camel@cybertec.at> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable User-Agent: Evolution 3.46.4 (3.46.4-1.fc37) MIME-Version: 1.0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk On Mon, 2023-02-20 at 07:53 -0800, Hotmail wrote: > this is what I observed after enabling auto_explain in my test system and= tracking nested statements in pg_stat_statements.=C2=A0 >=20 > Server log entries: >=20 > 2023-02-20 08:38:22 MST [30367]: user=3Dcjackson,db=3Dtest1,app=3Dpsql,cl= ient=3D[local] CONTEXT: SQL statement "SELECT 1 FROM ONLY "cjackson"."child= _oids" x WHERE $1 OPERATOR(pg_catalog.=3D) > "child_oid"::pg_catalog."numeric" FOR KEY SHARE OF x" > 2023-02-20 08:38:22 MST [30367]: user=3Dcjackson,db=3Dtest1,app=3Dpsql,cl= ient=3D[local] LOG: duration: 18621.383 ms plan: > Query Text: delete from parent_oids where parent_oid=3D281907; > Delete on parent_oids (cost=3D0.42..2.54 rows=3D1 width=3D6) > =C2=A0-> Index Scan using pk_parent_oid on parent_oids (cost=3D0.42..2.54= rows=3D1 width=3D6) > =C2=A0Index Cond: (parent_oid =3D '281907'::numeric) >=20 > pg_stat_statements >=20 > > select total_time, mean_time, query from pg_stat_statements where mean_= time > 10000 and query like '%FOR KEY SHARE OF x%' \gx > -[ RECORD 1 ]------------------------------------------------------------= ---------------------------------------------------------------------- > total_time | 59550.947124 > mean_time | 19850.315708 > query | SELECT $2 FROM ONLY "cjackson"."child_oids" x WHERE $1 OPERATOR(p= g_catalog.=3D) "child_oid"::pg_catalog."numeric" FOR KEY SHARE OF x You have some long running transactions that lock the row. Long running transactions are a problem fo the application (which forgot to= close it). This may be exacerbated by a SELECT ... FOR UPDATE which conflicts with FOR= KEY SHARE. Often, SELECT ... FOR NO KEY UPDATE is the better choice. Yours, Laurenz Albe