Please bare with me as I am not a SQL or hardware expert by any stretch. Hoping to learn as we go through this, though. We are currently on SQL2000 and Navision 3.7 but will be moving to SQL2008 and NAV2009SP1 very shortly. We have 125+ users and a 100GB+ database. Currently the data all resides on a single disk.
We have identified our most heavily hit tables. They are just as you would expect: G/L Entry, Vendor Ledger, Customer Ledger, Value Entry, etc.
We would like to split these tables over multiple drives in order to increase performance. We will have a RAID10 with four disks dedicated to NAV data. From reading other posts it seems as though this can be very beneficial: more drives = more spindles = more concurrent reads/writes.
Our DBA is worried that because of NAV's unique internal ID number for tables, copying the tables using a SQL script will mess with the mappings between the NAV code and the tables. I've seen some other posts about partitioning data (specifically by year) across drives, and I assume it's the same for tables. And I know it has to be done from the SQL side.
Anything we should watch out for? Any posts you can point me to that I might have missed or not understood? NAV is pretty particular when it comes to doing things, especially outside of the client window.
Thanks for your advice.
0
Comments
RIS Plus, LLC
The log files are on their own separate drive. We have also done index tuning in the past. Granted this is on SQL2000.
New hardware is a 16 core active-active cluster with 32GB of memory. So the hardware should not be a problem.
Because of years of past slowness the company want to do everything in its power to make sure this thing flies. And will continue to fly without intervention for years and years to come.
RIS Plus, LLC
Well, with a NAV 2009 Client this would be replaced with VSIFT, thus getting rid of the SIFT issues (maybe replaced by - minor - VSIFT problems )
IF you want to move tables to separate drives (and I agree absolutely with DenSter that this should be at the rear end of optimization) HEN you could proceed like this (SQL 2005 or higher):
1. Create new Filegroup for segregating Tables (e.g. Data Filegroup 2)
2. Create new file on separate drive; assigned to filegroup from step 1 (e.g. DFG1).
3. Drop all non-clustered indexes (NCI) of the to-be-moved tables
4. Drop the clustered index (CI) using the MOVE TO clause; moving the data to the new FG
5. Re-create all NCI in new FG
Have in mind that index changes in NAV might undo these changes, thus you'll have to re-run this fuss ... ](*,)
Good Luck!
Jörg
NAV/SQL Performance Optimization & Troubleshooting
STRYK System Improvement
The Blog - The Book - The Tool
Why not use Windows 64 Enterprise edition and have more RAM?
You SQL Server can still be the standard edition as long as it is 64 bit too (which SQL Server 2008 for standard should be) - it can use all the memory available to the Windows Server.
http://mibuso.com/blogs/davidmachanick/
RIS Plus, LLC
He I believe the DBA is involved as well.
Independent Consultant/Developer
blog: https://dynamicsuser.net/nav/b/ara3n
RIS Plus, LLC
I'm sure it's not the first thing you would do either.
I would move to 64 bit SQL/OS and double the RAM and implement 2009 SP1 instead of 2009. And do code/index improvements.
Independent Consultant/Developer
blog: https://dynamicsuser.net/nav/b/ara3n
Oh and whatever you do, do NOT use any of the data discs (data, log or tempdb) for file sharing. These spindles need to be dedicated for the NAV production database only.
RIS Plus, LLC
No PM,please use the forum. || May the <SOLVED>-attribute be in your title!
Yes, I am definitely not doing this myself. We have an experienced DBA who does these things all the time, just not with NAV. I'm just getting information about whether or not it is a good idea and to find out information that should be discussed more before we do / do not make changes like this.
It will be running on SQL 2008 Enterprise, Windows Server 2008 64bit. It's 32GB because that's what they got, honestly. We sell refurbished computer hardware, so if it's not enough we just go grab some from the warehouse.
So to sum it up, I KNOW the speed will be faster, and I also know that every install can be different. But if you were the average customer / my company, do you think the move between the following would be enough for you?
We started with Navision 3.7, SQL 2000, 8 cores, 8GB of RAM, 1 data drive with additional drives for logs and backups, and some index tuning.
Moving to NAV 2009 SP1, SQL 2008 Enterprise 64 bit, 16 cores, 32 GB of RAM, 4 data drives with additional drives for logs and backups, and index tuning later.
Again, thank you everyone for your help. SQL Server is definitely an area I need to learn more about.
RIS Plus, LLC
RIS Plus, LLC
Independent Consultant/Developer
blog: https://dynamicsuser.net/nav/b/ara3n
Just put the database on the RAID10 drive and don't try to move tables or indexes.
Comment 2:
About SSD: The last I heard it was either extremely expensive (RAMSAN) or unreliable for the number of random I/O packages. They would simply break to often.