UNPKG

bc-code-intelligence-mcp

Version:

BC Code Intelligence MCP Server - Complete Specialist Bundle with AI-driven expert consultation, seamless handoffs, and context-preserving workflows

79 lines (60 loc) 3.83 kB
--- title: "MaintainSIFTIndex Property Behavior" domain: "dean-debug" difficulty: "intermediate" bc_versions: "14+" tags: ["sift", "performance", "indexing", "optimization", "table-configuration"] prerequisites: ["sift-basics", "table-keys"] related_topics: ["sift-tuning", "key-optimization"] samples: "samples/maintainsiftindex-examples.md" --- # MaintainSIFTIndex Property Behavior ## Overview MaintainSIFTIndex controls whether Business Central automatically maintains SIFT index structures for a key during data modifications. This property directly impacts both query performance and modification overhead, requiring careful balance between read and write operations. **Critical Decision**: Set MaintainSIFTIndex=Yes only when SIFT queries significantly outweigh modification operations on the indexed fields. ## Property Behavior Analysis ### MaintainSIFTIndex=Yes - **Real-time index updates** during INSERT/MODIFY/DELETE operations - **Immediate SIFT availability** for queries without rebuild delays - **Higher modification overhead** due to index maintenance - **Consistent query performance** regardless of data changes ### MaintainSIFTIndex=No - **Deferred index maintenance** until SIFT queries execute - **Lower modification overhead** during data entry operations - **Potential query delays** while indexes rebuild on first access - **Variable query performance** based on index freshness ## Performance Trade-off Framework ### Use MaintainSIFTIndex=Yes When - **High query frequency** on SIFT fields (>10x modification rate) - **Real-time reporting requirements** demand immediate data availability - **Batch processing scenarios** where query performance is critical - **Read-heavy workloads** with infrequent data modifications ### Use MaintainSIFTIndex=No When - **High modification frequency** exceeds query requirements - **Data entry intensive operations** where speed is paramount - **Batch import scenarios** with subsequent query phases - **Memory-constrained environments** requiring reduced overhead ## Decision Criteria Matrix ### Workload Assessment Evaluate modification-to-query ratios for each key. Keys with modification rates >3x query rates typically benefit from MaintainSIFTIndex=No, while query-heavy keys (>5x query rate) should use MaintainSIFTIndex=Yes. ### Resource Considerations Consider available memory and CPU resources. High-modification environments with limited resources may require selective MaintainSIFTIndex=No settings to maintain overall system performance. ## Implementation Best Practices ### Strategic Configuration - **Profile actual usage patterns** before setting property values - **Monitor SIFT performance metrics** after configuration changes - **Document rationale** for each MaintainSIFTIndex decision - **Regular reassessment** as business processes evolve ### Testing Approach Test both settings under realistic data volumes and usage patterns. Performance differences may not be apparent with small datasets but become critical at production scale. ## Common Configuration Mistakes ### Anti-Patterns to Avoid - **Default Yes everywhere** without workload analysis - **Inconsistent settings** across related keys without justification - **Ignoring modification overhead** in data-entry intensive processes - **Setting without monitoring** performance impact post-implementation ### Validation Criteria Verify configuration effectiveness through SIFT performance monitoring, modification operation timing, and overall system resource utilization patterns. *Complete SIFT optimization guide: see SIFT pattern documentation* *Implementation samples: see samples/maintainsiftindex-examples.md* *Performance monitoring: see SIFT metadata indexes documentation*