nav network protocol: native vs. sql database

stefan668668
Member Posts: 3
Hi,
in our navision system one program code searches for certain strings and values in a lot of database rows resulting in a lot of tcp/ip messages between the client and the server. Even after everything is cached the operation takes 25secs for sending the ~128000 very small packets (84% < 320 bytes). The behaviour is nearly the same on physical 1 gigabit network as on a virtual test-setup where client and native server runs on the same computer. So the network protocol overhead is the "problem".
Is there a fundamental change in how a "sql-navision client" would execute the code on the client and access the sql-database on the server?
Hope you get the problem
Greetings, Stefan
in our navision system one program code searches for certain strings and values in a lot of database rows resulting in a lot of tcp/ip messages between the client and the server. Even after everything is cached the operation takes 25secs for sending the ~128000 very small packets (84% < 320 bytes). The behaviour is nearly the same on physical 1 gigabit network as on a virtual test-setup where client and native server runs on the same computer. So the network protocol overhead is the "problem".
Is there a fundamental change in how a "sql-navision client" would execute the code on the client and access the sql-database on the server?
Hope you get the problem

Greetings, Stefan
0
Comments
-
On sql server you have several protocols to choose from. Shared Memory, Named Pipes, and TCP/IP Sockets.
Shared memory bypasses the network stack so it's the most efficient protocol.
Here is the detail
http://msdn.microsoft.com/en-us/library/ms187892.aspx
Nav I believe only uses Named pipes and TCP/IP.
So you would get the same performance. Running the same C/Side code.
If you are looping through ~100K records, you probably would have the same performance in C/Side.
One way you bypass all this CAL code is using ADO. This allows you to let sql do the processing for you and return only the data set you really need.0 -
oh great, thanks for the quick answer!
so do I understand that correctly that the client basically stays the same and just the database-backend changes?
greetinx0 -
Yes. But you have more tools to improve your code to perform better.
For example. Some customer running Inventory valuation report take 10 hours. With sql and ADO. you can run it within 4 minutes.0
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
- 322 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