- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-07-2019 09:47 AM
I am running a fix script to update several million CI records. We are tracking the time it takes for the script to run and complete. Can I expect the performance (script execution speed, time taken to complete etc.) in PRD to be any different than in sub-PRD instances?
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-07-2019 01:27 PM
No. While you may have overall more horsepower in production, each processor has roughly the same resources available. With a fix script being single threaded, you don't get any benefits from a larger production environment.
I've run many large scripts, and done a lot in the way of performance testing them before releasing to production. I've never been surprised with a significantly different run time in prod then what I calculated.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-07-2019 10:02 AM
Performance can be different between sub prod and PROD instances since number of records may be different in both instances.
Also, it depends on your fix script code you are executing.
Regards,
Sachin
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-07-2019 10:07 AM
I would not expect the speed that it processes each transaction in the fix script to be any different in your production. The only variable is the number of rows it is interacting with.
Several million rows can definitely take a long time. If you can break it up into smaller jobs, you can submit several fix scripts that can be picked up by different processors, and then you won't be single threaded. Do this too much though, and you can definitely impact your system performance.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-07-2019 10:18 AM
Simple answer is: You cannot measure the execution time or run time directly before executing the fix script.
But, you can measure it indirectly. I have been in this exact situation.
Perform an experiment in Sub-Prod. You can find the execution time for specific run by clicking the UI action named "Show Progress Workers" [Screen shot attached below]
Once you click this UI action, you will be directed to a page where you can see all the stats of each run, example screen shot is attached below
So say your sub prod has 1000 rows and your Fix script took 10 seconds to execute. So simple math is to say it processed 100 rows per second. Applying that same math, if you have 2000 rows in Production, it will take 20 seconds [somewhere around that number].
Execution Time is the time that your program takes to execute. For example, 10 seconds, or 10 milliseconds.
Running time might be used interchangeably with execution time (how much time it takes for your program to terminate)
References:
what is the difference between running time and execution time?
Thank you,
Aman Gurram
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-07-2019 01:15 PM
Thanks for the responses. Assuming the PRD and sub-PRD instances are clones of each other, are there cluster/node configurations that Servicenow would have done differently for a production instance versus a non-PRD instance so that we see some efficiencies/gains on this front in PRD?