Excel Export frisst CPU Performance

Bild Microsoft Dynamics NAV 3.xx
(ehem. Navision Attain)

Excel Export frisst CPU Performance

Beitragvon mgerhartz » 2. Februar 2007 16:53

Hallo zusammen,

mir ist aufgefallen, dass wenn ich einen Bericht mit einem Excelexport laufen lasse, fast 100 % CPU Auslastung auf dem Clientrechner ist. Lasse ich den Bericht ohne Excelexport laufen, ist die Belastung nur auf dem DB Server. Wieso wird der Client so stark belastet, schlieĂźlich werden doch nur fertige Daten in den Excelsheet geschrieben?
mgerhartz
 
Beiträge: 308
Registriert: 13. Februar 2006 15:18
Wohnort: Koblenz

Beitragvon stryk » 2. Februar 2007 17:31

Nun, bei einem normalen Bericht werden i.d.R. "nur" Daten vom Server abgefragt und Client-seitig dargestellt; ggf. wird lokal noch ein wenig Logik abgearbeitet, aber die Hauptlast liegt beim Server - wie gesagt: i.d.R., muss nicht immer so sein.

Nutzt man den Excel-Export - und ich bin sicher welchen Du meinst - dann wird hier via Automation Server soz. eine Instanz von Excel gestarted - auf dem lokalen Client - und die Daten werden direkt in die Zellen etc. geschrieben. Je nach Umfang "drĂĽckt" das natĂĽrlich die Systemleistung ...
Jörg A. Stryk (MVP - Dynamics NAV)
NAV/SQL Performance Optimization & Troubleshooting
STRYK System Improvement
stryk
Microsoft Partner
Microsoft Partner
 
Beiträge: 767
Registriert: 30. November 2006 12:32
Wohnort: NĂĽrnberg
Realer Name: Jörg Stryk
Bezug zu Microsoft Dynamics: Freiberufler
Microsoft Dynamics Produkt: Microsoft Dynamics NAV

Beitragvon mgerhartz » 5. Februar 2007 09:56

Hallo Jörg,

danke für Deine Erklärungen. Gitbt es eine Möglichkeit Excel-Exporte performanter zu gestalten? Wir haben das Problem, dass unser Kunde gerade jetzt für den Jahresabschluss ziemlich viele Reports mit Excel-Exporten teilweise parallel laufen lässt. Da sich die User via Citrix auf einen der Terminalserver anmelden (also die Navision Clients der Citrix-Sitzungen laufen auf den Terminalservern) stehen diese dann mitunter auf Volllast. Gibt es z. B. nicht die Möglichkeit das Berichtsergebnis direkt als XLS zu speichern. Habe schon etwas von dem Umweg (Als HTML speichern und dann die Endung *.xls dranhängen) gelesen. Kann man das ggf. auch per Funktion direkt in den Report einbinden? Allerdings gehen dann wohl auch die Formatierungen flöten.

Bin fĂĽr jeden Hinweis dankbar.
mgerhartz
 
Beiträge: 308
Registriert: 13. Februar 2006 15:18
Wohnort: Koblenz

Beitragvon stryk » 5. Februar 2007 10:07

Nun, man kann in NAV jeden Bericht als HTML Datei speichern via "Datei - Speichern als HTML" oder via C/AL Code mit der Methode Report.SAVEASHTML.

Was euch vielleicht helfen kann, ist das Utility "Print2Excel" von SimCrest http://www.print2excel.com/
Hab' aber leider keine Ahnung wie performant das läuft ...
Jörg A. Stryk (MVP - Dynamics NAV)
NAV/SQL Performance Optimization & Troubleshooting
STRYK System Improvement
stryk
Microsoft Partner
Microsoft Partner
 
Beiträge: 767
Registriert: 30. November 2006 12:32
Wohnort: NĂĽrnberg
Realer Name: Jörg Stryk
Bezug zu Microsoft Dynamics: Freiberufler
Microsoft Dynamics Produkt: Microsoft Dynamics NAV

Beitragvon mgerhartz » 5. Februar 2007 11:11

Hi Jörg,

habe mir eben mal eine Trial Version von dem Tool gezogen und ausprobiert. Zum einen ist es genauso unperformant das Ergebnis per Druckertreiber in Excel zu schreiben (Während des Druckvorgangs geht die CPU Auslastung auf dem Client-Rechner ebenfalls auf fast 100 %) und die Properties für die Formatierungen sind auch nicht wirklich ausreichend. Das Ergebnis sieht ziemlich durcheinandergewürfelt aus. Vielleicht könnte man da noch ein wenig probieren, um ein besseres Ergebnis zu bekommen, ändert allerdings nichts an der Tatsache, dass die Performance genauso beansprucht wird.

Gibts vielleicht sonst noch Ideen?
mgerhartz
 
Beiträge: 308
Registriert: 13. Februar 2006 15:18
Wohnort: Koblenz

Beitragvon mikka » 5. Februar 2007 11:11

Hallo mgerhartz,
ich bin mir nicht sicher, ob die CPU last weniger wird, zumindest geht die Verarbeitung schneller, wenn du Excel im Hintergund laufen lässt, mit:
xlApplication.Visible := TRUE;

Vieleicht hilft das ein wenig.
GruĂź Mikka

@Stryk
PS: Herzlichen Glückwunsch nachträglich :-P
GruĂź, Mikka

Frage beantwortet? Schreibe bitte [Gelöst] vor den Titel des ersten Beitrags.
Bitte erst suchen, dann fragen. Bitte beachte den kleinen Community-Knigge.
Kein Support per PN, Mail, IM oder Telefon! DafĂĽr ist dieses Forum da.
Benutzeravatar
mikka
Microsoft Partner
Microsoft Partner
 
Beiträge: 1832
Registriert: 26. September 2005 11:54
Wohnort: Bremen
Realer Name: Michael
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 2.6, 3.7, 4, 5, 2009/13/15

Beitragvon mgerhartz » 5. Februar 2007 11:36

Hi Mikka,

auch das habe ich eben probiert. Wie Du schon selbst vermutet hast, wird zwar die Verarbeitung schneller, jedoch ist die CPU Last die gleiche.

Das Hauptproblem, das wir habe ist, dass die Navision Clients der User alle auf den Terminalservern laufen. Wenn mehrere einen Excel-Export laufen lassen, dann ist das System komplett dicht!
mgerhartz
 
Beiträge: 308
Registriert: 13. Februar 2006 15:18
Wohnort: Koblenz

Beitragvon Andre M » 5. Februar 2007 11:45

Wär es eventuell möglich diese Reports Nachts oder zu einer Zeit mit weniger Auslastung zu fahren?

Die User haben dann am nächsten Morgen z.B Ihre Daten.

Das Performanceproblem gibt es bei uns auch- aber zum GlĂĽck ahben wir nur wenige Reports die in Excel ausgegeben werden!


Mfg. André
Andre M
 
Beiträge: 82
Registriert: 10. November 2005 09:08
Wohnort: 48324 Sendenhorst

Beitragvon mgerhartz » 5. Februar 2007 12:59

Hi André,

tja, das wäre die beste Lösung allerdings benötigen die User die Excel Exporte spontan und lassen sich schlecht planen. Unser Kunde wickelt als Buchungszentrum die komplette Finanzbuchhaltung für mehrere Unternehmen ab. Ich denke, dass der Bedarf an Exporten hier wesentlich größer ist, als bei normalen Handelsunternehmen.
mgerhartz
 
Beiträge: 308
Registriert: 13. Februar 2006 15:18
Wohnort: Koblenz

Beitragvon Michael Schumacher » 5. Februar 2007 13:39

Ich weiss im Moment gerade nicht, wie der Befehl heißt (oder ob ich das jetzt mit einer anderen Programmiersprache verwechsle), aber ich meine es gäbe da einen Befehl ähnlich dem DoEvents von VB, dass zwischendurch mal den Prozessor für andere aufgaben zur Verfügung stellt, vielleicht würde das helfen, wenn man diesen Befehl in die Schleife des Excel-Exports einbaut....
mfg
Michael Schumacher


Frage beantwortet? Schreibe bitte [Gelöst] vor den Titel des ersten Beitrags.
Bitte erst suchen, dann fragen. Bitte beachte den kleinen Community-Knigge.
Kein Support per PN, Mail, IM oder Telefon! DafĂĽr ist dieses Forum da.
Hmmm, ach heut' ist Backup-Tag, also alles schnell nach /dev/nul sichern!
Benutzeravatar
Michael Schumacher
Ehrenmitglied
 
Beiträge: 1762
Registriert: 1. August 2005 11:12
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 3.x, 4.x, 5.x

Beitragvon mgerhartz » 5. Februar 2007 17:10

Hi Michael,

das hört sich interessant an. Jetzt müsste ich nur noch den Befehl kennen :wink:
mgerhartz
 
Beiträge: 308
Registriert: 13. Februar 2006 15:18
Wohnort: Koblenz

Beitragvon stryk » 5. Februar 2007 17:20

In NAV wäre das dann wohl YIELD!
Jörg A. Stryk (MVP - Dynamics NAV)
NAV/SQL Performance Optimization & Troubleshooting
STRYK System Improvement
stryk
Microsoft Partner
Microsoft Partner
 
Beiträge: 767
Registriert: 30. November 2006 12:32
Wohnort: NĂĽrnberg
Realer Name: Jörg Stryk
Bezug zu Microsoft Dynamics: Freiberufler
Microsoft Dynamics Produkt: Microsoft Dynamics NAV

Beitragvon Michael Schumacher » 5. Februar 2007 17:25

genau den meinte ich ;-)
mfg
Michael Schumacher


Frage beantwortet? Schreibe bitte [Gelöst] vor den Titel des ersten Beitrags.
Bitte erst suchen, dann fragen. Bitte beachte den kleinen Community-Knigge.
Kein Support per PN, Mail, IM oder Telefon! DafĂĽr ist dieses Forum da.
Hmmm, ach heut' ist Backup-Tag, also alles schnell nach /dev/nul sichern!
Benutzeravatar
Michael Schumacher
Ehrenmitglied
 
Beiträge: 1762
Registriert: 1. August 2005 11:12
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 3.x, 4.x, 5.x

Beitragvon mgerhartz » 5. Februar 2007 17:57

Super, danke. Werde ich gleich morgen ausprobieren. Bis dahin....

GruĂź

Markus
mgerhartz
 
Beiträge: 308
Registriert: 13. Februar 2006 15:18
Wohnort: Koblenz


ZurĂĽck zu NAV 3.xx

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast