Api.JetDefragment2 method
Starts and stops database defragmentation tasks that improves data organization within a database.
Namespace: Microsoft.Isam.Esent.Interop
Assembly: Microsoft.Isam.Esent.Interop (in Microsoft.Isam.Esent.Interop.dll)
Syntax
'Declaration
Public Shared Function JetDefragment2 ( _
sesid As JET_SESID, _
dbid As JET_DBID, _
tableName As String, _
ByRef passes As Integer, _
ByRef seconds As Integer, _
callback As JET_CALLBACK, _
grbit As DefragGrbit _
) As JET_wrn
'Usage
Dim sesid As JET_SESID
Dim dbid As JET_DBID
Dim tableName As String
Dim passes As Integer
Dim seconds As Integer
Dim callback As JET_CALLBACK
Dim grbit As DefragGrbit
Dim returnValue As JET_wrn
returnValue = Api.JetDefragment2(sesid, _
dbid, tableName, passes, seconds, _
callback, grbit)
public static JET_wrn JetDefragment2(
JET_SESID sesid,
JET_DBID dbid,
string tableName,
ref int passes,
ref int seconds,
JET_CALLBACK callback,
DefragGrbit grbit
)
Parameters
sesid
Type: Microsoft.Isam.Esent.Interop.JET_SESIDThe session to use for the call.
dbid
Type: Microsoft.Isam.Esent.Interop.JET_DBIDThe database to be defragmented.
tableName
Type: System.StringUnused parameter. Defragmentation is performed for the entire database described by the given database ID.
passes
Type: System.Int32When starting an online defragmentation task, this parameter sets the maximum number of defragmentation passes. When stopping an online defragmentation task, this parameter is set to the number of passes performed.
seconds
Type: System.Int32When starting an online defragmentation task, this parameter sets the maximum time for defragmentation. When stopping an online defragmentation task, this output buffer is set to the length of time used for defragmentation.
callback
Type: Microsoft.Isam.Esent.Interop.JET_CALLBACKCallback function that defrag uses to report progress.
grbit
Type: Microsoft.Isam.Esent.Interop.DefragGrbitDefragmentation options.
Return value
Type: Microsoft.Isam.Esent.Interop.JET_wrn
A warning code.
Remarks
The callback passed to JetDefragment2 can be executed asynchronously. The GC doesn't know that the unmanaged code has a reference to the callback so it is important to make sure the callback isn't collected.