Einlesevorgang fbk. in SQL beschleunigen, WIE?

27. Januar 2009 18:27

Hi,

ich habe ein FBK das ist 32 GB und wir als DB auf 100 GB wachsen, also schon eine große DB.

Beim Import in eine frische SQL Datenbank dauert es wirklich ewig bis das durchläuft.

Gibt es einen Workaround wie man hier etwas beschleunigen kann?

Bringt es z.B. was wenn ich zuerst alle Objekte einlese und dann bei großen Tabellen unter dem Tabellendesigner alle Keys deaktiviere und dann nur die Daten einlese und wenn alles fertig ist wieder die Keys aktiviere?

Gibt es sonst noch möglichkeiten???

Viele Grüße
TEsa.

Re: Einlesevorgang fbk. in SQL beschleunigen, WIE?

27. Januar 2009 19:08

Hi!
Das generelle Problem dabei ist, dass NAV so nen Restore in einer "Monster-Transaktion" durchführt und somit sämtlich Systemressources überlastet ... um den "Impact" etwas zu reduzieren kann man folgendes machen:

1. SQL DB anlegen, Recovery Model SIMPLE, Security Model STANDARD
2. In "native" C/SIDE: alle Tabellen in FOB exportieren
... dann per Codeunit bei allen aktiven Indexen "MaintainSQLIndex" (nicht bei PK) und "MaintainSIFTIndex" auf FALSE setzen
... dann FBK Backup erstellen
3. FBK in SQL DB importieren; jetzt werden nur die Daten importiert, es werden nur die Clustered Indexes erstellt, keine Non-Clustered Idx; keine SIFT/VSIFT
4. FOB aus 2. importieren, ggf. "portionsweise", d.h. große Tabellen separat. Jetzt werden die NCI ujnd SIFT/VSIFT erstellt ...

Dauert unterm Strich zwar genauso lange, aber das System kann zwischendurch mal Luft holen ...

Gruß,
Jörg

Re: Einlesevorgang fbk. in SQL beschleunigen, WIE?

28. Januar 2009 23:17

Hallo,

ein Trick den ich bei Neuanlage eines Mandanten anwende:

1. Mandant aus SQL-Datenbank in .fbk sichern
2. Mandant in eine native-DB einlesen
3. Umbenennen, Bewegungsdaten entfernen usw.
4. Mandant aus Native-DB wieder in .fbk sichern
5. .fbk in SQL-Datenbank einlesen (am besten lokal auf dem Server)

Wenn man für den Neuaufbau die Schritte 1,2,4 und 5 ausführt ists deutlich schneller als das Einlesen eines aus SQL gesicherten .fbk. Das hat mit den unendlich vielen leeren Tabellen zu tun die auf dem SQL-Server eingelesen werden. Was auch noch zu helfen scheint: Das Transaktionsprotokoll auf Simple für die Einlesung stellen. Eine neue DB aufbauen dauert dann immernoch lange genug (ca. 12 Stunden SQL gegenüber ca. 3 Stunden Native).

LG und viel Erfolg

Jens