Skip to Content
0
Feb 26, 2013 at 03:13 PM

Performance issues with the best hardware there is.

85 Views

Dear all,

We are using SAP B1 since 2008 and we were having serious performance problems. Therfor we installed a complete new server which is in my opinion the best of the best.

2 x Intel Xeon cPU E5 2650 2.00 GHz processors

128 gb RAM

64 bit Windows 2008 server and SQL 2008 server

and as a top of all Fusion IO harddisks. Super fast!!!

We upgraded to SAP B1 version 8.82.073 PL 10

Now I have a simple console program which is looping through the business partners and updating some fields. Here the problem arrives.

Loading the BP is fast,

process Miliseconds Creating object

BusinessPartners

businessPartner = (BusinessPartners)_company.GetBusinessObject(BoObjectTypes.oBusinessPartners);

144 ms

Loading BP

businessPartner.GetByKey(cardCode)

140 ms

Filling some general fields:
businessPartner.CardName = cardName;

businessPartner.CardForeignName = cardFName;

businessPartner.EmailAddress = email;
businessPartner.ShippingType = shipType;
businessPartner.Password = password

1 ms Filling some UDF fields

businessPartner.UserFields.Fields.Item("U_IACTOR_CustType").Value = custType;

businessPartner.UserFields.Fields.Item("U_IACTOR_PartGroup").Value = partGroup;

businessPartner.UserFields.Fields.Item("U_IACTOR_BatteryGrp").Value = batteryGrp;

businessPartner.UserFields.Fields.Item("U_IACTOR_EmailServ").Value = emailServ;

businessPartner.UserFields.Fields.Item("U_IACTOR_RepairGroup").Value = repairGroup;

1299 ms Looping through 2 address lines and set some values (always 2 adresses present, one shipto and one billto)

for(int i=0; i < businessPartner.Addresses.Count; i++)

{

businessPartner.Addresses.SetCurrentLine(i);

if (businessPartner.Addresses.AddressName.Length > 0)

{

businessPartner.Addresses.County = cardName;

businessPartner.Addresses.Block = cardFName;

businessPartner.Addresses.Street = street;

businessPartner.Addresses.UserFields.Fields.Item("U_IACTOR_Street2").Value = street2;

businessPartner.Addresses.UserFields.Fields.Item("U_IACTOR_Street3").Value = street3;

businessPartner.Addresses.ZipCode = zipCode;

businessPartner.Addresses.City = city;

businessPartner.Addresses.Country = country;

}

}

5.804 ms And last but not least, the update

retValue = businessPartner.Update();

209 ms

We have around the 6.000 Business partners to update and this is causing seriously performance issues.

Why is filling 5 standard fields only costing 1 ms and filling 5 UDF fields 1.299 ms.

How can it be that walking through two addresslines and filling a few values cost 5.804 ms and updating all the fields in the database only 209 ms.

Can anyone help me with this because I have no idea anymore but this is totaly not acceptable or understandeble.

Best regards,

Erik van Dongen