go to post Oliver Thompson · Nov 25, 2024 You could write your own std deviation ClassMethod() in ObjectScript. You then have the flexibility to use that however you want. The logic doesn't look that complex, and for a few thousand rows would run fast enough in Object Script.See link below for the calculations you need to do: https://www.scribbr.com/statistics/standard-deviation/You can validate your results with the STDDEV(SQL) method, which will also allow you to compare performance.
go to post Oliver Thompson · Oct 7, 2024 For me, if I was faced with 2 possible solutions and was concerned about performance, I would simply test both solutions within a loop and time how long it takes to do n number of loops.Something like this Class Performance.Test [ Abstract ]{ ClassMethod SolutionA() As %Status{ set x=9 quit $$$OK} ClassMethod SolutionB() As %Integer{ set x=9 quit 1} ClassMethod TestSolutions(){ write "SolutionA Start : "_$zdatetime($ztimestamp,3,1,3),! for i=1:1:90000000 { set ret=..SolutionA() } write "SolutionA End : "_$zdatetime($ztimestamp,3,1,3),! write "SolutionB Start : "_$zdatetime($ztimestamp,3,1,3),! for i=1:1:90000000 { set ret=..SolutionB() } write "SolutionB End : "_$zdatetime($ztimestamp,3,1,3),!} }
go to post Oliver Thompson · Sep 5, 2024 I have just had to do something similar, but needed it to be Case Sensitive.The only solution that I could find that would be Case Sensitive was the SQL solution.
go to post Oliver Thompson · Aug 28, 2024 When you JOB a process you can get the ID of the child Process with $ZCHILD. You can then check to see if that process is still running. Not sure whether you can HALT the process or not, and depending on what it is you are running, it might not be a good idea.
go to post Oliver Thompson · Jul 25, 2024 For quick and dirty logging I use: kill ^Log at the beginning of the ClassMethod/Routine Then use the following in your code to track what is going on:set ^Log($increment(^Log))="Your message goes here. For example VariableX="_VariableX Run your REST API and then take a look at ^Log. You can either put lots of "set ^Log..." statements in, or just a few to narrow down where the issue is and just keep adding them till you get to the code in question. This might take a few iterations, but it generally works for me.
go to post Oliver Thompson · Jul 1, 2024 Deferred only relates to the unlock command, see here for some more details. Basically, the unlock does not happen immediately, it will be done at the end of the transaction. ideally, this is what you want, and as long as your transactions are quite quick, it won't be an issue. https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls...
go to post Oliver Thompson · Jun 20, 2024 One other thing to note is that you should not put any long running processes in %ZSTART as they will hold up the Start process. If you have to, then consider JOBbing it off to a separate process, so it can run in the background and allow the rest of the startup steps to run in parallel.
go to post Oliver Thompson · Jun 19, 2024 You can customise the refresh at the Backup Stage, you can define the list of Databases that will be Backed up before running the Backup. See here for more details:https://docs.intersystems.com/iris20241/csp/docbook/DocBook.UI.Page.cls?... But please make sure you test this in a development environment before touching your live system.
go to post Oliver Thompson · Jun 17, 2024 Have you tried F11? You may have to change the settings in vscode to recognise F11 as a Debug Command, rather than the "Fullscreen" command. Apologies, I don't have vscode installed, so can't check myself. See here for more information:https://stackoverflow.com/questions/29955146/unable-to-debug-with-f11-wi...
go to post Oliver Thompson · Jun 13, 2024 Thanks for the clarification. The answers from @Manel Trèmols and @Ramil TK should both work for you. You might have to do some additional formatting depending on what datePart you getting the difference in. For example if you get the difference in Minutes ("n"), then you will have to convert that into Days, Hours, Minutes etc, so it will depend on what you are expecting in the data and how big those differences might be.
go to post Oliver Thompson · Jun 11, 2024 Can you clarify what you are trying to do please? Are you trying to calculate the difference between the 2 dates/times? If that is the case have a look at the DATEDIFF(..) SQL functions.https://docs.intersystems.com/iris20241/csp/docbook/Doc.View.cls?KEY=RSQ...