2009-10-18 25 views
7

Estoy usando Visual Studio 2008. Soy nuevo en sqlce. Estoy revisando archivos sdf y si sdf no existe, creo e inserto alrededor de 5000 filas en mi sqlce db. Si sdf existe, primero borro todas las filas de las tablas y luego inserte estos registros en las tablas existentes.Después de completar la inserción, estoy compactando la base de datos.Por cierto, la compactación dura aproximadamente 13 segundos.Sé un método que llama a Reducir.Encolar y Compactar hace que la DB sea más pequeña, pero en este escenario cuál de ellos debería Yo uso? ¿Cómo puedo hacer compactación dentro de un tiempo más corto? No necesito copia de seguridad de sdf y después del compacto, borro el tema antiguo sdf.i leído this pero no pude decidir cuál debo usar.¿encoger o compactar en Sql Server CE?

Respuesta

13

favor ver:

que cita de la SQL Server Compact Team Blog:

SqlCeEngine/ISSCEEngine: Se encogen Vs compacto La diferencia entre estos dos es muy similar al interno y memoria externa Frag Mentación.

De SqlCeEngine.Shrink documentation:

recupera desperdicia espacio en la base de datos de moviendo páginas vacías y no asignados al final del archivo, y luego truncar el archivo. Puede configurar una base de datos para reducir automáticamente el configurando la opción de umbral de autoshrink en la cadena de conexión. Shrink no crea un archivo de base de datos temporal .

De SqlCeEngine.Compact documentation:

recupera desperdicia espacio en la base de datos de mediante la creación de un nuevo archivo de base de datos desde el archivo existente. Al crear una nueva base de datos , recupera el espacio libre entre las filas.

Para ser más claros, Shrink reclama las páginas que son totalmente gratuitas o sin asignar; donde as, Compact reclama el espacio desperdiciado con en la página también. Por lo tanto, Compact requiere la creación de un nuevo archivo de base de datos .

espacio vacío con en la página podría ser como resultado de:

1) Si había 5 filas en una página y dos de ellos se suprimen

2) Si había una fila en el centro de la página, que en la actualización requiere más espacio , se ha salido de la página (Ej: actualización de la columna nvarchar)

páginas vacías y las páginas no asignados podrían permanecer en la base de datos como un re Sult de:

1) Todas las filas de una página se eliminan

2) toda la tabla se deja caer

Cuestiones relacionadas