I'm a navision newbie, so I hope this question makes sense.
If the query Select * from Sales Header is run in SSMS from a client, then I can see the 150MB of network traffic to give me all the fields for all the records from the SQL server to my pc, but when I open a list form based on the sales header table and jump to the end then to the beginning, only 1 or 2 MB of network traffic is generated? Can someone eplain to me how Navision client uses the network when populating a list form where you can only every see 10 records at a time, even though that are over 150K records. (The T-SQL I am using is copied from Profiler but without the cursor prepexec bits). I am restarting SQL Server between each running for testing.
TIA
0
Comments
2) You can see what is NAV running when you turn the Profiler but you need to catch events like SP:StmtCompleted and SQL:BatchCompleted. Than you will see the actual SQL statements NAV is running...
MVP - Dynamics NAV
My BLOG
NAVERTICA a.s.
No PM,please use the forum. || May the <SOLVED>-attribute be in your title!
When you run 'Select *'... all the data is transferred from the table to the SSMS studio.
On the other hand - as Kine said - NAV uses cursors. To simplify the picture you may think of it as the case when Select *' transfers the result to the SQL Server memory, and PC request only few hundreds at a time. Precisely speaking 500 with default config.
If you jump right to the bottom of the list (table) NAV sends proper FETCH command to grab only last records.
Regards,
Slawek
Dynamics NAV, MS SQL Server, Wherescape RED;
PRINCE2 Practitioner - License GR657010572SG
GDPR Certified Data Protection Officer - PECB License DPCDPO1025070-2018-03