Skip to content
Release: Australia · Updated: 2026-07-09 · Official documentation · View source

Scan Engine definitions: Performance

Scan Engine performance definitions measure the efficiency of a ServiceNow instance, encompassing aspects such as speed, responsiveness, resource utilization, and overall dependability.

Australia definitions

The following performance definitions have been added for the Australia 2026 release:

NumberActiveLevel of FindingUnique ServiceNow ProductShort DescriptionBusiness ImpactSteps to ResolveSupporting Documentation
sn_SE100011Recommend onChange Client Scripts should check for isLoading and returnUser satisfaction can be reduced by performance issues if code in onChange scripts unnecessarily takes up browser timeAdd a condition as in "if (isLoading) return;" as the first statement of the onChange function to check for isLoading and return.Documentation
sn_SE100031Act Auto complete wait time is above maximum limit.Users may experience performance impacts.Adjust the system property glide.xmlhttp.ac_wait_time to be under the recommended threshold.Documentation
sn_SE100061Act Import Set Deleter job should be set to activeIntegrations could suddenly stop working causing downtime to business processes.Set the Active flag to true on the Import Set Deleter Scheduled Script Execution.Documentation
sn_SE100091Act Before Business Rules should not modify records on other tablesIncreased maintenance as other developers that develop on the system need to understand why the before business rule is updating other records.If the business rule should insert/update a record from another table then the business rule should be changed to run after the database operation. Set the value of When to either after or async.Documentation
sn_SE100101Act Client Scripts should not be defined on the Global tableUsers could experience performance impacts.Consider moving this client script to a base table.Documentation
sn_SE100111Act The "Go To" search should not default to using the "contains" operatorUsers could experience performance impacts.Set the value of glide.ui.goto_use_contains to false or delete it.Documentation
sn_SE100121Act Business Rules should not be defined on the Global tableUsers could experience performance impacts.Create a script include to hold the functionality of the global business rule.Documentation
sn_SE100131Act Client-side code should not use GlideRecordUsers could experience performance impacts.Convert any uses of GlideRecord to an asynchronous ajax call. If the client script is onSubmit then use a synchronous ajax call.Documentation
sn_SE100141Act SLA logging level should be set to "notice"Users could experience performance impacts as a result of all the activity on the DB from the logging.Set the value to "notice" if there isn't any need for detailed log messages on SLAs.Documentation
sn_SE100161Recommend Transform Maps generally do not need "Run business rules" enabled.Users could experience performance impacts.deselect the Run Business Rules checkbox if business rules do not need to be run.Documentation
sn_SE100171Act "Update on Iterate" system property should be set to falseBusiness logic could be run without the user's knowledge. Further, this may result in inaccurate data.Set the value to "false".Documentation
sn_SE100181Act JDBC Data Sources should have the "Use last run datetime" option checkedThe additional records being processed on every import could add unnecessary strain to the instance and impact other processes.Ensure that each import is not importing all records every time by using the Use Last Run Datetime option. If you are running a JDBC import, use the last run datetime option in your import set Data Source. For a type of File import, be sure that whatever is generating your files is only adding data that is new, or has been changed.Documentation
sn_SE100191Act Client side code should not use g_form.getReference()g_form.getReference() has a high performance impact, since this method retrieves all fields in the requested GlideRecord when most cases only require one field.Use AJAX calls to make trips to the server and only return the field values that are required.Documentation
sn_SE100201Act Client side code shouldn't use sync AJAX methods (with the exception of an onSubmit client script)Users could experience performance impacts.Use asynchronous AJAX calls (getXML()) to make a trip to the server.Documentation
sn_SE100251Act List views should not allow users to display more than 100 records.Additional impact to database server which may impact other processes.Reset the value of the system property to be 100 (or whatever the standard defined in the scan engine definition is set to).Documentation
sn_SE100271Act Scripts shouldn't use SOAP getResponse()User may experience a timeout waiting for the SOAP response. This will prevent the user from doing any other work.If possible consider passing true to the post() method to make the SOAP request asynchronous. Then process the response through the ECC queue.Documentation
sn_SE100311Recommend GlideAggregate should be used in place of GlideRecord's getRowCount()Additional impact to database server which may impact other processes.If the only purpose of the GlideRecord query is to return a record count, then using GlideAggregate is more efficient. If the data returned from the GlideRecord query will also be processed, then using getRowCount() is ok as that is more efficient than doing both a GlideAggregate and a GlideRecord.Documentation
sn_SE100321Recommend Server side code should not contain unnecessary logging statementsAdditional impact to database server which may impact other processes.Remove any logging/debugging statements from code unless these will be beneficial to have in production.Documentation
sn_SE100331Act gs.setProperty() shouldn't be called within scriptsOther applications may experience performance impacts.Create a new table (and/or use an existing custom table) that will allow the script to update the value without modifying sys_properties within your scripts.Documentation
sn_SE100351Recommend Client side code should not contain the console.log() debugging method in productionThe client-side function console.log could cause errors in certain browser versions. Furthermore, there is a good chance that what's being logged is information you would not want publicly exposed, and that persons with malicious intent could manipulate the script to reflect PII. It is never a good idea to go to production with console logging enabled.Typically debugging isn't needed in production without a reason for it. At minimum, have a property that controls the debugging so it can be easily turned off or on. If using UI16, replace console.log() calls with jslog. The benefits of jslog are that you have to open the JavaScript Debugger Window to view the output, it is compatible with all browsers, and can be left in production since only administrators can open the window. Prior to code promotion to production, console.log statements should be commented out or removed entirely due to security considerations.Documentation
sn_SE100371Act Transform Maps should have coalesced fields indexedAdditional impact to database server which may impact other processes.Create an index for the coalesced fields.Documentation
sn_SE100411Act Limit system logs generated to 50k per dayPerformance could be impacted and/or the possibility of actual errors occurring.Resolve any errors that are occurring in the Logs. Consider reducing the amount of logging messages being generated from scripts.Documentation
sn_SE100421Suggest UI Policies that make fields read only should be converted to ACLsPerformance could be impacted.Consider converting the UI Policy Action (that's sole purpose to make a field read only without a reverse if false condition) into an ACL.Documentation
sn_SE100471Recommend Rows Per Page preference should default to 20 for new usersUsers could experience performance impacts.Reset the value back to 20.Documentation
sn_SE100521Recommend Avoid Dot-Walking to the sys_id of a Reference FieldAdditional impact to database server which may impact other processes.Use the getValue function on the deepest dot-walked reference field to get the sys_id value of the referenced record. Example: (Bad: current.caller_id.sys_id) - (Good: current.getValue(caller_id)).Documentation
sn_SE100841Act Enable the Client Transactions Timings pluginAny performance issues will be difficult to track down without detailed system logs.Activate the plugin.Documentation
sn_SE100881Suggest Lookup variable is selecting unique values against a 'large' tableThis could impact the end user experience as well as performance.Consider using another way to only display unique records. Maybe add a flag to the large table to indicate which values are unique. Create another table altogether and select all values from this table.Documentation
sn_SE100921Act LDAP Server definition should limit attributes retrievedInefficient LDAP import. Exposing sensitive data.Specify the specific attributes that need to be imported in the Attributes field. The Attributes may need to be added to the LDAP Server form layout.Documentation
sn_SE100941Act Limit errors within the system log errors to 200 per day.User experience, data quality, or performance may be negatively impacted.Resolve any errors that are occurring in the Logs.Documentation
sn_SE100951Act Disable debugging in productionUsers may see performance issues in production.Set all debugging properties to false in production.Documentation
sn_SE100961Act Client Scripts shouldn't have an empty script fieldClient side performance will be negatively impacted.Inactivate or delete the client script with no script.Documentation
sn_SE100991Act Default related lists to load after the form loadsImproved user efficiency. Users are able to save a few seconds by being able to start working on a ticket while the related lists load in the background.Add a record to the User Preference table where the User is null and the value is either deferred or ondemand. This will set the default behavior for all users to determine when related lists are loaded. deferred - Load the related list asynchronously after the form has finished loading. ondemand - Load the related list only when the user requests specifically clicks the Load Related Lists UI Action.Documentation
sn_SE101191Suggest Mid Server Clusters should be used to balance the loadConfiguration data may not be updated as discovery may not be running correctly.Create a new Mid Server Cluster and associate any relevant the Mid Servers to the cluster.Documentation
sn_SE101201Suggest Max Queue Size on Mid Server is greater than default valueThis could lead to scans running into high peak business times resulting in poor user experience.Set the value on this Configuration Parameter to 500 (the default value).Documentation
sn_SE101251Act Before/After/Async business rules should not call current.update() to prevent recursionUsers could experience slow response times based on the constant processing.Move the logic to a before business rule and remove current.update().Documentation
sn_SE101261Recommend Display business rules should not modify dataData may be inaccurate until a user opens the form.Remove any logic that results in records being modified.Documentation
sn_SE101281Suggest Database Rotation plugin should be enabledUsers may begin to experience performance issues.Activate the Database Rotation and Database Rotation with Default Tables plugins.Documentation
sn_SE101291Recommend Auto-complete searches using 'contains' should be overridden to use 'startswith'Users could experience performance impacts.Update or insert the glide.ui.ref_ac.startswith and set the value to true.Documentation
sn_SE101321Act Remove unused inactivity monitorsMinor performance impacts to users.Delete the unused inactivity monitor.Documentation
sn_SE101331Act Workflows should not use current.update()Unnecessary processing resulting in a slower instance.Remove current.update() from all workflow activities.Documentation
sn_SE101341Act Avoid using gs.sleep on any of the workflow activitiesPerformance could be severely impacted as all worker threads could be consumed by unnecessary workflow activities.Replace gs.sleep with a timer activity.Documentation
sn_SE101411Suggest Review Slow Scripts that take over 2 mins to execute and have been run over 100 timesSlow performance could impact the user experience.The instance detects scripts that take a long time to execute and records them in the sys_script_pattern table. You can access the table by navigating to System Diagnosis > Stats > Slow Scripts. These should be evaluated for potential cause, and optimizations made as appropriate.Documentation
sn_SE102171Recommend Mid Server Cluster members must not be on the same hostMID Servers on the same host will compete for resources and have a common point of failure if the host machine encounters an issue.Pull MIDs from same host out of the cluster.Documentation
sn_SE102181Suggest Use Cluster or Auto for MID Server SelectionAn individual MID Server may be under-utilized, becoming less cost-effective. An individual MID Server may be over-utilized, reducing performance and resulting in failed jobs and incomplete data.Change discovery schedule MID Server selection method to Specific MID cluster or Auto-Select MID Server.Documentation
sn_SE102191Suggest Discovery Schedules should be location-basedDiscovery jobs spread across locations take longer to complete and process. Additionally, traversing long network routes can degrade performance.Add a location on the discovery schedule.Documentation
sn_SE102211Suggest Discovery Schedules need a Max run timeLong running jobs cause performance issues.Add a value greater than 0 to the Max run time field.Documentation
sn_SE102241Suggest Phases should be named "1"May cause discovery behavior to malfunctionRename phase to "1".Documentation
sn_SE102381Suggest Discovery schedules should be staggeredFailing jobs prevent complete capture of discovery dataSet discovery schedules utilizing the same mid server(s) to start at different times.Documentation
sn_SE102401Suggest MID Server Clusters should consist of more than 1 memberMID Server Clusters with only one host will not be as effective, or efficient at processing jobsAdd additional MIDs to the cluster.Documentation
sn_SE102511Recommend Avoid the use of global UI ScriptsUsers may experience slow performance on forms.Determine if this UI Script needs to be global and takes steps to make it local by unchecking the global flag on the UI Script and updating the appropriate code to make a call to the local UI Script.Documentation
sn_SE102531Suggest Index Suggestions should be reviewed to see if performance can be improvedUsers may experience slow reporting/filtering.Review the suggested index recommendation to determine if acting on the recommendation will improve performance.Documentation
sn_SE102551Recommend Calculated Fields should not call GlideRecord or GlideAggregateHigh performance impacts which may result in long loading times.Consider using a function field or a business rule to replace the calculation. The business rule can perform the calculation when the record is updated.Documentation
sn_SE102561Suggest Calculated Fields should not call script includesHigh performance impacts which may result in long loading times.Consider using a function or business rule to replace the calculation. The business rule can perform the calculation when the record is updated.Documentation
sn_SE102581Suggest Users should not be allowed to load more than 100 records in a list view.The performance impact may result in a poor user experience.Set the default rows per page back to 100 for each user who has changed it.Documentation
sn_SE102591Recommend Read ACLs should not have GlideRecord/GlideAggregate in scriptHigh performance impacts which may result in long loading times.Remove the use of GlideRecord and GlideAggregate for a read ACL. Consider another approach that won't have this much of a performance impact.Documentation
sn_SE102631Recommend System property glide.businessrule.callstack should be set to falsePerformance will be impacted resulting in a slower platform.Remove the property or set it to false.Documentation
sn_SE102761Suggest SOAP Timeout Value should not be greater than 20 minutesAn integration could be interrupted causing data quality issues.Determine a more appropriate timeout value between and 5 seconds and 20 minutes.Documentation
sn_SE102891Act System does not support LDAP password authentication through a MID ServerLarge amounts of logging may result in system performance issues.The Authentication flag should be set to false when the LDAP Server is using a mid server.Documentation
sn_SE102931Suggest Export limit property glide.ui.export.limit not set as per OOBHaving an export limit above 10,000 can create widespread performance issues on the instance.Consider deleting the glide.ui.export.limit sys_property record. This will result in using the platform's hardcoded value of 10,000 records when exporting xml, csv, xlsx, excel, or json records. Be aware that the glide.xml.export.limit, glide.csv.export.limit, glide.xlsx.export.limit, glide.excel.export.limit, glide.json.export.limit system properties will take precedence over the glide.ui.export.limit. Note: discuss with your team before updating this property as this may impact users exporting reports.Documentation
sn_SE102981Suggest No glide.canvas.grid.widget_performance_threshold value set.Potential for slow dashboard loads.glide.canvas.grid.widget_performance_threshold should be set to a value that defines the maximum number of seconds for a widget to render on a dashboard. Consider a value that is a reasonable time for a widget to render so that slow-performing widgets do not break an entire dashboard.Documentation
sn_SE104181Recommend Do Not Create Reference/List Fields on Import TablesMay result in broken references and also loss of dataselect a non-import table for the reference or list field to utilize.Documentation
sn_SE104891Suggest Pattern Sizes set below the minimum pattern sizePerformance may be impacted with pattern sizes set below the default value.Set the system property glide.edge.pattern.min.size the default value of 5.api/now/v1/context_doc_url/CSHelp:installed-with-edge-encryption
sn_SE105131Act Check for scheduled imports running at the same time.Performance may be impacted significantly.Review scheduled imports to determine if any are scheduled for the same time. If so, update the time of one so that it does not coincide with the other.Documentation
sn_SE105261Recommend Reports with long execution timesUser could be waiting for an extended period of time for reports to run.Check filter conditions and turn on SQL for debug assistance to ensure that execution times are optimized.Documentation
sn_SE105291Recommend Automated indicators should be associated with a collection jobData which appears in dashboards will not be current and could cause incorrect trend analysis.Open an existing automated indicator, edit the jobs related list and select the collections or jobs you want to assign, use the arrows to move the jobs to the other list and select save.Documentation
sn_SE105361Act ACL Scripts executing when they shouldn'tThis can have serious impacts on performance and stability. It can also cause unexpected behavior.Check the Advanced checkbox on ACLs if you would like to display the script, or ensure that the script field is empty if you would not like it to run. In most cases a script field should at least confirm that the user is logged in.Documentation
sn_SE105481Act Do not query the audit log in your custom integrations and code.The performance overhead to query from the sys_audit table is very large and will negatively affect the instance.Remove queries to the audit log.Documentation
sn_SE105591Act Avoid Dynamic JEXL Expressions in an EvaluateWhile the code appears to work, it affects a memory resource (called PermGen) in the Java Virtual Machine, which can lead to performance issues and even system outages over time.Use Jelly variables inside g:evaluate tags is to include the attribute jelly="true", then reference a copy of the variable with the jelly. prefix.Documentation
sn_SE105671Act Use AngularJS services rather than window objects.Direct use of window objects creates tightly-coupled code that cannot be properly unit tested or mocked, leading to reduced code quality and reliability. This increases maintenance costs, makes defects harder to detect before production, and can result in unexpected runtime errors that are difficult to diagnose and resolve. Code that cannot be adequately tested has higher risk of introducing bugs during future modifications or upgrades.Replace all uses of window methods with native AngularJS services where possible. Use the following services rather than the window object: $document rather than window.document $interval rather than window.setInterval $location rather than window.location $timeout rather than window.setTimeout $window rather than window The relevant service will need to be injected into the client controller.Documentation
sn_SE105681Suggest Use one-way AngularJS bindings rather than 2-way {​{options.myVar}} for non-dynamic option variablesPerformance is affected when a one-way binding is made 2-way.change "{​{options.my Var}}" to "{​{::options.myVar}}".Documentation
sn_SE105711Act Query Business Rules on HR core tablesPerformance could be severely impacted by additional query business rules within the HR core tablesAvoid the addition of query business rules on HR core tables. Take advantage of other OOB functionalities such as ACLs, roles, or domain separation. ACLs are the preferred method of controlling access to HR datasince these can be cached.Documentation
sn_SE105741Review Use UI Policies Instead of Client ScriptsThe performance will be impactedCreate UI Policies to replace Client Scripts when possible. Consider UI Policies if the client scripts are being used to set fields to mandatory/optional, set fields to visible/invisible, or set fields to enabled/disabled.Documentation
sn_SE105771Recommend Scheduled collection job with high average execution timeA high average execution time would affect the performance and cause lagsEnsure that your database tables are properly indexed for the job's queries. Indexing can significantly speed up data retrieval.Documentation
sn_SE105821Recommend Use the condition field in Business RulesPerformance is affected when conditions are defined in the script rather than the condition builder.Remove the condition from the script and add it to the condition field.Documentation
sn_SE105951Act Performance Analytics Automated Indicators should have valid conditionsThe data collected will be invalid, which would skew the results.Fix the broken condition in the automated indicator.Documentation
sn_SE106121Suggest Remove unused services from client controller.Unused services serve no purpose within the script and may affect performance.Review and remove services that are not used within the widget.Documentation