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 1lf6CD-0002NM-Ib for pgsql-odbc@arkaria.postgresql.org; Fri, 07 May 2021 19:31:33 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1lf6CC-0006rv-8B for pgsql-odbc@arkaria.postgresql.org; Fri, 07 May 2021 19:31:32 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1lf4yl-0001GD-Tc for pgsql-odbc@lists.postgresql.org; Fri, 07 May 2021 18:13:36 +0000 Received: from mail-ed1-x534.google.com ([2a00:1450:4864:20::534]) by makus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1lf4yh-0000Ww-0z for pgsql-odbc@postgresql.org; Fri, 07 May 2021 18:13:34 +0000 Received: by mail-ed1-x534.google.com with SMTP id b17so11293361ede.0 for ; Fri, 07 May 2021 11:13:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bcplatforms-com.20150623.gappssmtp.com; s=20150623; h=mime-version:from:date:message-id:subject:to; bh=vo6zs+nkWoWvo68CNvqObeEU+aAgseuTnF/b/DwJbKc=; b=x9VpGET5QmbQszWMm7218SOO6A4ihpDcnM+oKDgl1heZP24268uiQBL+slVKsgygSS e+KEwUMlapG/utsXWb6JSn6oQIfap+YfulxmSnxynevamINsZMbEPF+7Qu/J1WsQT9Ob mWyErCS0HsngmNfIeL4ycpqmvmfUaT7WXTXXftY1OZMnIYVPEIHQKxL+fp5lsClu8ard PbZxdWKRetx2eLw3Fy4wnsi3a4kz+KoX00gHLSG1BcrW+rVoZ702A7GQHyeINBJmY6IP THhxCZGYx7Trh0F9gRmMOwdk3lmf6DZGy5877xxHAG6ntzsyEziXGgpL0T/4c7BXNwRw SE0A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=vo6zs+nkWoWvo68CNvqObeEU+aAgseuTnF/b/DwJbKc=; b=R14NjUan3dUAodgA3fgj6/oTZH8RjGZtfY2qP5POzxUfLsELO9Iwk/NWWXHzlwucEs YZGtY52soIGuzn8dxbhE//HWPTTltp5R0ocfDGA3cgKXRV0jEZNmRAT9S2wuOxw9anSK aA5G0+iZxDOwngYKAi3/74ikbVwLXmmsXSayuMwCJGQ94Gt6HuLJSe+8hxmZAMwo4TEW 05tiSlOB93st90bf/2kkZhXQb4hEorDSBbZCgxlUQOrk422xJoI7XZnNotJHVP1JSmgb PV1GTWXXk25Oa0vz+00tPGnYOjTPRPsNhi0dPPSzdwDlxxfTXHbC9J4RaGungEmKJRhy Mpsg== X-Gm-Message-State: AOAM533bWJrvKVH5fKJMlgo8v2+beilBR8Yc0DYEalc/DFj3mOJ4SUxE /9hxT5ixaJFOQGqYn2zPD9AMy7jR+8dUmH0lMxfWOOHrWICUD6Hi X-Google-Smtp-Source: ABdhPJz6mY6wKiMF4j1U3BhsWnbrCDVMOXR/LQ8oLRE+onj081WF5tufTyT3axIxj0zVqrGmuuiMi11G40miHl2CwL0= X-Received: by 2002:a05:6402:120c:: with SMTP id c12mr12876273edw.98.1620411208803; Fri, 07 May 2021 11:13:28 -0700 (PDT) MIME-Version: 1.0 From: Marko Ristola Date: Fri, 7 May 2021 21:13:18 +0300 Message-ID: Subject: PostgreSQL ODBC mylog() uses lots of CPU in INTEGER field SQL query To: pgsql-odbc@postgresql.org Content-Type: multipart/alternative; boundary="0000000000007dbc1005c1c1623d" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000007dbc1005c1c1623d Content-Type: text/plain; charset="UTF-8" I did a query of 4 million rows into an INTEGER field. Linux perf shows following profile (hottest functions): 9.91% bc_sqlselect psqlodbcw.so [.] mylog 9.64% bc_sqlselect psqlodbcw.so [.] QR_read_a_tuple_from_db 4.83% bc_sqlselect psqlodbcw.so [.] copy_and_convert_field 4.57% bc_sqlselect libpthread-2.17.so [.] pthread_mutex_unlock 4.51% bc_sqlselect libpthread-2.17.so [.] pthread_mutex_lock 4.40% bc_sqlselect psqlodbcw.so [.] SOCK_get_next_n_bytes.part.2 3.93% bc_sqlselect psqlodbcw.so [.] PGAPI_ExtendedFetch Following patch removes the only mylog() call (not a macro) from the PostgreSQL ODBC driver from consuming CPU: (MYLOG() macro is used to avoid the heavy mylog() call.) diff --git a/results.c b/results.c index 1f6a12c..ec89600 100644 --- a/results.c +++ b/results.c @@ -4632,7 +4632,6 @@ SC_pos_add(StatementClass *stmt, goto cleanup; } MYLOG(0, "addstr=%s\n", addstr.data); - mylog("addstr=%s\n", addstr.data); s.qstmt->exec_start_row = s.qstmt->exec_end_row = s.irow; s.updyes = TRUE; ret = PGAPI_ExecDirect(hstmt, (SQLCHAR *) addstr.data, SQL_NTS, 0); Best Regards, Marko Ristola -- Marko Ristola Software developer BC Platforms m. +358 40 593 2182 e. marko.ristola@bcplatforms.com w. www.bcplatforms.com --0000000000007dbc1005c1c1623d Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: base64 PGRpdiBkaXI9Imx0ciI+PGRpdj48cD5JIGRpZCBhIHF1ZXJ5IG9mIDQgbWlsbGlvbiByb3dzIGlu dG8gYW4gSU5URUdFUiBmaWVsZC48YnI+PC9wPg0KPHA+TGludXggcGVyZiBzaG93cyBmb2xsb3dp bmcgcHJvZmlsZSAoaG90dGVzdCBmdW5jdGlvbnMpOjxicj48L3A+DQo8cD7CoMKgIDkuOTElwqAg YmNfc3Fsc2VsZWN0wqAgcHNxbG9kYmN3LnNvwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBb Ll0gbXlsb2fCoCA8YnI+DQrCoMKgIDkuNjQlwqAgYmNfc3Fsc2VsZWN0wqAgcHNxbG9kYmN3LnNv wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBbLl0gUVJfcmVhZF9hX3R1cGxlX2Zyb21fZGI8 YnI+DQrCoMKgIDQuODMlwqAgYmNfc3Fsc2VsZWN0wqAgcHNxbG9kYmN3LnNvwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCBbLl0gY29weV9hbmRfY29udmVydF9maWVsZDxicj4NCsKgwqAgNC41 NyXCoCBiY19zcWxzZWxlY3TCoCA8YSBocmVmPSJodHRwOi8vbGlicHRocmVhZC0yLjE3LnNvIj5s aWJwdGhyZWFkLTIuMTcuc288L2E+wqDCoMKgwqDCoMKgwqDCoCBbLl0gcHRocmVhZF9tdXRleF91 bmxvY2s8YnI+DQrCoMKgIDQuNTElwqAgYmNfc3Fsc2VsZWN0wqAgPGEgaHJlZj0iaHR0cDovL2xp YnB0aHJlYWQtMi4xNy5zbyI+bGlicHRocmVhZC0yLjE3LnNvPC9hPsKgwqDCoMKgwqDCoMKgwqAg Wy5dIHB0aHJlYWRfbXV0ZXhfbG9jazxicj4NCsKgwqAgNC40MCXCoCBiY19zcWxzZWxlY3TCoCBw c3Fsb2RiY3cuc2/CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIFsuXSBTT0NLX2dldF9uZXh0 X25fYnl0ZXMucGFydC4yPGJyPg0KwqDCoCAzLjkzJcKgIGJjX3NxbHNlbGVjdMKgIHBzcWxvZGJj dy5zb8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgWy5dIFBHQVBJX0V4dGVuZGVkRmV0Y2g8 YnI+DQo8L3A+DQo8cD5Gb2xsb3dpbmcgcGF0Y2ggcmVtb3ZlcyB0aGUgb25seSBteWxvZygpIGNh bGwgKG5vdCBhIG1hY3JvKTwvcD48cD5mcm9tIHRoZSBQb3N0Z3JlU1FMIE9EQkMgZHJpdmVyIGZy b20gY29uc3VtaW5nIENQVTo8L3A+DQo8cD4oTVlMT0coKSBtYWNybyBpcyB1c2VkIHRvIGF2b2lk IHRoZSBoZWF2eSBteWxvZygpIGNhbGwuKTwvcD48cD48YnI+PC9wPg0KPHA+ZGlmZiAtLWdpdCBh L3Jlc3VsdHMuYyBiL3Jlc3VsdHMuYzxicj4NCmluZGV4IDFmNmExMmMuLmVjODk2MDAgMTAwNjQ0 PGJyPg0KLS0tIGEvcmVzdWx0cy5jPGJyPg0KKysrIGIvcmVzdWx0cy5jPGJyPg0KQEAgLTQ2MzIs NyArNDYzMiw2IEBAIFNDX3Bvc19hZGQoU3RhdGVtZW50Q2xhc3MgKnN0bXQsPGJyPg0KwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBnb3RvIGNsZWFudXA7PGJy Pg0KwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIH08YnI+DQrCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgTVlMT0coMCwgJnF1b3Q7YWRkc3RyPSVzXG4mcXVvdDssIGFkZHN0ci5k YXRhKTs8YnI+DQotwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBteWxvZygmcXVvdDthZGRz dHI9JXNcbiZxdW90OywgYWRkc3RyLmRhdGEpOzxicj4NCsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCBzLnFzdG10LSZndDtleGVjX3N0YXJ0X3JvdyA9IHMucXN0bXQtJmd0O2V4ZWNfZW5k X3JvdyA9IHMuaXJvdzs8YnI+DQrCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcy51cGR5 ZXMgPSBUUlVFOzxicj4NCsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXQgPSBQR0FQ SV9FeGVjRGlyZWN0KGhzdG10LCAoU1FMQ0hBUiAqKSBhZGRzdHIuZGF0YSwgU1FMX05UUywgMCk7 PGJyPg0KPC9wPg0KPHA+PGJyPg0KPC9wPg0KPHA+QmVzdCBSZWdhcmRzLCBNYXJrbyBSaXN0b2xh PC9wPg0KPHA+LS08YnI+PC9wPjwvZGl2PjxkaXYgZGlyPSJsdHIiIGNsYXNzPSJnbWFpbF9zaWdu YXR1cmUiIGRhdGEtc21hcnRtYWlsPSJnbWFpbF9zaWduYXR1cmUiPk1hcmtvIFJpc3RvbGE8YnI+ U29mdHdhcmUgZGV2ZWxvcGVyPGJyPkJDIFBsYXRmb3Jtczxicj48YnI+bS4gKzM1OCA0MCA1OTMg MjE4Mjxicj5lLiA8YSBocmVmPSJtYWlsdG86bWFya28ucmlzdG9sYUBiY3BsYXRmb3Jtcy5jb20i IHRhcmdldD0iX2JsYW5rIj5tYXJrby5yaXN0b2xhQGJjcGxhdGZvcm1zLmNvbTwvYT48YnI+dy4g PGEgaHJlZj0iaHR0cDovL3d3dy5iY3BsYXRmb3Jtcy5jb20iIHRhcmdldD0iX2JsYW5rIj53d3cu YmNwbGF0Zm9ybXMuY29tPC9hPjwvZGl2PjwvZGl2Pg0K --0000000000007dbc1005c1c1623d--