Speed of posting Sales Order

Hi Guys,

A short question…

Is 10-15 min’s to post a Sales Order with 3000+ lines, and approx. 13 dimensions used on each line, fast or slow in Your opinion.

Every line hits an item.

seems reasonable to me, at 10 minutes that would be 600 second, so you would be posting 5 records per second,

at 15 minutes that would be 900 sec for a rate of 3.33 per second. with 13 dimenisions that seems good to me

Hi,

Run time various greatly for running the same codeunit depending on the machine you are running on. We are posting at least 110 orders (on average each order has between 50 to 100 lines) once every month during the shipping period in a single batch. When I tried posting it from my laptop it took more than a hour. When I posted the order on the actual server (dual-Xeon processor) it took between 35 and 40 minutes. The difference is mainly due to:

A. Horsepower and speed of your CPU and RAM size

B. Network traffic between client machine and the server machine. Even if you are on a 100 Mbps LAN, there is still heavy data traffic for NAV. Generally it would be much quicker to run the same long-running batch job on a much more powerful machine via Remote Desktop because Remote Desktop is only sending the changed pixels back, not the actual data.

Hope this helps.

Scott

As scott says, when you get into larger record sets, the client becomes an important component in the equation. In your case there are so many variables that it nearly impossible to answer the question.

So the questions:

  1. Are you running this on a Terminal Server with a 1gig connection to the Navision server (if not you really should be)

  2. Are you automatically posting inventory cost to the G/L?

  3. Do you have analysis views set with auto update?

  4. Is there enough RAM on the machine doing the posting, (check Task Manager to see memory usage)?

  5. Are you using reservations, Lot numbers serial numbers or bins?

  6. Is this done whilst others are using the system, or “off hours”

Also as a rough guide, all things being equal, and nothing complex in place you should be able to comfortably post 50,000 to 150,000 Item lines a day in Navision. But this number does not allow for how the orders get entered, its just assuming that you post them at night with no other users on the system. In general Navision performance issues are not so much related to pure data throughput, but more the locking issues.

Which database are you using? When working in SQL, disabling maintenance of SiftIndexes (on sales line table) can greatly improve posting performance.

He is not asking how to speed it up, although that might be his next question,

but the question is, is this fast or slow in your opinion,

for our system, this would be about average, which is what I stated above. But I too and wondering if this is a good speed. Does anyone have an opinion just on the question, is 10-15 mins to post a 3000+ line sales order with 13 menensions per line a reasonable speed,

I realize there are a lot of things that can improve performance, but not know if the current proforamce is reasonable it is hard to determine if I should be looking at other things.

David

Also as a rough guide, all things being equal, and nothing complex in place you should be able to comfortably post 50,000 to 150,000 Item lines a day in Navision. But this number does not allow for how the orders get entered, its just assuming that you post them at night with no other users on the system

Over how long of period are you basing this on? if it is 10 hours that would be 36000 seconds and 100000 lines would then be 2.78 lines per second. if it where say 8 hours and 150000 lines then it would be 5.21 per second. in either case, it seems he is probably in line with these speeds.

I realize that, but its not easy to answer without knowing the basic conditions. If it is done on a low performance machine with WiFi autopost to COGS GL, auto update Analysis views, warehouse bins serial numbers, then its very fast.So you really need the whole picture.

Well its all “order of magnitude” so I guess I am saying Data entry during the day and posting at night in an 8-12 hour window.

David, he is not asking is this fast for a given specifc configuration. Or given a specific configuration how can I speed it up, Instead the question is a general question about other peoples experience, Now, depending on the answers, maybe everyone will say, we get twice that many transactions, in half the time, then we can try to determine steps that might need to be taken to change things. Then again, if everyone chimes in and says that is a great time, we take twice as long for the same transaction level. then that also tells us something.

but to start with giving network configuration setups and other setup suggestions without ever knowing if he even needs to look at that, he may already have the fastest system anyone has seen, he just doesn’t know if he does or not becuase nobody is givening any real world speeds of what they are experiencing.

Now, you have probably seen more Navision setups then nearly everyone on this board, so you probably have seen systems a lot faster, and a lot slower, but in general, if you follow the microsoft sizing guides for the server and client configurations, you follow best practices, ect, would think this is a resonable speed to expect, using a native database on Navision 4.0, batch posting, at night with no one else on the system? Basically 5 item lines per second

OK, all things being equal and not knowing much more, then it sounds slower than I would expect.

Hi Y’all,

Thanks very much for the input…

I asked the question just before I closed down for the day yesterday.
And David (themave) is right I just wanted to get some sort of “benchmark” for the speed of my system.

Then again, I can fully agree vith David’s (Singleton) arguing that info on the setup is needed.

This is NAV4.0 SP3, on SQL2005.
Dimension-analysis are not updated automatically.
There is no automatical posting of Inventory Cost to G/L.
We use variants.
Posting is done from a session on a Citrix-server, during workhours.
Citrix-server supports approx. 25 concurrent users
We have 1 Gb-network (I use Quest-central to monitor the server, and have hardly never experienced network-wait).
Right now, I’m not aware of the specs. of the 2 servers, but I’ll dig into that if needed.
(I’m working for the Accounts-dep., and have absolutely no acess to the servers as is. - No SQL Server Management Studio,no access to PerfMonitor or nothing, just Quest-Central)
I do know that the DB resides on a 96 disk SAN, and have asked for a dedicated area, but with no luck so far.

We have optimized a lot on the indexes on SQL-server, an also on disabling maintenance of SIFT’s.
And also created maintenance-plans for reindexing the database, and updating statistics.
(Also a very importent information, if you are asked to evaluate the speed - sorry guys [:$])
The only thing I haven’t tried, that I saw someone suggest somewhere, is to disable all SIFT-maintenance on Value Entry.
I have disabled about 50 % of the levels. But with approx. 30 Gb data in Value Entry (4.9 mio. entries), I expected that disabling all SIFT will have a too great impact on reading, but maybe I should give it a go (in test only [;)])

The optimization already performed, actually shortened the time from about 1 hour, to what we experience now.

Most of this is good, and therefore I would say that yes the posting times are slow.

This is not good, especially if your LOG file is sharing spindles with other tasks then you will have big problems. You need to be certain that the LOG file and the Database files have dedicated spindles.

I also read that somewhere. I didn’t know whether to cry, or glee with joy that NSCs are out there generating potential new business for me. There is no way ever that you would just “disable all SIFT-maintenance” on any table. First you need to do analysis an evaluation. its all about balance, and indicating that you disables about 50% of the keys indicates that you know which one to diable and are doing it the right way.

So in summary, it really does look like you are doing everything right, so it leaves only the Drives at the minimum try to get a clear picture of which of the 96 drives you are using, and who else is sharing them. Also is there some customization going on. Are you running the posting off hours as a single user, or are others logged in at the same time.

I’m pretty sure that DB and LOG are not on dedicated spindles.
The SAN also supports the file-servers, etc.
(Also from my thread about cost of different collations, from Rasheed’s input, the location of temdb is also important here)

We have again and again asked for a dedicated area.
No luck so far.
But I’ll keep pushing.

This is a highly modified solution.
Primarily we’ve added extra Global Dimensions.
A little modified regarding variants. (added default dimensions to this level)
And a lot of different systems that interact with Navision.
Also a Royalty-module have been developed for this system.

Right now posting this salesorder, goes on during work-hours, with other users on the system.
We’ve sugested to do the posting off-hours, to take the load of the system. But the salesorder is imported from an external system (inventory), and consists of data regarding “yesterday”.
After importing, there has to be some user taking action on different things, that can not be automated.
Then if we have to wait to post the order to after hours, then it’ll be 2 days gone, before numbers get from external system to Navision.

So I gather then that the 10 min per post is affecting business.

The big issue is the LOG file, and then the Database files, fixing these is not going to reduce posting time to 1 minute, BUT you are not going to be able to do much more performance tuning until you sort this out. tempdb is so trivial in comparison to the log and db, that its not worth worrying about.

I am going to assume that the key issue is that users are locked out for 10 minutes until the order is posted. These issues can be resolved in many different ways, but again no point going any further till you get the hardware up to par. (Or at least confirm that it is up to par, since it is of course possible that you do have dedicated drives).

Has David said, you should also focus in database files and log files. Once a customer, complained about performance has slow during invoice post. The problem has simple do discover, the customer had in same spindle oracle database files.

Bullseye David.

As I mentioned, I’ve already shortened the time from 1 hour to 10-15 mins.,through tuning indexes etc.
That was also why I wanted some sort of “benchmark” of the system.
To see if I should expect to be able to tune it further, or tell my customer, that that is the way it is with this amount af data.

We are already in the progress of trying to split the order into several smaller, to let other users be able to have a go at posting in between.
But it’s not that simple, that I just can insert a counter, and create a new salesheader, when no. of lines reach, say 100. (That’s another story)

Yup…
I’m going to ask for (demand?) at least 2 seperate areas on the SAN:
1 - LOG
2 - DB
(3 - tempdb)

Before I’m going to do any further tuning from inside Navision…

Again, Thanks a lot guys.

The big issue with the drives, is that fixing them may have virtually no effect on performance, so then the IT dept will come back and say “told you so” and it then becomes difficult to then work with them going forward. So you need to be very sensitive in how this is presented to them. They need to know that the Drives are not the key cause of the issue, but that that issue needs to be resolved BEFORE you can start fixing the core issue.

Next thing, how many order lines are bing posted per day? and how many users are doing the posting. if this is a big system, and the performance is an issue, then there are a couple of ways to resolve the issue. The common way (as done in most Retail Environments) is a form of compression and archiving, that can be designed specific to that clients needs, and will boost the actual posting time. Another is to remove locking from the posting routines, and then dedicate them to a single user task, so that whilst that task is running, there is no need to lock other users out. Both these methods has been used in large Navision since the DOS days, an work well, but they do require a lot of very carefull design, and the cost needs to be justified by the return.

I am aware that there is no guarantee that using dedicated areas will have any mentionable effect on performance.

Meanwhile I’ve again asked for it, and again was told that the cost of dedicating an area for SQL-server will be too great. ???
Can it be the SAN-controler that doesn’t support dedicating area for specific tasks?
So they have to buy a new one, in order to comply with my wish.

BUT…
Apparently they have another SAN (used to hold databases for a SAP-system that have been shut down), that is completely empty right now.
This SAN consists of 15.000 rpm disks, where as the other (old) consists of 10.000 rpm disks.
They move the database and the log to this SAN this weekend, but still not in seperate areas.
So I would assume that moving to SAN2, they would gain something like 50% more, from the speed of the disks alone…
Or what?

I can’t wait for monday to see if there is any improvement…
(What, did I just say that I couldn’t wait for the weekend to be over…)

There is only 1 SO per day, that is very big, so perhaps another way could be to post during lunch-hour.