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). |