Poor Performance in Microsoft Navision

hello, we have a big probllem with navision (Client 3.7, server unknown). it lasts up to 60 seconds for one calculation. we made serveral tests and these are the results for always the same operation on several client-pc´s and the client running in the server. -client running on server: 12 seconds -client pc 1(GBit-Lan): 30 seconds -same pc, but navision as standalone: 3 seconds -client-pc 2 (faster pc than client-pc 1, Gbit Lan): 60 seconds -client-pc 3 (slowest pc, 100 MBit Lan): 30 seconds It seems to be a problem with our network, but i have no idea. the server is a windows 2003 server (p4, 2.5 GHz, Gbit-lan, no other jobs). wins-, email-, print- and file server for other applications is done by a second server (older model, 1300 MHz, 1024 MB Ram, Gbit Lan) We have no DNS-Server, but a DNS Proxy (mini-dns-server) done with a bintec router/brick. the navision-server has it´s own domain, which ca not be managed by the bintec. so we have the navision-server in the hosts-file. there are 10 clients, but on all it lasts at least 30 seconds. any ideas? regards Matthias

Have you tried starting the client monitor? This shows the transactions and the time it takes. Maybe you should add some key optimalisation. There is also a performance document on your product CD.

Thank you so far, what´s the file name of the monitor? [:o] I´m a bloody beginner in Navision, But Our Navision Supporters are not able to find the problem.[:(!] What di you mean with key otimalism?

The clientmonitor is available in the tools menu just below the debugger. Do you now a little of databases? If you startup the clientmonitor you can see all the read and write transactions in the database. Look for readtransactions with a lot of records read.

Matthias It also depends on what you are doing. Navision brings the data down to the PC, then the work is done on the local PC. Check what is running on the local PC. With Windows, over time a lot of “junk” gets loaded and consumes CPU cycles, slowing down even a 2GHz PC to a crawl. In the “task manager” look at the processes by CPU %. This should give you an idea of what is using up CPU cycles. The other possible suspect is your anti-virus program. It might be set to scan all incoming data. Thus if a LOT of data is coming from the server to the PC, it has to be scanned first. To test this, - do a full system scan of the PC, - then turn OFF the virus detection, - then execute the Navision operation you are having problems with - then turn back ON virus protection And you are right about the network. I have some of my people in a different building, and before they upgraded the link to that building it would take him 5 minutes to run the same report I run in 10 seconds. gud luk Gary

i already deinstalled anti-virus and ther is nothing to do for the pc. as i told the same pc is able to do the calculation in 3 seconds, without a server. the whole time while calculating there is traffic between server and the client. b.t.w. the pc is a 3,8 ghz amd with 1024 mb ram. ther are no other processes taking many ressources. it mus t be a problem with the server or the network, but i can´t find it. other applications are running well.

Have you take a look to the database cache on the server ?

again my problem: bloody beginner [:o] wher can i set up the database cache? i fond a setup for the database cache on the clients. but there was no difference between 8000 kbyte and 80000 kbyte.

Please read the w1w1ism.pdf document on your product CD. There is also the performance troubleshooting guide you can read.

To me this looks like a baddly designed piece of code. Please can you let us know what you are doing, other wise its a waste of time to chase tails if we don’t know the function. Is it a standard piece of Navision code, or is it some custmization. My guess is that there is code that is emulating filtering ont he client, that should be running on the server.

This table is interesting. -client running on server: 12 seconds -client pc 1(GBit-Lan): 30 seconds -same pc, but navision as standalone: 3 seconds -client-pc 2 (faster pc than client-pc 1, Gbit Lan): 60 seconds -client-pc 3 (slowest pc, 100 MBit Lan): 30 seconds The calculation when done on the server is 12 sec, but when on a standalone PC 3 sec.??? This tells me that there is something different. Has the PC been setup with a server and the same database loaded onto the PC. That is the only way to properly compare. Your fastest PC takes the longest to run? All things being equal, this tells me that there is something at the PC level that is not the same. There is something on the fast PC using CPU cycles. What is this calculation that you are running, and what are the parameters if any? BTW, depending on what you are doing, 30-60 seconds is not a long time to run. I have a Jet Report that takes 20+ minutes to run depending on how much data I select. The only way to do this properly is to also have no one else connected to the Navision server. Because these other people could be affecting the performance. And you need to isolate your Navision server and client, to eliminate network effects from others on the network. You should also have a way of measuring network traffic, to determine if that is part of the problem. BTW is your LAN GBit all the way from the server to the PC? A slower hub/switch in the middle would slow down the entire chain. Gary

quote:

The calculation when done on the server is 12 sec, but when on a standalone PC 3 sec.??? This tells me that there is something different. Has the PC been setup with a server and the same database loaded onto the PC. That is the only way to properly compare.

No, same database, but runnig as standalone installation.

quote:

Your fastest PC takes the longest to run? All things being equal, this tells me that there is something at the PC level that is not the same. There is something on the fast PC using CPU cycles.

its the same, if there are many or no other applications running on the pc.

quote:

What is this calculation that you are running, and what are the parameters if any?

tomorrow i´ll have mire details about the calculation

quote:

BTW is your LAN GBit all the way from the server to the PC? A slower hub/switch in the middle would slow down the entire chain.

the navision server, the slow client and the other server are stranding side by side, connected with an dlink 16 port gigabit switch thank you so far, more details tomorrow

Hi matthiasb, its very hard to diagnose this without knowing what calculation you are running. I think you can gain greater imporvements in optimizing the code if it is a code issue, than trying to resolve the hardware. Something as simple as changing a line such as: IF A <> B THEN CURRREPORT.SKIP; to SETRANGE(A,B); could be the cause of this problem.

Happy new year to all and especially the friendly helpers. Now some details. The Calculation is an individual customization. It calculates the price to produce one, five or ten articles. Fot this it needs the whole article-database, the cost and time of menwork, the working-plans and so on. I don´t understand: When it would be a worse peace of code, why is it so fast without server?

ase give some details of the actual code. Is it written as a non printing report or codeunit? How are the tiers structured. To me it looks like ou are scanning the entire database inefficiently. I don’t think it is a key issue, since this would also then be slow on the server. From the extremely limited information you are willing to post, it apears to me that you are transfering too much data (too many records) over the network. The correct use of flow fileds and SIFT fields I am sure can speed this up. What I (we) need to know, is what exactly is your calculation doing. can you layout the data read structure.

Also in scenario 1 above where you run a client, how are you connecting the client to the server?

sorry for few informations. its couse of my bad english and because i don´t use navision myself. i sold the slow clients and some other network components.so i try to find the problem of find out if its a problem caused by meself. we tried it again and found out that the server cpu load is by 20% and the network load by 2% (by windows task monitor) the client cpu load is at 5% and the network load at 2% ->the client has nothing to do. for the navision internas i´ll have to consult our navision suporters. i hope i will get more informations this way. the idea with the code seems to be plausibly, but why neeeds a faster client more time for the same operation? it seems to be a non printing report.

Please ignore all thouse % thingies they are meaningless for Navision, and will just get you to believe you need to spend more hardware money. Did you write the code yourself or did your NSC do it. If the NSC did it, then tey need to analyse what they did wrong and fix it. Do you know anything about the actuall code that is being run?

When you run a routine that scans a lot of records, then I would assume that there is some relational aspect to these records. In Navision if the code has been written by someone with limited Navision experience, then the usual diretion is to scan records, and then search for relations in code. Navision is desigend to work in a specific fashion, and if the rules are not followed, then the code will run slowly. Is important to keep in mind that Navision is True client Server, (in fact its the first accounting application to be client server). Thus Navsion can be very network intesnive. Thus it is importatn to transfer the minimum of data back and forth from client to server. SIFT and Flowfields are designed to help you here. But to foix this issue, it is important to now what the issue is. If your car is going slowly and you don’t know why, and it has 300hp, and is aerodynamic, but you forget to mention that you are also towing a carvan, then without that information, any pointers on how to up the horspower will be useless, since we need first to address the issue of the caravan.

Oh and one more thing. I see time and time again, tat an NSC warns a client not to do somethign, or sggests a proper Navision ay of doing things, but still the client fights,a nd wants to do it the old way. If you have been in this situation, then maybe the code can’t be fixed, and you need to sit with your NSC,a nd address where things are going wrong. I say this, since I really don’t know if maybe the NSC developed something for you, and actually maybe warned you up front that it would be slow.