[Gelöst] Datensätze löschen beschleunigen

3. November 2011 15:27

Hallo zusammen,

ich wollte FA-Komponenten von simulierte und beendete FAs löschen. Der Hintergrund lassen wir erstmal aussen vor.

Anzahl Datensätze von allen FA-Komponenten sind ca. 2,3 Mio.

Welche Idee habt ihr um die Datensätze am schnellsten zu löschen?

Welche Werkzeug soll schneller sein: Codeunit oder Report?

Ich habe im Moment Report verwendet. Das hat unheimlich lange gedauert. (über 5 Stunden)

Welche Code eure Meinung nach ist sinnvoller?
A.
Code:
Prod. Order Component - OnPreDataItem()
SETFILTER(Status,'%1|%2',Status::Simulated,Status::Finished);
DELETEALL;

Prod. Order Component - OnAfterGetRecord()

Prod. Order Component - OnPostDataItem()
COMMIT;


B.
Code:
Prod. Order Component - OnPreDataItem()
SETFILTER(Status,'%1|%2',Status::Simulated,Status::Finished);

Prod. Order Component - OnAfterGetRecord()
DELETE;
COMMIT;

Prod. Order Component - OnPostDataItem()


Danke im voraus.
Zuletzt geändert von navsyst am 7. November 2011 01:20, insgesamt 1-mal geändert.

Re: Datensätze löschen beschleunigen

3. November 2011 15:29

DELETEALL, ist das Feld Status im Primärschlüssel integriert? Ansonsten fehlt ein SETCURRENTKEY.

Re: Datensätze löschen beschleunigen

3. November 2011 15:33

Natürlich gehört den Status zu Primärschlüssel.

Re: Datensätze löschen beschleunigen

3. November 2011 15:57

Hallo,

würd eine Codeunit nicht schneller sein? Mit dem Report holst du doch die Datensätze vereinzelt.
Und warum ein Commit?


Gruß
Aydin

Re: Datensätze löschen beschleunigen

3. November 2011 17:16

Warum ein Commit?

COMMIT (Database)
Use this function to end the current write transaction.

Hintergrund ist dass ich mehrere Dataitem in Report habe. Wenn der abbricht, und ich den neu starte, muss der Report nicht noch mal von Beginn anfangen.

Mit Codeunit ist der Vorgang auch nicht unbedingt schneller :(
Siehe Bilderanhang.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Re: Datensätze löschen beschleunigen

3. November 2011 18:20

Wenn es noch schneller gehen soll, dann ist SQL da natürlich die bessere Wahl.

Re: Datensätze löschen beschleunigen

3. November 2011 18:35

SQL-Datenbank? Ab nächstes Jahr :)
(migriere gerade Datenbank von 3.10 ins RTC)

Abberrr... das war keine Lösung für meine aktuelle Frage! :)

Re: Datensätze löschen beschleunigen

3. November 2011 19:08

Mal eben ins unreine gedacht: (ich bin mir nicht sicher ob das möglich ist :wink: )

Versuch das ganze mal über die FA-Köpfe die diesen Status haben, und lösche dann die Zeilen anhand der FA Satus und FA- Nummer

Gruß, Fiddi

Re: Datensätze löschen beschleunigen

3. November 2011 19:26

Habe ich schon mal probiert.
Der dauert noch länger :)

Re: Datensätze löschen beschleunigen

3. November 2011 19:31

wie groß ist den der Cache, den du deinem DB-Server spendiert hast? unter 'Datei\Datenbank\Informationen' Reiter Datenbank und dort 'DBMS Cache'?

Gruß, Fiddi

Re: Datensätze löschen beschleunigen

3. November 2011 19:32

10000 KB

Gruss
navsyst

Re: Datensätze löschen beschleunigen

3. November 2011 19:35

kein Wunder :roll: . Versuch das mal in eine Größenordung von max. 1GB zu bringen :wink:

Gruß, Fiddi

Re: Datensätze löschen beschleunigen

3. November 2011 19:48

AHA!!!!
Kann man die DBMS Cache einfach so auf 1 GB vergrössern??
Wenn das hilft.......... hmm....

Re: Datensätze löschen beschleunigen

3. November 2011 22:09

Kann man die DBMS Cache einfach so auf 1 GB vergrössern??


Wenn der Arbeitsspeicher des Servers das hergibt (sprich >=2GB Arbeitsspeicher hat) , dann schon. Dann muss man nur den Server- Dienst mit den passenden Parametern aufrufen.

Gruß, Fiddi

Re: Datensätze löschen beschleunigen

3. November 2011 22:53

Ja. Der Server hat 2 GB RAM. Was meist du mit Dienst mit passende Parameter aufrufen?
Reicht es nicht den Dienst neu starten lassen?
Muss ich den Dienst neu installieren?

Re: Datensätze löschen beschleunigen

3. November 2011 23:07

Reicht es nicht den Dienst neu starten lassen?
Muss ich den Dienst neu installieren?


Nein und Ja :wink: Nein es reicht nicht den Dienst neu zu starten, Ja du musst den Dienst neu installieren (per CMD- Kommandozeile oder per NAVDBMSnapIn.msc aus dem Server- Verzeichnis, bei letzterer änderst du die Parameter)

Gruß, Fiddi

Re: Datensätze löschen beschleunigen

4. November 2011 09:33

navsyst hat geschrieben:SQL-Datenbank? Ab nächstes Jahr :)
(migriere gerade Datenbank von 3.10 ins RTC)

Abberrr... das war keine Lösung für meine aktuelle Frage! :)


Hätte ja sein können ... :-D

Re: Datensätze löschen beschleunigen

4. November 2011 11:44

kann jemand mir erklären was ich vielleicht falsch gemacht habe bei der neuinstallation neues Dienstes.
Ich habe neue Cache 1000000 eingegeben. Aber zeigt später in Option immer noch nur 10000.
Hat jemand eine Idee? Danke im voraus.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Re: Datensätze löschen beschleunigen

4. November 2011 12:02

Das ist der DBMS-Cache des Clients, der wird nur benutzt, wenn du lokal mit der DB arbeitest und nicht wie du mit einem Server. Deshalb siehst du den tatsächlichen Cache nur wie ich ihn oben beschrieben habe.

Gruß, Fiddi

Re: Datensätze löschen beschleunigen

4. November 2011 12:10

Hi Fidi,
ich arbeite doch mit dem Server..
Und egal ob ich Navision am Server oder Client local starte, habe ich die gleiche Anzeige.
Habe ich dich falsch verstanden?

Re: Datensätze löschen beschleunigen

4. November 2011 12:14

Was steht unter 'Datei\Datenbank\Informationen' Reiter Datenbank und dort 'DBMS Cache'?

Gruß, Fiddi

Re: Datensätze löschen beschleunigen

4. November 2011 12:19

JETZT HABE ICH KAPIERT!! :)
Sorry.
Ja. Unter Datenbank Information steht 1000000.
Heisst es jetzt dass die Verarbeitung wie massenlöschung schneller werden kann? hoho.....

Re: Datensätze löschen beschleunigen

4. November 2011 12:31

[quote]Heisst es jetzt dass die Verarbeitung wie massenlöschung schneller werden kann? hoho.....

Probiers mal aus, aber wahrscheinlich nicht nur die :wink:

Gruß,fiddi

Re: Datensätze löschen beschleunigen

7. November 2011 01:20

Hallo Fiddi,
Danke für den gute Tips. Das beschleunigst aufjedenfalls die massenlöschung.
Aber Tips für Turbo-Delete-codes sind immer noch willkommen.
Gruss
Navsyst