0% encontró este documento útil (0 votos)
111 vistas

Buenas Practicas SQL Server

El documento ofrece recomendaciones sobre buenas prácticas para el diseño y mantenimiento de bases de datos en SQL Server, incluyendo realizar chequeos periódicos de la integridad de la base de datos, optimizar consultas mediante el uso de estadísticas e índices, y reparar o restaurar copias de seguridad en caso de errores.

Cargado por

Javier Castillo
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
111 vistas

Buenas Practicas SQL Server

El documento ofrece recomendaciones sobre buenas prácticas para el diseño y mantenimiento de bases de datos en SQL Server, incluyendo realizar chequeos periódicos de la integridad de la base de datos, optimizar consultas mediante el uso de estadísticas e índices, y reparar o restaurar copias de seguridad en caso de errores.

Cargado por

Javier Castillo
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 11

DISEÑO DE BASES DE DATOS

Buenas Prácticas en SQL Server


Lic. Ernesto López
DISEÑO DE BASES DE DATOS

Buenas Prácticas
Estas son recomendaciones sobre buenas prácticas para estructurar bases de datos, mejorar
rendimiento y mejorar las consultas dentro de SQL Server
DISEÑO DE BASES DE DATOS

Realizar un chequeo de la base de datos


El comando DBCC CHECKDB (‘base_de_datos’) realiza un chequeo de la integridad de nuestra
base de datos. Se puede verificar si nuestra base de datos esta integra tanto de forma física
como de manera lógica.
Nos brinda un detalle del estado de cada tabla en la base de datos y al final muestra un resumen
de lo encontrado dentro de la comprobación.
DISEÑO DE BASES DE DATOS

¿Qué sucede si existe algo dañado?


En el caso que exista un error y nuestra base de datos
se encuentre corrupta tenemos dos caminos:
1. Reparar la base de datos con el comando:
DBCC CHECKDB ('Northwind', REPAIR_ALLOW_DATA_LOSS);
Pero usar este comando tiene sus consecuencias ya que
podríamos perder datos en el proceso de reparación.
2. Recuperación por medio de un BACKUP
Para ello tenemos que establecer una buena política de
generación de copias de seguridad de nuestra base de
datos.
DISEÑO DE BASES DE DATOS

Estadísticas
Podemos activar o desactivar las estadísticas dentro de la ejecución de consultas SQL, para ello
usamos los comandos:
SET STATISTICS TIME ON
SET STATISTICS TIME OFF
DISEÑO DE BASES DE DATOS

Estadísticas con lecturas lógicas IO


Podemos activar también las estadísticas con lecturas lógicas dentro de base de datos.
SET STATISTICS IO ON
SELECT * FROM dbo.Products
WHERE ProductName LIKE 'CHA%'
SET STATISTICS IO OFF

Podría optimizar la consulta creando un índice en la tabla:


CREATE INDEX IX_TBPRODUCTOS_NOM_PROD ON dbo.Products (ProductName)
DISEÑO DE BASES DE DATOS

Estadísticas
¿Cuál es el objetivo de activar las estadísticas?
Para observar el rendimiento de un query y poder optimizarlo cuando se tenga una base de datos
con una cantidad considerable de registros. Tal ves con unos pocos registros no se consiga ver el
efecto pero si con millones de registros dentro de una base de datos.
Otro aspecto que permite ver las estadísticas es la cantidad de actividad que se produce en el
disco.

Las estadísticas se actualizan para que el gestor de


bases de datos ejecute las consultas acorde a lo que ya
conoce y los recursos que usa.
DISEÑO DE BASES DE DATOS

Conceptos
Índices: son creados en tablas o vistas.
Un index Scan es cuando SQL Server lee toda la data en la paginación de los índices. El costo de
un index Scan es mucho para el motor de bases de datos.
Un index Seek es cuando SQL Server lee solamente los datos coincidentes en la paginación de
índices. Este es el método más efectivo para un query eficiente porque reduce el tiempo de
respuesta.
DISEÑO DE BASES DE DATOS

Rendimiento de la consultas SQL


Consulta con Index Scan Consulta con Index Seek
SELECT FirstName FROM Dummy_PersonTable SELECT FirstName FROM Dummy_PersonTable
WHERE LEFT(FirstName, 1) = ‘K’ WHERE FirstName LIKE ‘K%’

Aquí se puede demostrar el por qué los querys deben estar optimizados antes de pasar a producción.
DISEÑO DE BASES DE DATOS

Consejos
No usar el * en consultas
De ser posible usar la cláusula LIMIT
Uso de comodines (Wildcard) dentro de las consultas, ejemplo:
SELECT City FROM Costumers
WHERE City LIKE ‘Char%’;
Pero evitar por ejemplo:
SELECT City FROM Costumers
WHERE City LIKE ‘%Char%’;
DISEÑO DE BASES DE DATOS

GRACIAS

© 2007 Cisco Systems, Inc. Todos los derechos reservados. Cisco Public 11

También podría gustarte