Guia No. 3 - Topicos Avanzados de Diseño de BD SQL Server
Guia No. 3 - Topicos Avanzados de Diseño de BD SQL Server
Guia No. 3 - Topicos Avanzados de Diseño de BD SQL Server
Para compensar algunos de los costos, SQL Server incluye una caracterstica
que le permite comprimir sus datos en los diferentes niveles, especficamente,
tablas e ndices. En realidad se puede comprimir cualquiera de los siguientes:
Una tabla que se almacena como una pila (que no tiene un ndice agrupado)
Una tabla que tiene un ndice agrupado
Un ndice no agrupado
Una vista indexada
Una particin
SQL Server tiene dos tipos de compresin: datos y copia de seguridad. Esta
gua se concentrara en la compresin de datos.
Por ejemplo, si tiene una columna que tiene un tipo de datos smallint, por
defecto se asignar 2 bytes de almacenamiento. Sin embargo, el valor
insertado en la columna puede requerir slo 1 byte de almacenamiento. Si ese
es el caso, lo que permite la compresin en esa tabla reduce la cantidad de
almacenamiento asignado a slo lo que se necesita: 1 byte. Este proceso se
repite para cada columna de la tabla o el ndice.
Compresin de filas
La compresin de prefijo
La compresin de diccionario
2 Escuela Tecnolgica Instituto Tcnico Central
Bases de Datos II
Profesor : Ricardo Giraldo Gmez
Gua No.3 Tpicos Avanzados de Diseo de
Base de Datos con Sql Server
Como puede ver, la compresin de pgina incluye la compresin de filas como
parte de su proceso. Nada cambia con el proceso de compresin de filas que es
slo el primer paso en la compresin de pgina. Despus de la compresin de
filas se ha completado, el siguiente paso es la compresin de prefijo.
El valor 3kkk representa los tres primeros caracteres del prefijo y el KKK.
exec sp_estimate_data_compression_savings
@schema_name = 'Production',
@object_name = 'TransactionHistory',
@index_id = 1,
@partition_number = NULL,
@data_compression = 'row'
Este script puede tomar varios minutos para ejecutar en funcin de la cantidad
de datos que hay y el tipo de compresin que seleccione.
1.5 Resumen
5 Escuela Tecnolgica Instituto Tcnico Central
Bases de Datos II
Profesor : Ricardo Giraldo Gmez
Gua No.3 Tpicos Avanzados de Diseo de
Base de Datos con Sql Server
Decidir qu comprimir y cuando tomar una prueba definitiva y el analizar la
base de datos actual. La compresin en la mayora de los casos ahorrar
espacio, y puede incluso ofrecer algunas mejoras de rendimiento en el entorno
de base de datos global. El proceso de compresin se puede aplicar a ciertos
objetos en su base de datos utilizando SSMS o de T-SQL. Este gua examino los
dos tipos de compresin, de registros y pginas, y nos habl sobre las medidas
para aplicar ambos tipos de compresin.
2. PARTICIONAMIENTO DE TABLAS.
Como se muestra en la figura, dividir los datos por ao es simple para ilustrar.
Cuando se aade datos a la tabla, se coloca en el lugar adecuado en funcin
del ao de la venta. El particionamiento de tablas ofrece varios beneficios,
principalmente en la forma de simplificar el mantenimiento, las mejoras
potenciales de rendimiento, y la capacidad de almacenar fsicamente los datos
en una sola base de datos en varios discos.
Por ejemplo , hacer referencia a la Figura anterior tenga en cuenta que los
valores seran 2010 , 2011 , y 2012 , y una cuarta particin que contiene todos
los datos de ms de 2.012 . El ltimo argumento define en qu lado de la
frontera , izquierda o derecha , el lmite residirn .
Aunque SQL Server 2012 ofrece una interfaz de usuario muy robusto que
abarca todos los pasos necesarios para dividir una tabla o un ndice, se
va a utilizar T-SQL inicialmente para trabajar a travs del proceso de
particin.
Como se dijo anteriormente, las tablas y los ndices pueden ser divididas. Ms
especficamente, se puede dividir los siguientes objetos:
2.4 . Resumen.
Una vez ms, esto no es una lista exhaustiva de las limitaciones, pero estos
son los que tpicamente afectan siempre y cuando las instantneas de base de
datos funcionen en su entorno.
3.5. Resumen
USE AdventureWorks2012;
SELECT * FROM [HumanResources].[Department]
ORDER BY DepartmentID DESC
INNER
LEFT OUTER
RIGHT OUTER
La Sintaxis de JOIN
USE AdventureWorks2012;
SELECT
p.FirstName,
p.LastName
FROM Person.Person p
La tabla en la clusula FROM debe incluir una columna con los valores
que existen en la tabla que tiene intenciones de unirse. En este caso,
usted desea incluir una direccin de correo electrnico en el conjunto de
resultados. Para lograr esto, se debe hacer referencia a una segunda
tabla en la consulta, como se ilustra en la siguiente consulta:
USE AdventureWorks2012;
SELECT
p.FirstName,
p.LastName,
ea.EmailAddress
FROM Person.Person AS p
Por otro lado, si usted est tratando de recuperar todas las ventas, ya
sea que estn o no asociados a un producto, usted debe elegir una
combinacin externa derecha. La figura ilustra una combinacin externa
derecha.
Usando el TOP
USE AdventureWorks2012;
SELECT
p.Name AS ProductName
FROM Production.Product AS p
INNER JOIN Sales.SalesOrderDetail sd
ON p.ProductID = sd.ProductID
Por otra parte, si desea limitar el resultado slo a productos que no han
enviado, se agrega la clusula WHERE. En este ejemplo, la clusula
WHERE debe identificar todas las filas que contienen valores NULOS en
SalesOrderProduct y CarrierTrackingNumber.
A menudo, usted tendr que escribir dos sentencias SELECT que pueden
necesitar para combinar en un resultado para el consumo de una
aplicacin o usuario final. Con el uso de la palabra clave UNION, usted
puede lograr precisamente eso. UNION tiene dos variantes:
4.8. Resumen