Obviously some of this depends on the version of SQL you're running, but am I correct in the following general assumptions?
1. Native can only use one processor, but SQL can use up to the number allowed in the version
2. If I run a process on a single-core machine and a quad-core machine, the quad core will be four times faster if the CPU speeds are the same?
I ask because during step 2.10 of the upgrade toolkit, the value entries get updated. 5 million value entries updating, each one taking an average of 0.8 seconds. That's 46 days of continuous processing, which we just can't have. Trying to figure out what to do.
0
Comments
http://www.BiloBeauty.com
http://www.autismspeaks.org
AP Commerce, Inc. = where I work
Getting Started with Dynamics NAV 2013 Application Development = my book
Implementing Microsoft Dynamics NAV - 3rd Edition = my 2nd book
If you don't know which, then find someone who knows enough to run it safely.
http://mibuso.com/blogs/davidmachanick/
1a. Navision Native database server uses always one processor, or one core on multi-core processors
1b. SQL Server uses all available processors and cores up to allowed or configured number
1c. Navision Client always uses one processor or one core on multi-core processor regardless of database server it connects to.
It depends.
Index creation for example is much faster on quad-core machine because indexes are recalculated purely by SQL server and NAV client is not involved in that process except of initializing it. If the rest of the system components are fast enough to not to be bottlenecks then quad core will be much faster than on single core machine, but not four times, as performance doesn't scale up in linear manner.
Upgrade Toolkit is most probably written much in the same was as NAV Client, so I would assume that this is single threaded application, which doesn't use multiprocessor capabilities. But this is my guess only.
Slow processing speed might be also limited by your network. Try to run Upgrade Toolkit directly on the server, or on fast machine having 1GB connection to the SQL server.
However I think in your case the best approach would be outsource the project as Alex said.
Regards,
Slawek
Dynamics NAV, MS SQL Server, Wherescape RED;
PRINCE2 Practitioner - License GR657010572SG
GDPR Certified Data Protection Officer - PECB License DPCDPO1025070-2018-03
It is better to use multiple cores to serve multiple requests.
The only moment it using multiple cores for 1 request is when you do an indexrebuild.
The best you can do for speed is outsource it.
And if you want to do it yourself, best go for a lots of fast disks.
-If you can dedicate a server to do just this, I wouldn't even use RAID1 or RAID10 for safety but go FOR RAID0 for striping as much as possible.
So copy the DB on this server. Do the upgrade (for some time you have to hope no disks fails because in this moment you have to redo everything. But the change of diskfailure is very low:and if it should happen, continue to work on the old DB, fix the drives and retry again later).
So:
-a 2 disk RAID0 for the logfile (if you have less then 4 disk for the DB, use only 1 disk for the TL and add the other to the DB)
-a N-disk RAID0 for the DBfile (where N is at least 4; the bigger N is, the better )
-1 disk for system + tempDB
-If you have a 2-core system, this is already enough for the upgrade.
No PM,please use the forum. || May the <SOLVED>-attribute be in your title!
For example - writing to tempdb (if necessary) - process scheduler may be attached to separate worker thread
If the database is spread across multiple files located on different drives - every file gets served by separate worker thread.
I would rather suggest to make writes to the log as fast as possible because log writes are NOT cached in SQL memory in opposite to data writes.
Dynamics NAV, MS SQL Server, Wherescape RED;
PRINCE2 Practitioner - License GR657010572SG
GDPR Certified Data Protection Officer - PECB License DPCDPO1025070-2018-03
Applications are not single processor or multi-processor. They either are or are not multi-processor aware. Applications that are multi-processor aware are able to instruct the system to execute certian functions on specific processor. Application that are not simply treat the processor as a resource pool.
If you run Performance Monitor on a multi-processor box that is running native, the other processor are not sitting idle. In fact you will find them all running at about the same rate. Try then same thing on SQL and you will find that the usage % varies between processors.