Yes. In the RZ1 – Suburban Zone, subdivision may be permitted where the proposal meets the relevant planning requirements.There are two main types of subdivision that may apply, depending on your proposal:
- Block subdivision – where one block is divided into two or more separate blocks that can each accommodate a dwelling (subject to planning requirements).
- Unit title subdivision – where a completed multi-unit development is subdivided into individual unit titles.
ACT Government – Advisory Note 19: Block Subdivision versus Unit Title Subdivision in Residential Zones -Block Subdivision vs Unit Title Subdivision (Residential Zones)
Last reviewed 19 September 2026
Yes, you can sell a newly created block without constructing a dwelling on it in the ACT, but there are conditions.
Under the ACT planning rules, a block subdivision allows a residential block (RZ1–RZ5) to be subdivided without first building the new dwelling/s. This means you can create a new vacant residential block and sell it. However, the subdivision approval must show that a compliant dwelling could be built on each new block.
If the newly created block remains undeveloped, the new Crown lease will include development covenants requiring the construction of a dwelling within a specified timeframe. In addition, Minister’s consent may be required before transferring (selling) the Crown lease if the dwelling has not been constructed.
Reference:ACT Government – Advisory Note 19: Block Subdivision versus Unit Title Subdivision in Residential Zones – Block Subdivision vs Unit Title Subdivision (Residential Zones)
Last reviewed 19 September 2026
The difference between these residential development types is that a secondary residence is a second dwelling on a block that remains subordinate to the principal dwelling on that block, whereas dual occupancy housing is the use of land that was originally used or leased for single dwelling housing for two dwellings. In contrast, a townhouse development generally consists of multiple dwellings arranged as individual homes within one development site, usually involving a higher density of residential development than a dual occupancy.Reference: Territory Plan 2023, Part G – Dictionary – Territory Plan 2023 | Notifiable instruments
Last reviewed 19 September 2026
The Territory Plan 2023 determines whether a dual occupancy is permitted on an RZ1 property.Under Part E – Zone Policies, E1 Residential Zones Policy, the RZ1 land use table identifies multi-unit housing as a permissible use.While the land use table does not specifically refer to "dual occupancy", Part G – Dictionary defines dual occupancy as a form of multi-unit housing.Therefore, dual occupancy is considered a permissible form of development in RZ1, subject to compliance with the applicable Territory Plan assessment requirements and approval under the Planning Act 2023 (ACT).
Reference: Territory Plan 2023 – Part E, E1 Residential Zones Policy (Land Use Table) & Part G Dictionary (definitions) – https://www.legislation.act.gov.au/ni/2023-540/Current
Last reviewed 19 September 2026
How do I optimize PostgreSQL for a database with over 10 million rows?
Asked by: John Miller Category: Databases Tags: PostgreSQL, Performance, Indexing, SQL Posted: March 12, 2026 Views: 18,429 Votes: 245
Problem
Our PostgreSQL database has grown to approximately 120 million records in the orders table. The application has become noticeably slower over the last six months.
Current environment
Database Version: PostgreSQL 16
CPU: 16 cores
RAM: 64 GB
Storage: NVMe SSD
Operating System: Ubuntu 24.04
Average Daily Inserts: 1.5 million
Table Size
| Table | Size |
|---|---|
| orders | 248 GB |
| customers | 14 GB |
| order_items | 410 GB |
| products | 8 GB |
Current indexes
- Primary Key on order_id
- Index on customer_id
- Index on created_at
- Composite index on (status, created_at)
Slow query example
SELECT * FROM orders WHERE customer_id = 48129 AND status = 'Completed' ORDER BY created_at DESC LIMIT 50;
Execution time
Average: 4.8 seconds
Expected
Less than 200 milliseconds.
Things we already tried
- VACUU
- VACUUM FULL
- ANALYZE
- Increased shared_buffers
- Increased work_mem
- Restarted the database
None of these made a significant improvement.
Question
What are the best optimization strategies for a PostgreSQL database at this scale?
————————————————————
Answer 1
Score: 612
The first thing you should do is run EXPLAIN ANALYZE. Without an execution plan, everyone is just guessing.
General recommendations
- Avoid SELECT *
- Return only required columns.
- Create covering indexes.
- Verify index selectivity.
- Archive historical data.
- Partition very large tables.
Example
Instead of SELECT *
Use SELECT order_id, customer_id, status, created_at
Partitioning example
Monthly partitions
orders_2026_01
orders_2026_02
orders_2026_03
Advantages
- Smaller indexes
- Faster scans
- Easier maintenance
- Better cache utilization
————————————————————
Answer 2
Score: 401
Check whether your indexes are actually being used.
Run EXPLAIN ANALYZE
If PostgreSQL performs a sequential scan, your index may not be useful.
Common reasons
- Statistics are outdated
- Low index selectivity
- Incorrect query design
- Function applied to indexed column
Bad
WHERE LOWER(email) = 'john@example.com'
Better
Store lowercase values and query directly.
————————————————————
Performance Checklist
[ ] Enable pg_stat_statements
[ ] Monitor slow queries
[ ] Review missing indexes
[ ] Remove unused indexes
[ ] Increase effective_cache_size
[ ] Tune autovacuum
[ ] Archive old data
————————————————————
Important Metrics
Connections
Average: 143
Peak: 287
Transactions per second
Average: 3,250
Maximum: 5,940
Cache Hit Ratio
99.2%
Index Hit Ratio
98.8%
————————————————————
Recommended Maintenance Schedule
Daily
- Vacuum
- Backup
- Monitor replication
Weekly
- Analyze tables
- Review slow queries
Monthly
- Reindex heavily updated tables
- Archive historical data
————————————————————
Useful Commands
VACUUM ANALYZE orders;
REINDEX TABLE orders;
ANALYZE orders;
————————————————————
Related Questions
How does PostgreSQL table partitioning work?
What is the difference between VACUUM and VACUUM FULL?
When should I use BRIN indexes?
How can I reduce index bloat?
————————————————————
Community Tips
"Measure before you optimize."
"Indexes speed up reads but slow down writes."
"Always benchmark before changing configuration."
————————————————————
Accepted Answer Summary
The issue was caused by missing composite indexes and lack of table partitioning. After implementing
- Composite covering indexes
- Monthly partitioning
- Removing SELECT *
- Archiving older data
Results
Query time
Before: 4.8 seconds
After: 74 milliseconds
Database Size
Before: 680 GB
After: 455 GB
CPU Usage
Before: 91%
After: 38%
Memory Usage
Before: 58 GB
After: 34 GB
————————————————————
Final Recommendation
Priority 1 Create better indexes.
Priority 2 Run EXPLAIN ANALYZE.
Priority 3 Partition large tables.
Priority 4 Archive historical records.
Priority 5 Continuously monitor query performance.
Last Updated April 4, 2026
Last reviewed 19 September 2026
Residential Zones Policy Land Use Table permits secondary residence for residential zones. The proposal must also comply with the relevant assessment requirements and obtain any required approval under the Planning Act 2023 (ACT).Reference: Territory Plan 2023 – Part E, E1 Residential Zones Policy (Land Use Table) – https://www.legislation.act.gov.au/ni/2023-540/Current
Last reviewed 19 September 2026