Alexander Drogin

301 posts

Alexander Drogin banner
Alexander Drogin

Alexander Drogin

@erpthoughts

A Navision/NAV/Business Central developer. I enjoy coding, testing, exploring the depths of code, and writing about my findings.

Malta Katılım Temmuz 2022
65 Takip Edilen153 Takipçiler
Alexander Drogin
Alexander Drogin@erpthoughts·
@ExtensionsF No, it still applies to SaaS. Actually this issue cropped up in a SaaS environment first and I had difficulties reproducing it on my local dev instance. Bulk inserts are enabled in SaaS, no other differences in locks during inserts.
English
0
0
0
10
Extensions-Lab
Extensions-Lab@ExtensionsF·
@erpthoughts Saas has a different table-locking mode and the problem in question is not relevant. or not?
English
1
0
0
31
Alexander Drogin
Alexander Drogin@erpthoughts·
I almost never use the return value of the Insert function in AL, but recently I found it useful in avoiding a specific deadlock situation. And the deadlock itself was a very curious one. keytogoodcode.com/post/buffered-…
English
1
0
6
128
Alexander Drogin
Alexander Drogin@erpthoughts·
@KarolakNatalie I don't expect it to be widely adopted in BC solutions. Never actually heard of any live implementations with columnstore indexes. And that's really the main reason I'd like to hear from people who tried it.
English
0
0
1
45
Erik P. Ernst
Erik P. Ernst@EPErnst·
@erpthoughts @KarolakNatalie Have seen that one a few times too. But I have seen an even worse variant of it: procedure DoSomething(): Boolean begin if MySetupRec.BooleanField = true then begin exit(true); end else begin exit(false); end; end;
English
1
0
2
63
Alexander Drogin
Alexander Drogin@erpthoughts·
@KarolakNatalie @EPErnst Yes, definitely. But you know what really drives me nuts? Constructs like this. Which I've also seen quite a few times. procedure DoSomething(): Boolean begin if MySetupRec.BooleanField = true then exit(true) else exit(false); end;
English
2
0
5
113
Alexander Drogin
Alexander Drogin@erpthoughts·
@DuilioTacconi I don't think that SaaS experience is so unique that even core runtime libraries are totally different. This is a debugger snapshot from a sandbox session. SQL4 returned a row, then three sequential queries return empty set, and the last two run "IF EXISTS".
Alexander Drogin tweet media
English
1
0
1
103
dtacconi
dtacconi@DuilioTacconi·
@erpthoughts Just to be on the same line, I think you are reffering to the lines in the picture. Not debating here that these are in BC dlls - 'course - but if those are executed when db runtime is Azure SQL (or isSaaS).
dtacconi tweet media
English
1
0
0
119
Alexander Drogin
Alexander Drogin@erpthoughts·
I went as far as doing another post on the "if not IsEmpty then FindSet" pattern. Don't beat me too hard for reviving the topic again, but I think this query can shed some light on the old urban legend of the "second roundtrip" of the FindSet function. keytogoodcode.com/post/if-not-is…
English
3
2
11
751
Alexander Drogin
Alexander Drogin@erpthoughts·
@DuilioTacconi Thanks for the note. Right, it's a Docker container. I actually ran into this when I was looking at the server code - counter is in the query command object, so I'm sure this is not a weird fluctuation. But I'll run the test on a sandbox as well to leave no space for doubts.
English
1
0
0
71
dtacconi
dtacconi@DuilioTacconi·
@erpthoughts Interesting. Since u run profiler, I believe this is on a Docker container or any SQL on-prem. Just to be sure it is 100% in the bc bits, have you tried with the same with latest vanilla sanbox in saas? Just out of curiosity.
English
1
0
0
84
Alexander Drogin
Alexander Drogin@erpthoughts·
@arturass I guess guess it may even older, but somehow I never heard about it, and only now found the source of this query.
English
0
0
0
55
Artūras S.
Artūras S.@arturass·
@erpthoughts This is very old feature which I have seen probably from version ~ NAV2015.
English
1
0
1
88
Alexander Drogin
Alexander Drogin@erpthoughts·
@JeremyVyska Exactly, that's the idea I want to convey - there is no silver bullet solution. What works good for reads can backfire on writes and vice versa. Although, when used creatively, SIFT keys can be turned into posting safeguards, like MS did with the new warehouse posting design.
English
0
0
0
49
Jeremy Vyska | #MSDYN365BC MVP
Jeremy Vyska | #MSDYN365BC MVP@JeremyVyska·
@erpthoughts Nice details. It shows that we have to be thoughtful about where we want the time spent - in transaction or after the fact. It makes a nice new option for speed on Update, with still lower delay on Read. But as with all things, it's not a one-solution-fits-all-situation tool,
English
1
0
4
121
Alexander Drogin
Alexander Drogin@erpthoughts·
In a couple of my previous blog posts I was reviewing the benefits and dangers of SIFT views in Business Central. Now I want to take a look at a possible alternative - how indexes with included fields perform compared to SIFT. #dyn365bc keytogoodcode.com/post/covering-…
English
1
3
9
651
Alexander Drogin
Alexander Drogin@erpthoughts·
Recently, I've been practicing my TypeScript skills, and now ʧarm is the result of my exercises. This is a tool allowing intuitive graphical presentation and editing of timelines. github.com/adrogin/tscharm
Alexander Drogin tweet media
English
0
0
2
320