---
title: Performance & Scaling
slug: performance-and-scaling
createdAt: 2025-10-29T21:30:02.175Z
---

Connector performance depends on the size of the source dataset, schema complexity, and workflow configuration. Optimising each stage ensures efficient imports and timely change processing.

# Key Performance Factors

| Area              | Description                                           | Optimisation Tip                                                    |
| ----------------- | ----------------------------------------------------- | ------------------------------------------------------------------- |
| **Import**        | Reading from source (file, SQL, API).                 | Use indexes and minimal column sets. Avoid SELECT \*.               |
| **ProcessImport** | Detecting differences between import and data tables. | Ensure both tables have primary keys and statistics are up-to-date. |
| **Process**       | Executing change handlers.                            | Adjust batch sizes and parallelise connectors across instances.     |
| **History Table** | Logging all change events.                            | Archive or purge older history rows regularly.                      |

# Import Optimisation

- Use **stored procedures** for SQL providers — they can pre-filter and aggregate data.&#x20;
- For large CSVs, split into smaller batches and use the batchSize parameter.&#x20;
- Run imports from local disks rather than network shares for better throughput.&#x20;
- Validate file encoding (UTF‑8) to prevent parsing overhead.&#x20;

# ProcessImport Optimisation

- Index the key column on both **import** and **data** tables.&#x20;
- Keep non-key columns lightweight; large text fields slow comparisons.&#x20;
- Set maxChanges thresholds relative to expected delta sizes.&#x20;
- Use **incremental imports** (WHERE LastModified > @LastRun) when possible.&#x20;

# Process (Handler) Optimisation

- Tune batchSize in the process options. Typical range: 100–500.&#x20;
- If handlers run scripts or submit jobs, verify downstream systems can absorb the load.&#x20;
- Use separate connectors for unrelated domains instead of one large workflow.&#x20;
- Schedule high-volume connectors during low-traffic windows.&#x20;

# Scaling Out

- Multiple connectors can run concurrently on the same instance if resources permit.&#x20;
- Use multiple Activate servers to distribute connector workloads.&#x20;
- Monitor **CPU** and **SQL I/O** during heavy runs to identify bottlenecks.&#x20;
- Review Windows Task Scheduler or Orchestrator timing to avoid overlap.&#x20;

# Long-term Maintenance

- Archive history tables by date or row count.&#x20;
- Periodically review indexes for fragmentation.&#x20;
- Measure average import duration and compare against baselines.&#x20;
- Reassess connector scheduling after major data source changes.&#x20;
