Performance and Scaling

Focus Areas

  • Narrow scope where practical (ObjID lists, date windows).

  • Reuse ProcessBatch context for traceability.

  • Maintain supporting indexes on frequently filtered columns (Process_ID, LastModified, Workflow_State).

  • Avoid unnecessary full-table scans in recurring jobs.

Index Considerations

Suggested nonclustered index pattern (evaluate fragmentation vs. benefit):

CREATE NONCLUSTERED INDEX IX_<ClassTable>_Process_LastModified
ON dbo.MFCustomer (Process_ID, LastModified);

Large Volume Updates

  • Partition large batches (spMFUpdateTable_ObjIDs_Grouped).

  • Stage candidate keys into a temp table, join back for marking Process_ID.

  • Measure round-trip latency to M-Files; avoid oversaturating vault operations.

Concurrency

Run metadata sync (structure) separate from heavy update cycles to avoid locks during DDL adjustments.

Monitoring

Use: - spMFProcessBatch_Upsert - spMFGetMfilesLog - spMFTableAudit

Example:

EXEC dbo.spMFGetMfilesLog
     @Top = 200,
     @OrderDescending = 1;