Our client migrated from ancient SQL Server 2008 R2 to 2017 Express. Limit of 4 cores, 1 GB RAM and 10 GB storage is not problem, it's rather small app and Express edition is free even for commercial use.
There are some things missing, but fortunately all I needed have a workaround. The toughest time I had migrating all the date conversion method combos (using CONVERT, GETDATE or DATEADD) which were incompatible for some reason and silently broke many procedures.
With e-mail notifications it was mostly a lot of unknowns for me, because I'm not a database specialist nor server admin (albeit Windows Server).
It may not have a GUI, but it still works. You only need to configure it via SQL commands to msdb.dbo.sysmail*
. Bojan Petrovic wrote an excellent tutorial on SQLShack.
I created a BAT file and added it to Task Scheduler to run every day at 7:00. In there is a call to SQL Server on “dbserver.local” machine using sqlcmd
command. It will call p_alert
procedure in database “dbname” with argument 123
:
For @out
variables you can pass null
: "EXEC dbo.p_alert null"
.
On this topic I found another great article by Bojan Petrovic on SQLShack.
I wanted to log errors into a table, so I created it:
And then used classic TRY/CATCH approach:
https://pastebin.com/4Afm45AH
https://en.wikipedia.org/wiki/Fast_inverse_square_root
www.beyond3d.com/content/articles/8/ www.beyond3d.com/content/articles/8/www.beyond3d.com/content/articles/15/ www.beyond3d.com/content/articles/15/www.lomont.org/Math/Papers/2003/InvSqrt.pdf www.lomont.org/Math/Papers/2003/InvSqrt.pdfbetterexplained.com/articles/understanding-quakes-fast-inverse-square-root/betterexplained.com/articles/understanding-quakes-fast-inverse-square-root/
Even I still adore Data Particles I “invented” almost 10 years ago, without proper tools (I struggle to create) it's quite hard to manage the data. I encounter it from time to time when I need to fix some order in our intranet app.
So for QB I decided to move from Data Particles to JSON structure I created for Qedy. It suits the purpose rather well and I can improve it to be mutually beneficial.
I created a simple parser, that runs for every ID, which is time consuming, but there's no rush.
One common method for approximating square roots with good performance is the Newton-Raphson method. Here's a simplified example:
I recreated this function in Excel (=0,5*(B2+$B$1/B2)
) to see how many passes start to produce the same output. Number up to 20 are usually fine with 3, but higher the number is, more iterations it requires to get to it. Input around 100k need 9 passes, around 1M 13 passes.