Este artículo es un artículo espejo de traducción automática, por favor haga clic aquí para saltar al artículo original.

Vista: 173|Respuesta: 0

[Consejos] Compresión de filas de tablas y compresión de páginas en bases de datos SQL Server

[Copiar enlace]
Publicado en 9/1/2026 11:20:06 | | | |
Requisitos: En la base de datos SQL Server hay una tabla (por ejemplo, tabla de log, tabla de log de solicitudes) que ocupa un espacio en disco muy grande, quizá cientos de GB, ¿cómo reducir el uso de espacio en tablas? La compresión de datos (ahorro de espacio) puede activarse para textos muy repetitivos (por ejemplo, HTML, JSON, logs).

Compresión ROW

La compresión cambiará el almacenamiento físico de los datos, pero no la estructura lógica de los mismos. El proceso de compresión de línea:

Identifica el tipo de dato de cada columna y conviértelo a una longitud variable
Finalmente, la cantidad de solicitudes de espacio de almacenamiento se reduce a la demanda real
Tras la compresión, la cantidad de datos almacenados en cada página aumenta
Después de la compresión, reduce la cantidad de metadatos
Por ejemplo, si el tipo de dato de una columna es smallint, el sistema asigna 2 bytes por defecto
Pero en realidad, solo se utiliza 1 byte de espacio, y si se activa la compresión en la tabla, se puede asignar bajo demanda

Compresión PAGE

La compresión de páginas realiza operaciones adicionales para mejorar la compresión de filas
Operaciones principales: compresión de línea, compresión de prefijos, compresión de diccionario

Consumo de CPU: compresión PAGE > compresión de fila

Prueba

Crea una nueva tabla Users1 y Users2, insertan ambas 100.000 piezas de datos, y el script sql es el siguiente:
Para ver la ocupación de espacio en la tabla, todos ellos de 3,27 MB, el comando es el siguiente:
Como se muestra a continuación:



Para ver el estado de compresión de la tabla Users2, el comando es el siguiente:
Como se muestra a continuación:



sp_estimate_data_compression_savingsEstima los ahorros que pueden producirse cuando activas tablas o particiones para filas, páginas, almacenes de columnas, archivos de almacén de columnas o compresión XML. El comando es el siguiente:
La salida es la siguiente:
object_name schema_name index_id partition_number size_with_current_compression_setting(KB) size_with_requested_compression_setting(KB)        sample_size_with_current_compression_setting(KB) sample_size_with_requested_compression_setting(KB)
Usuarios2 dbo 1 1 3368 1296 3448 1328

size_with_current_compression_setting (KB) 3368 KB El índice ocupa ≈ 3,29 MB con los ajustes de compresión actuales
size_with_requested_compression_setting (KB) 1296 KB Huella estimada ≈ 1,27 MB si activas el nuevo método de compresión que solicitas, como PAGE o ROW
Para ejecutar compresión de página, el comando es el siguiente:
Comparación de efectos:La tabla Users2 es de 3,27 MB antes de la compresión y 1,23 MB después de la compresión, como se muestra en la figura siguiente:



La visualización es la siguiente:



Referencia:

El inicio de sesión del hipervínculo es visible.
El inicio de sesión del hipervínculo es visible.
El inicio de sesión del hipervínculo es visible.




Anterior:Problema de unicidad de campo de eliminación suave (tombod) en base de datos
Próximo:Windows Defender Credential Guard no permite el uso de credenciales guardadas
Renuncia:
Todo el software, materiales de programación o artículos publicados por Code Farmer Network son únicamente para fines de aprendizaje e investigación; El contenido anterior no se utilizará con fines comerciales o ilegales; de lo contrario, los usuarios asumirán todas las consecuencias. La información de este sitio proviene de Internet, y las disputas de derechos de autor no tienen nada que ver con este sitio. Debes eliminar completamente el contenido anterior de tu ordenador en un plazo de 24 horas desde la descarga. Si te gusta el programa, por favor apoya el software genuino, compra el registro y obtén mejores servicios genuinos. Si hay alguna infracción, por favor contáctanos por correo electrónico.

Mail To:help@itsvse.com