Nav client uses network different to SQL Server

sqlsotn
Member Posts: 7
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
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
-
1) NAV is using cursors to read the data...
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...0 -
[Topic moved from Navision forum to SQL Performance forum]Regards,Alain Krikilion
No PM,please use the forum. || May the <SOLVED>-attribute be in your title!0 -
Hi,
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,
SlawekSlawek Guzek
Dynamics NAV, MS SQL Server, Wherescape RED;
PRINCE2 Practitioner - License GR657010572SG
GDPR Certified Data Protection Officer - PECB License DPCDPO1025070-2018-030
Categories
- All Categories
- 73 General
- 73 Announcements
- 66.6K Microsoft Dynamics NAV
- 18.7K NAV Three Tier
- 38.4K NAV/Navision Classic Client
- 3.6K Navision Attain
- 2.4K Navision Financials
- 116 Navision DOS
- 851 Navision e-Commerce
- 1K NAV Tips & Tricks
- 772 NAV Dutch speaking only
- 617 NAV Courses, Exams & Certification
- 2K Microsoft Dynamics-Other
- 1.5K Dynamics AX
- 320 Dynamics CRM
- 111 Dynamics GP
- 10 Dynamics SL
- 1.5K Other
- 990 SQL General
- 383 SQL Performance
- 34 SQL Tips & Tricks
- 35 Design Patterns (General & Best Practices)
- 1 Architectural Patterns
- 10 Design Patterns
- 5 Implementation Patterns
- 53 3rd Party Products, Services & Events
- 1.6K General
- 1.1K General Chat
- 1.6K Website
- 83 Testing
- 1.2K Download section
- 23 How Tos section
- 252 Feedback
- 12 NAV TechDays 2013 Sessions
- 13 NAV TechDays 2012 Sessions