---
title: "Connor McDonald (@connormcdonald) | Hashnode"
description: "I help people succeed with the Oracle Database. Read the latest articles by Connor McDonald on Hashnode."
url: "https://hashnode.com/@connormcdonald"
---

@connormcdonald

# Connor McDonald

@connormcdonald · Perth, Australia · Joined April 2022

I help people succeed with the Oracle Database

[Website](http://connor-mcdonald.com/)

## Comments

[Just a heads up - pretty sure you're still up for a multi-tenant license option if you choose to extend past 3 pluggables](https://hashnode.com/posts/every-agent-gets-its-own-database-joelkallmanday/6acfb66fe0acbb53ab8edc64/comment/6ad01ff71086237f80a51475)

Comment · Article · Oct 15 · [Every Agent gets its own Database #JoelKallmanDay](https://hashnode.com/posts/every-agent-gets-its-own-database-joelkallmanday/6acfb66fe0acbb53ab8edc64)

[The text about Leeds United being a great football team seems to be a bug :-)](https://hashnode.com/posts/oracle-apex-vs-oracle-forms-1412-new-features/683422ed4640814e331ad184/comment/683505021ae7f95cf100ccef)

Comment · Article · May 27, 2025 · [Oracle APEX vs. Oracle Forms 14.1.2 New Features](https://hashnode.com/posts/oracle-apex-vs-oracle-forms-1412-new-features/683422ed4640814e331ad184)

[Fantastic read. In terms of connection pool sizing, I highly recommend the work of Toon Koppelaars. (reference: https://www.neooug.org/gloc/Presentations/2019/Koopelears\_ConnectionPoolSizingConcepts.pdf) which recommends pool sizing as: min = max = initial. The TL;DR rationale from the presentation for that recommendation is: unused pool sessions are idle, they do nothing and consume minimal resources because the last thing pool-based apps do is free their resources when they give back a connection. If they dont, then you've got an app bug not a connection pool config issue. the max size setting (by definition) is what you are prepared to let your server handle without undue stress, so why would you pick a min/initial less than that, because to do so means yours apps incurring the cost of creating a connection pseudo-randomly. That makes response times variable.](https://hashnode.com/posts/running-ords-standalone-mode/6596bed8365e3f4a248d5e47/comment/659e35634e7b11fc231eb60e)

Comment · Article · Jan 10, 2024 · [Configuration Changes to Make after Installing ORDS Standalone](https://hashnode.com/posts/running-ords-standalone-mode/6596bed8365e3f4a248d5e47)

[Here's a hack :-) Add a GROUP BY and a COUNT SQL> create table demo\_emps ( 2 id number primary key, 3 name varchar2(255), 4 sal number 5 ); Table created. SQL> SQL> insert into demo\_emps values(1, 'martin', 100); 1 row created. SQL> SQL> create materialized view log on demo\_emps 2 with rowid, sequence, commit scn, primary key (sal) 3 including new values; Materialized view log created. SQL> SQL> create materialized view demo\_emps\_mv 2 refresh fast on commit 3 as 4 select 1 grp, max(sal) max\_sal, count(\*) c 5 from demo\_emps 6 group by 1 7 ; Materialized view created. SQL> SQL> select \* 2 from demo\_emps\_mv 3 ; GRP MAX\_SAL C ---------- ---------- ---------- 1 100 1 SQL> SQL> insert into demo\_emps values(2, 'sally', 200); 1 row created. SQL> SQL> commit; Commit complete. SQL> SQL> select \* 2 from demo\_emps\_mv 3 ; GRP MAX\_SAL C ---------- ---------- ---------- 1 200 2 SQL> SQL> select staleness 2 from user\_mviews 3 where 1=1 4 and mview\_name = 'DEMO\_EMPS\_MV' 5 ; STALENESS ------------------- FRESH SQL> SQL> update demo\_emps 2 set sal = sal + 1 3 ; 2 rows updated. SQL> SQL> commit; Commit complete. SQL> SQL> select \* 2 from demo\_emps\_mv 3 ; GRP MAX\_SAL C ---------- ---------- ---------- 1 201 2 SQL> SQL> select staleness 2 from user\_mviews 3 where 1=1 4 and mview\_name = 'DEMO\_EMPS\_MV' 5 ; STALENESS ------------------- FRESH SQL> SQL>](https://hashnode.com/posts/data-integrity-for-fast-refresh-materialized-views-with-aggregates-and-updatesdeletes/659be3d033228dd6ee298db5/comment/659c0b4bb183b8ce2c36dc37)

Comment · Article · Jan 8, 2024 · [Data Integrity for Fast Refresh Materialized Views with Aggregates and Updates/Deletes](https://hashnode.com/posts/data-integrity-for-fast-refresh-materialized-views-with-aggregates-and-updatesdeletes/659be3d033228dd6ee298db5)
