Data Management Jobs and its PurposesSummary<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } The DM (Data Management Framework) jobs are installed OOTB as part of net new plugin "DMJob Plugin". The DMJob(s) follows the producer and consumer pattern (Similar to Archiving job which is already using this pattern). This DMJob framework is built to onboard Data management jobs using DM framework. The DMJob is configured in sys_trigger with name "DMScheduler" and is scheduled with repeat interval to run either hourly, 12 hourly or daily. 3 additional tables created with this DM plugin: sys_dm_job: Stores configuration details for each DMJob instance the framework can execute.sys_dm_run: Records every execution ("run") initiated by the producer job, For Example, each DMTableCleaner run typically corresponding to an active table cleaner rule.sys_dm_chunk: Contains the data "chunks" generated for each sys_dm_run, these are processed by consumer jobs. The sys_dm_job table includes the following jobs: DMDocumentIdTableFixerDMRuleBacklogEstimationJobDM Table Cleaner JobDMUnreferencedRecordCleaner DMDocumentIdTableFixer: DocumentIdTableFixer is a Data Management (DM) job used to detect and repair broken document ID references in peripheral tables such as sys_attachment, sys_journal_field, sys_audit, etc. It acts as a data quality repair utility that validates and corrects incorrect table name/parent table references left behind due to data inconsistencies. Use this job when: Archive reparenting failed and left orphaned or incorrect references.Data was manually moved between tables (restore, migration, manual intervention).A past defect resulted in invalid table name values.Customers report missing attachments or journals after archiving.Periodic data quality validation and cleanup is required.DocumentIdTableFixer is corrective (used after data issues already exist). Do not use this job for: Normal archive or restore operations (standard archive reparenting should be used).Real-time fixes (job is slow; targeted SQL updates are more appropriate).Isolated single-record issues (fix manually with an UPDATE statement). FeatureArchive ReparentingDocumentIdTableFixerExecution TimeDuring archive/restoreScheduled or on-demandPurposeUpdate references as part of archiveRepair existing broken referencesPerformanceFast (knows exactly what to update)Slower (requires scanning and validation)Typical UseStandard archive workflowRetroactive data repair DMRuleBacklogEstimationJob: The DmRuleBacklogEstimationJob estimates and tracks the pending workload (backlog) for different Data Management rules. It answers the question: "How many records are waiting to be processed by my DM rules?"(Note: It calculate the estimate for both Active and Inactive Rules. This Job runs daily during off-pick hours). What Problem Does It Solve? Track rule backlog growth/shrinkage over time, Supported Rule Type (Table Cleaner, Archive, Onetime Delete)Detect when backlogs grow faster than processing(archiving, deletion)Identify rules needing optimization(change condition query) The Data Management Console uses data generated by this job to display the Rule Backlog.You can access it at: https://<INSTANCENAME>.service-now.com/now/data-management-console/home. From there: 1. Navigate to any Table view.2. Select the Rules tab. DM Table Cleaner Job: The DMTableCleaner is a multi-threaded table cleanup solution utilizing the DMJob framework. It offers a distinct improvement over the legacy single threaded table cleaner by allowing multiple producers and consumers to operate in parallel. This configuration enables administrators to configure the degree of concurrency to the specific data growth and faster data cleanup needs of your instances. Key Benefits: Parallel Processing: Multiple producers and consumers ensure that timeouts in one thread do not halt the overall cleanup process.Scalability: Admins can configure producers and consumers as needed to accelerate cleaning, especially in large-scale environments.Cost Efficiency: Quicker data cleanup translates to lower disk space usage and reduced costs.Resilience: If any producer or consumer encounters a timeout or error, others continue processing unaffected. More information on Table Cleaner is here: KB2414363 DMUnreferencedRecordCleaner: Unreferenced Record Cleaner (URC) is a ServiceNow platform job designed to safely identify and remove “unreferenced” (orphan) records that point to a parent record that no longer exists in the instance. These orphaned records are incomplete and not usable, but they still consume database space and can negatively affect performance if left unchecked. From the Zurich release, the Unreferenced Record Cleaner Job can be used to safely remove these unreferenced records from the instance. Common examples include: sys_attachment records referencing a deleted task/incidentsys_attachment_doc records whose attachment record no longer exists URC works through rules: Rules define which table to cleanWhat constitutes an unreferenced relationshipSafety thresholds for large tables More information on URC is here: in below KB: KB2444972 Related Links<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } DMTableCleaner | General Overview Unreferenced Record Cleaner - phased rollout Mastering Data Management in ServiceNow: from tracking growth to efficient cleanup Data Management in ServiceNow: Database Compaction – Reclaiming Table Free Space Data Management Console - Instance Data Breakdown