Freigeben über


JetCompact ist-Funktion

Letzte Änderung: Freitag, 27. Februar 2015

Gilt für: Windows | Windows Server

JetCompact ist-Funktion

Die JetCompact ist -Funktion erstellt eine Kopie einer vorhandenen Datenbank. Die Kopie wird in einen Zustand optimal für die Verwendung komprimiert. Daten in den kopierten Daten werden entsprechend den Maßnahmen für die Indizes am Index erstellen gewählt gepackt werden. Auf diese Weise können komprimierte Daten als dicht wie möglich gespeichert werden. Komprimierte Daten können auch Platz für Wachstum der nachfolgenden Datensätze oder Index Einfügungen reservieren.

JET_ERR JET_API JetCompact(
  __in          JET_SESID sesid,
  __in          JET_PCSTR szDatabaseSrc,
  __in          JET_PCSTR szDatabaseDest,
  __in          JET_PFNSTATUS pfnStatus,
  __in_opt      JET_CONVERT* pconvert,
  __in          JET_GRBIT grbit
);

Parameter

sesid

Die Sitzung für diesen Aufruf verwenden.

szDatabaseSrc

Die Quelldatenbank, die komprimiert wird.

szDatabaseDest

Der Name für die komprimierte Datenbank verwenden.

pfnStatus

Eine Callback-Funktion, die in regelmäßigen Abständen über den Fortschritt der compact Datenbankvorgang aufgerufen werden kann.

pconvert

Ein Zeiger verwendet, um eine alternative ESE-DLL festzulegen, die zum Lesen der Quelldatenbank und optionale Parameter einer Operation JetCompact ist vorzusehen, die Konvertierung einer Datenbank von einer früheren auf eine höhere Versionsformat verwendet werden können. Diese Funktion wurde in Windows Server 2003 eingestellt.

JET_errInvalidGrbit

Eine Gruppe von Bits 0 (null) oder mehrere der folgenden Optionen angeben.

Wert

Bedeutung

JET_bitCompactRepair

Verwendet, wenn die Quelldatenbank bekannt ist, ist beschädigt. Sie können eine ganze Reihe von neuen Verhaltensweisen, so viele Daten wie möglich aus der Quelldatenbank zu retten. JetCompact ist mit dieser Option können JET_errSuccess zurück, aber nicht Kopieren aller Daten in der Datenbank erstellt. Daten in beschädigten Teile der Quelldatenbank werden übersprungen.

JET_bitCompactStats

Führt JetCompact ist den Dump-Statistiken für die Quelldatenbank in eine Datei mit dem Namen DFRGINFO.TXT. Statistiken umfassen den Namen jeder Tabelle in der Quelldatenbank, Anzahl der Zeilen in jeder Tabelle, die Gesamtgröße in Bytes aller Zeilen in jeder Tabelle, die Gesamtgröße in Bytes aller Spalten vom Typ JET_coltypLongText oder JET_coltypLongBinary , die groß genug ist, werden getrennt von den Datensatz, Anzahl der Blattseiten gruppierten Index und die Anzahl der Blattseiten long-Wert gespeichert wurden. Darüber hinaus gedumpten Zusammenfassung Statistik, u. a. die Größe der Quelldatenbank, Zieldatenbank, Zeitaufwand für die Datenbankkomprimierung, Speicherplatz in der temporären Datenbank werden alle als auch.

Return Value

Diese Funktion gibt den Datentyp der JET_ERR mit einem der folgenden Rückgabecodes. Weitere Informationen zu den möglichen ESE-Fehlern finden Sie unter Extensible Storage Engine-Fehler und Fehler behandeln Parameter.

Rückgabecode

Beschreibung

JET_errSuccess

Der Vorgang wurde erfolgreich abgeschlossen.

JET_errClientRequestToStopJetService

Es ist nicht möglich, um den Vorgang abzuschließen, da alle Aktivitäten in der Instanz dieser Sitzung aufgrund eines Aufrufs von JetStopServiceeingestellt hat.

JET_errFeatureNotAvailable

Ein Zeiger ungleich NULL Pconvert wurde angegeben, aber die Version des verwendeten ESE unterstützt nicht die Convert-Funktion. Diese Funktion wurde in der Windows Server 2003-Version von ESE entfernt.

JET_errInstanceUnavailable

Es ist nicht möglich, um den Vorgang abzuschließen, da die Sitzung zugeordnete Instanz ein schwerwiegender Fehler, der erfordert aufgetreten ist, dass der Zugriff auf alle Daten gesperrt werden, um die Integrität der Daten zu schützen. Dieser Fehler wird nur von Windows XP und späteren Versionen zurückgegeben werden.

JET_errInTransaction

Die aufrufende Sitzung ist innerhalb einer Transaktion. JetCompact ist , muss von einer Sitzung außerhalb einer Transaktion aufgerufen werden.

JET_errNotInitialized

Es ist nicht möglich, um den Vorgang abzuschließen, da die Instanz dieser Sitzung noch nicht initialisiert wurde.

JET_errRestoreInProgress

Es ist nicht möglich, um den Vorgang abzuschließen, da ein Wiederherstellungsvorgang ausgeführt auf die Instanz der Sitzung zugeordnet wird.

JET_errSessionSharingViolation

Die gleiche Sitzung kann für mehrere Threads gleichzeitig verwendet werden.

Dieser Fehler wird nur von Windows XP und späteren Versionen zurückgegeben werden.

JET_errTermInProgress

Es ist nicht möglich, um den Vorgang abzuschließen, da die Sitzung zugeordnete Instanz heruntergefahren wird.

Bei Erfolg wird die Quelldatenbank in die Zieldatenbank kopiert. Die Zieldatenbank ist in einem optimalen Zustand, z. B. alle Indizes der Tabelle in benachbarten logischen Speicherplatz befinden. Jede Seite wird aufgefüllt, auf den Betrag konfiguriert, wenn die Indizes in der Quelldatenbank ursprünglich erstellt wurden. Alle Daten und Metadaten-Einstellungen werden mit vollständig originalgetreues kopiert, es sei denn, die Reparaturoption angegeben wurde. Wenn die Reparaturoption angegeben wurde, wurden möglicherweise nicht einige Daten aus der Quelldatenbank kopiert.

Bei einem Fehler die Zieldatenbank existiert jedoch keine vollständige Kopie der Datenbank.

Anmerkungen

Komprimieren einer Datenbank wird auch zum upgrade einer Datenbank aus einem früheren Versionsformat zu einer moderneren Version. Ein optionaler Parameter ist Pconvert, die eine Struktur enthält, die eine Beschreibung für eine frühere Version DLL für das Format der Quelle lesen enthalten kann. Diese Funktion wurde in Windows Server 2003 eingestellt. Im Anschluss an Windows Server 2003 neue Versionen von ESE sind immer ältere Versionen von Datenbank-Format lesen, und daher diese Funktion nicht erforderlich.

Die gewünschte Dichte von Daten nach einem kompakten Vorgang wird angegeben, wenn Tabellen und Indizes erstellt werden. Die Dichte muss zwischen 20 % und 100 % liegen. Wenn eine Datenbank wird in erster Linie gelesen und nicht aktualisiert, werden Anwendungen die Dichte auf 100 % und reduzieren die Anzahl der e/a-Vorgänge während der Abfrageverarbeitung festgelegt. Die Daten werden häufig durch Vorgänge, die zusammen mit dem Datensatz gespeicherten Daten zu vergrößern oder neue Daten häufig eingefügt bestehen, die Anwendung wird einen niedrigeren Dichte wählen, mit dem Updates häufiger benötigte Ressourcen finden können. Die Bedienung durch Komprimieren der Datenbank wird die Datenbank im Idealfall nach der Füllung ausgewählt, die von der Anwendung angeordnet werden.

Komprimierung ist eine Offline-Operation. Er kann nicht ausgeführt werden, während die Datenbank verwendet wird. Daher wird normalerweise ausgeführt als Teil des Build-Prozess der Entwicklung einer Anwendung ein Dataset als Teil selbst liefert.

Offline-Datenbankkomprimierung berührt jedes Bit der Daten in einer Datenbank und kann als ein Mittel zur Kontrolle der Konsistenz einer Datenbank verwendet werden. Wenn eine Datenbank fehlerverdächtig ist können sie komprimiert werden. Wenn kein Fehler von Komprimierung gefunden wird, dann bekannt ist, dass die Datenbank in einem gültigen Zustand für ESE ist.

Voraussetzungen

-Client,

Erfordert Windows Vista, Windows XP oder Windows 2000 Professional.

Server

Erfordert WindowsServer 2008, WindowsServer 2003 oder Windows 2000 Server.

Kopfzeile

In Esent.h deklariert.

Library

Verwenden Sie ESENT.lib.

DLL

"ESENT.dll" erfordert.

Unicode

Implementiert als JetCompactW (Unicode) und JetCompactA (ANSI).

Siehe auch

JET_COLTYP
JET_ERR
JET_SESID
JetDefragment
JetStopService