SlideShare una empresa de Scribd logo
1 de 39
Agenda:
A.- Diseño y Arquitectura de Base de Datos en SQL Server
B.- Manejo de Consultas e índices en SQL Server
Temas:
1. Formateo y Alineamiento de Disco.
2. Diseño de la Base de datos Tempdb.
3. Diseño de Base de Datos.
A.- Diseño y Arquitectura de Base de
Datos en SQL Server
Mejores Prácticas con Transact SQL
Temas:
1. Formateo y Alineamiento de Disco.
2. Diseño de la Base de datos Tempdb.
3. Diseño de Base de Datos.
A.- Diseño y Arquitectura de Base de
Datos en SQL Server
Mejores Prácticas con Transact SQL
1.1. Definición
Formato y Alineamiento de Disco
La página es la unidad básica del almacenamiento de datos en SQL
Server. El espacio en disco asignado a un archivo de datos (.mdf o
.ndf) de una base de datos, se divide lógicamente en páginas
numeradas de forma contigua de 0 a n. Las operaciones de E/S de
disco se realizan a nivel de página. Es decir, SQL Server lee o escribe
páginas de datos enteras. El tamaño de página es de 8 KB. Esto
significa que las bases de datos de SQL Server tienen 128 páginas
por megabyte. Existen 3 datos importantes para alinear nuestras
particiones.
1.2. Formatear un Disco
Formato y Alineamiento de Disco
Temas:
1.Formateo y Alineamiento de Disco.
2.Diseño de la Base de datos Tempdb.
3.Diseño de Base de Datos.
A.- Diseño y Arquitectura de Base de
Datos en SQL Server
Mejores Prácticas con Transact SQL
2.1. Definición
Diseño de la Base de Datos de la Tempdb
La TempDB es una base de datos del sistema que se instala por
defecto y se utiliza para almacenar objetos temporales creados
por el usuario como tablas temporales, vistas temporales,
variables temporales u otro objeto temporal.
Temas:
1.Formateo y Alineamiento de Disco.
2.Diseño de la Base de datos Tempdb.
3.Diseño de Base de Datos.
A.- Diseño y Arquitectura de Base de
Datos en SQL Server
Mejores Prácticas con Transact SQL
3.1. Definición
Diseño de Base de Datos
Cuando vamos a crear una base de datos, por lo general, solo
pensamos en cómo se va a llamar y en qué servidor va a ser
alojada y sobre esto, determinamos si tenemos espacio en disco
para poder crearla. Pero las consideraciones que debemos de
tener en cuenta son:
- El tamaño proyectado que va a tener nuestra base de datos.
- La velocidad con la que podremos acceder a nuestra
información.
- La velocidad con la que podremos ingresar nuestra información.
- El tipo de información que almacenará la base de datos.
3.2. Pasos en el Diseño de la Base de Datos
Diseño de Base de Datos
Además, podemos decir que uno de los pasos más importantes
en la creación de una aplicación que maneja una base de datos,
es el diseño de la misma, ya que si no tenemos en cuenta unas
buenas definiciones de nuestras tablas, tipos de datos y ubicación
de la base de datos podemos tener problemas de performance al
momento de utilizar nuestra aplicación.
- Capacity Planning
- Tamaño de nuestra base de datos
Temas:
1. Buenas Practicas en la Construcción de Consultas.
2. SQL HINTS
3. Optimizando Consultas.
4. Indices.
5. T-SQL Planes de Ejecución.
B.- Manejo de Consultas e índices en SQL
Server
Mejores Prácticas con Transact SQL
Temas:
1.Buenas Prácticas en la Construcción de Consultas.
2. SQL HINTS
3. Optimizando Consultas.
4. Índices.
5. T-SQL Planes de Ejecución.
B.-Manejo de Consultas e índices en SQL
Server
Mejores Prácticas con Transact SQL
1.1. Definición
Buenas Practicas en la Construcción de Consultas
“El tema más importante en la elaboración de reportes o
extracción de información de nuestra base de datos es el tiempo
de procesamiento de las consultas que realizamos. Muchas veces,
esto se debe al hardware, el software utilizado, el mal diseño de
la base de datos, la mala formulación de índices y consultas. Por
tal motivo, para mejorar este último punto desarrollaremos
algunas consideraciones que nos permitirán minimizar el impacto
que tiene las consultas en el tiempo de procesamiento de
nuestra aplicación ”
1.2. Consideraciones
Buenas Practicas en la Construcción de Consultas
T-SQL Crude vs Stored Procedure
• Lo recomendado es siempre utilizar las consultas dentro de
motor de base de datos y no dentro de la aplicación.
• Siempre realizar la consulta dentro de un procedimiento
almacenado ya que éste se ejecuta más rápido que
cualquier consulta externa fuera del motor de base de
datos.
1.2. Consideraciones
Buenas Practicas en la Construcción de Consultas
T-SQL Crude vs Stored Procedure
• La primera vez que se ejecuta el procedimiento
almacenado es compilado lo que produce un plan de
ejecución que es un paso a paso de como el motor
ejecutará las sentencias SQL
• El plan es colocado en memoria (Cached) para su reuso
1.2. Consideraciones
Buenas Practicas en la Construcción de Consultas
T-SQL Crude vs Stored Procedure
Otra ventajas:
• Seguridad: no se le da acceso a objetos internos de BD
• Administración cualquier cambio se hace en el
procedimiento no en la aplicación
• Tráfico de Red se reduce el tráfico porque se trabaja sobre
el motor de BD
1.2. Consideraciones
Buenas Practicas en la Construcción de Consultas
Nunca se debe de utilizar el SELECT *
• No se debe usar Select * puesto que con esto el motor lee
primero toda la estructura de la tabla antes de ejecutar la
sentencia.
• Otra desventaja es que el resultado variará si se agrega o
quitan campos.
1.2. Consideraciones
Buenas Practicas en la Construcción de Consultas
Para hacer consultas entre tablas es preferible usar los JOIN, RIGTH
JOIN y LEFT JOIN.
• Usar JOIN, RIGTH JOIN y LEFT JOIN ya que mientras el motor de
base de datos va leyendo las tablas va verificando que relación se
necesita entre ellas y de este modo, éste lee menos registro y
hace mas eficiente la consulta a diferencia del WHERE que hace
que las tablas se lean en su totalidad y después hace las
relaciones
1.2. Consideraciones
Buenas Practicas en la Construcción de Consultas
Especificar a que tabla corresponde cada campo
• Si utilizas varias tablas en la consulta especifica siempre a que
tabla pertenece cada campo, le ahorras al gestor el tiempo de
localizar a que tabla pertenece el campo.
• En lugar de SELECT Nombre, Factura
FROM Clientes, Facturacion WHERE IdCliente=IdClienteFacturado,
usamos: SELECT Clientes.Nombre, Facturacion.Factura
WHERE Clientes.IdCliente = Facturacion.IdClienteFacturado.
1.2. Consideraciones
Buenas Practicas en la Construcción de Consultas
Orden de las Tablas en las Consultas.
Cuando se realiza una consulta entre varias tablas el orden de estas
debe ir de menor a mayor número de registros; dependiendo del
numero de columnas y registros de la tabla se genera un resultado
que puede llevar mucho tiempo para ser completado por parte del
motor de base de datos.
• Ej: Si deseamos saber cuantos alumnos se matricularon en el año 1996 y escribimos: FROM
Alumnos, Matriculas WHERE Alumno.IdAlumno = Matriculas.IdAlumno AND Matriculas.Año =
1996 el gestor recorrerá todos los alumnos para buscar sus matriculas y devolver las
correspondientes. Si escribimos FROM Matriculas, Alumnos WHERE Matriculas.Año = 1996
AND Matriculas.IdAlumno = Alumnos.IdAlumnos, el gestor filtra las matrículas y después
selecciona los alumnos, de esta forma tiene que recorrer menos registros.
1.2. Consideraciones
Buenas Practicas en la Construcción de Consultas
Operadores en el filtro:
Si utilizamos WHERE, los operadores a utilizar deben ser los de
mejor rendimiento. El orden de rendimiento de los operadores de
mayor a menor es:
=
>,>=, <=, <
LIKE
IN
<>, NOT IN, NOT LIKE
1.2. Consideraciones
Buenas Practicas en la Construcción de Consultas
Orden de las Tablas en las Consultas.
Cuando se realiza una consulta entre varias tablas el orden de estas
debe ir de menor a mayor número de registros; dependiendo del
numero de columnas y registros de la tabla se genera un resultado
que puede llevar mucho tiempo para ser completado por parte del
motor de base de datos.
1.2. Consideraciones
Buenas Practicas en la Construcción de Consultas
• Evitar el uso del comando LIKE con el siguiente wildcard „%R‟ ya
que no permite el uso del indice si el campo lo tuviera, LIKE con
el siguiente wildcard „R%‟ permite el escanéo parcial y el uso del
índice
• El comando BETWEEN es más eficiente que el IN porque el
primero busca un rango de valores y el segundo varios valores
puntuales provocando que la sentencia sea menos efectiva.
1.2. Consideraciones
Buenas Practicas en la Construcción de Consultas
• Cuando utilicemos los operadores AND es preferible empezar
por los campos que sean parte de algún índice para que la
información seleccionada sea mas selectiva y la cantidad
de registros leídos sea mínimo.
• Cuando se tenga la necesidad de ordenar los datos en una
consulta se recomienda que los campos a ordenar sea el menor
número posible, y también se sugiere crear un índice de tipo
clustered index sobre el campo que se esta utilizando.
1.2. Consideraciones
Buenas Practicas en la Construcción de Consultas
• No se recomienda el uso del INSERT INTO ya que esto origina
que la tabla se bloquee mientras se esta llevando acabo el insert
y de este modo se impide el uso del resto de datos a los
usuarios.
• Si dentro de una consulta se debe utilizar el comando HAVING se
recomienda hacer todos los filtros posibles con el comando
WHERE, de esta forma el trabajo que tiene que realizar el
comando HAVING será el menor posible.
1.2. Consideraciones
Buenas Practicas en la Construcción de Consultas
• Se procurará elegir en la cláusula WHERE aquellos campos que
formen parte del índice de la tabla
• Además se especificarán en el mismo orden en el que estén
definidos en la clave.
•Filtrar siempre por campos que tengan índices.
1.2. Consideraciones
Buenas Practicas en la Construcción de Consultas
• Si deseamos interrogar por campos pertenecientes a índices
compuestos es mejor utilizar todos los campos de todos los índices.
Si tenemos un índice formado por el campo NOMBRE y el campo
APELLIDO y otro índice formado por el campo EDAD. La sentencia
WHERE NOMBRE='Juan' AND APELLIDO Like '%' AND EDAD = 20
sería más optima que WHERE NOMBRE = 'Juan' AND EDAD = 20
por que el gestor, en este segundo caso, no puede usar el primer
índice y ambas sentencias son equivalentes por que la condición
APELLIDO Like '%' devolvería todos los registros.
Temas:
1.Buenas Prácticas en la Construcción de Consultas.
2. SQL HINTS
3. Optimizando Consultas.
4. Índices.
5. T-SQL Planes de Ejecución.
B.- Manejo de Consultas e índices en SQL
Server
Mejores Prácticas con Transact SQL
2.1. Definición
SQL Hints
«Los HINTS son opciones que se interponen a los comandos Select,
Insert, Update y Delete para especificar qué es lo que se tiene que
hacer, en lugar que el motor de base de datos decida qué hacer. El
lugar donde el motor decide cómo hacer la consulta, se llama
optimizador de consultas y la forma cómo se ejecuta la consulta se
llama Plan de ejecución
Existen 4 formas de aplicar los HINTS:
JOIN HINTS: Que especifica el tipo de JOIN que se utilizará.
INDEX HINTS: Que especifica el tipo de INDEX que se utilizará
LOCK HINTS: Que especifica el tipo de bloqueo que se utilizará.
PROCESSING HINTS: Que especifica la forma cómo se ejecutara el
query..»
Temas:
1.Buenas Practicas en la Construcción de Consultas.
2. SQL HINTS
3. Optimizando Consultas.
4. Índices.
5. T-SQL Planes de Ejecución.
B.- Manejo de Consultas e índices en SQL
Server
Mejores Prácticas con Transact SQL
3.1. Definición
Optimizando Consultas
Cuando trabajamos realizando consultas sobre nuestra base de
datos tenemos que saber que siempre existirán consultas que son
más pesadas que otras, ya sea por que tenemos queries que
consultan tablas que tiene más registros que otras o por que los
filtros que utilizamos invocan a una gran cantidad de registros
entre tablas.
El objetivo de este punto es determinar cuáles son las consultas
de mayor impacto en nuestro servidor y analizar qué podemos
cambiar en ellas para mejorar la performance de nuestra base de
datos.
Temas:
1.Buenas Practicas en la Construcción de Consultas.
2. SQL HINTS
3. Optimizando Consultas.
4. Índices.
5. T-SQL Planes de Ejecución.
B.- Manejo de Consultas e índices en SQL
Server
Mejores Prácticas con Transact SQL
4.1. Definición
Índices
«La performance de la aplicación, por lo general, siempre está
basada directamente, en el buen o mal diseño de nuestros índices,
ya que la función principal de éstos es optimizar el acceso a los
datos »
4.2. Tipos de Indices
Índices
Índices Tipo Clustered
Índices de tipo No Clustered
Temas:
1.Buenas Practicas en la Construcción de Consultas.
2. SQL HINTS
3. Optimizando Consultas.
4. Índices.
5. T-SQL Planes de Ejecución.
B.- Manejo de Consultas e índices en SQL
Server
Mejores Prácticas con Transact SQL
5.1. Definición
T-SQL Planes de Ejecución
«Cuando ejecutamos una sentencia dentro de nuestra base de datos,
el motor internamente ejecuta una serie de operación que varían
según la cantidad de datos, objetos y schemas. A estas operaciones
en conjunto. se le conoce como Plan de Ejecución .»
5.2. Objetos de Planes de Ejecución
T-SQL Planes de Ejecución
Dentro de los Planes de ejecución se conocen los
siguientes operadores:
•Table Scan
•Clustered Index Scan
•Clustered Index Seek
•Index Seek
•Bookmark Lookup
•Index Scan
•Neested Loop Join
•Merge Join
•Hash Join
•Sort
Mejores practicas sql

Más contenido relacionado

La actualidad más candente

Diagramas UML
Diagramas UMLDiagramas UML
Diagramas UML1da4
 
phpMyAdmin con Xampp
phpMyAdmin con XamppphpMyAdmin con Xampp
phpMyAdmin con XamppLeccionesWeb
 
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacionalDB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacionalFranklin Parrales Bravo
 
Arboles En Estructura de Datos
Arboles En Estructura de DatosArboles En Estructura de Datos
Arboles En Estructura de DatosDARKGIRL93
 
Modelo conceptual de la base de datos
Modelo conceptual de la base de datosModelo conceptual de la base de datos
Modelo conceptual de la base de datosRuth Hidalgo Tene
 
Sql DML Lenguaje de manipulación de datos
Sql DML Lenguaje de manipulación de datos Sql DML Lenguaje de manipulación de datos
Sql DML Lenguaje de manipulación de datos josecuartas
 
Tema3 modelo relacional - normalización
Tema3   modelo relacional - normalizaciónTema3   modelo relacional - normalización
Tema3 modelo relacional - normalizaciónAlvaro Loustau
 
TUTORIAL DE MySQL WORKBENCH
TUTORIAL DE MySQL WORKBENCHTUTORIAL DE MySQL WORKBENCH
TUTORIAL DE MySQL WORKBENCHkelsy98
 
Codigo para crear la base de datos
Codigo para crear la base de datosCodigo para crear la base de datos
Codigo para crear la base de datosAlvaro Cardona
 
Mineria de Datos
Mineria de DatosMineria de Datos
Mineria de Datos04071977
 
Modelo Entidad Relacion E-R
Modelo Entidad Relacion E-RModelo Entidad Relacion E-R
Modelo Entidad Relacion E-RRobert Rodriguez
 
Minería de datos
Minería de datosMinería de datos
Minería de datosKeopx
 
Como elaborar diagrama de estado
Como elaborar diagrama de estadoComo elaborar diagrama de estado
Como elaborar diagrama de estadojesus369
 

La actualidad más candente (20)

Diagramas UML
Diagramas UMLDiagramas UML
Diagramas UML
 
phpMyAdmin con Xampp
phpMyAdmin con XamppphpMyAdmin con Xampp
phpMyAdmin con Xampp
 
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacionalDB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
 
Arboles En Estructura de Datos
Arboles En Estructura de DatosArboles En Estructura de Datos
Arboles En Estructura de Datos
 
Diseño fisico
Diseño fisicoDiseño fisico
Diseño fisico
 
Modelo conceptual de la base de datos
Modelo conceptual de la base de datosModelo conceptual de la base de datos
Modelo conceptual de la base de datos
 
Manual Básico Knime
Manual Básico KnimeManual Básico Knime
Manual Básico Knime
 
Historia de la base de datos
Historia de la base de datosHistoria de la base de datos
Historia de la base de datos
 
Sql DML Lenguaje de manipulación de datos
Sql DML Lenguaje de manipulación de datos Sql DML Lenguaje de manipulación de datos
Sql DML Lenguaje de manipulación de datos
 
Tema3 modelo relacional - normalización
Tema3   modelo relacional - normalizaciónTema3   modelo relacional - normalización
Tema3 modelo relacional - normalización
 
C3 lenguaje de presentación.
C3 lenguaje de presentación.C3 lenguaje de presentación.
C3 lenguaje de presentación.
 
TUTORIAL DE MySQL WORKBENCH
TUTORIAL DE MySQL WORKBENCHTUTORIAL DE MySQL WORKBENCH
TUTORIAL DE MySQL WORKBENCH
 
Codigo para crear la base de datos
Codigo para crear la base de datosCodigo para crear la base de datos
Codigo para crear la base de datos
 
Mineria de Datos
Mineria de DatosMineria de Datos
Mineria de Datos
 
Componentes de sgbd
Componentes de sgbdComponentes de sgbd
Componentes de sgbd
 
Modelo Entidad Relacion E-R
Modelo Entidad Relacion E-RModelo Entidad Relacion E-R
Modelo Entidad Relacion E-R
 
NORMALIZACIÓN
NORMALIZACIÓN  NORMALIZACIÓN
NORMALIZACIÓN
 
Minería de datos
Minería de datosMinería de datos
Minería de datos
 
Como elaborar diagrama de estado
Como elaborar diagrama de estadoComo elaborar diagrama de estado
Como elaborar diagrama de estado
 
Algebra Relacional
Algebra RelacionalAlgebra Relacional
Algebra Relacional
 

Destacado

Trucos, OptimizacióN Y Buenas PráCticas Para Sql
Trucos, OptimizacióN Y Buenas PráCticas Para SqlTrucos, OptimizacióN Y Buenas PráCticas Para Sql
Trucos, OptimizacióN Y Buenas PráCticas Para SqlAntonio Soto
 
Lo que siempre has querido saber para exprimir sql server
Lo que siempre has querido saber para exprimir sql serverLo que siempre has querido saber para exprimir sql server
Lo que siempre has querido saber para exprimir sql serverEnrique Catala Bañuls
 
BEST_PRACTICES: Buenas Prácticas para el Desarrollador de bases de datos
BEST_PRACTICES: Buenas Prácticas para el Desarrollador de bases de datos BEST_PRACTICES: Buenas Prácticas para el Desarrollador de bases de datos
BEST_PRACTICES: Buenas Prácticas para el Desarrollador de bases de datos SolidQ
 
Buenas prácticas de codificación para capas de acceso a datos de aplicaciones...
Buenas prácticas de codificación para capas de acceso a datos de aplicaciones...Buenas prácticas de codificación para capas de acceso a datos de aplicaciones...
Buenas prácticas de codificación para capas de acceso a datos de aplicaciones...SolidQ
 
Administrando SQL Server, mejores practicas para un DBA
Administrando SQL Server, mejores practicas para un DBAAdministrando SQL Server, mejores practicas para un DBA
Administrando SQL Server, mejores practicas para un DBASpanishPASSVC
 
Taller Consultas Básicas SQL Server No 1
Taller Consultas Básicas SQL Server No 1Taller Consultas Básicas SQL Server No 1
Taller Consultas Básicas SQL Server No 1Julián Castiblanco
 
Programacion con SQL Server 2005
Programacion con SQL Server 2005Programacion con SQL Server 2005
Programacion con SQL Server 2005brobelo
 
Big data y la inteligencia de negocios
Big data y la inteligencia de negociosBig data y la inteligencia de negocios
Big data y la inteligencia de negociosnnakasone
 
Big data y la inteligencia de negocios
Big data y la inteligencia de negociosBig data y la inteligencia de negocios
Big data y la inteligencia de negociosnnakasone
 
BEST_PRACTICES: Buenas prácticas para el DBA
BEST_PRACTICES: Buenas prácticas para el DBA BEST_PRACTICES: Buenas prácticas para el DBA
BEST_PRACTICES: Buenas prácticas para el DBA SolidQ
 
Sql 2012 bi cibertec
Sql 2012 bi cibertecSql 2012 bi cibertec
Sql 2012 bi cibertecnnakasone
 
WebCast de optimización Sql Server - Almacenamiento e Índices
WebCast de optimización Sql Server - Almacenamiento e ÍndicesWebCast de optimización Sql Server - Almacenamiento e Índices
WebCast de optimización Sql Server - Almacenamiento e ÍndicesJOSE AHIAS LOPEZ PORTILLO
 
Novedades en el manejo de Grandes volúmenes de datos con SQL Server 2014
Novedades en el manejo de Grandes volúmenes de datos con SQL Server 2014Novedades en el manejo de Grandes volúmenes de datos con SQL Server 2014
Novedades en el manejo de Grandes volúmenes de datos con SQL Server 2014Enrique Puig
 
Bases de Datos Distribuidas con Sql Server 2012
Bases de Datos Distribuidas con Sql Server 2012Bases de Datos Distribuidas con Sql Server 2012
Bases de Datos Distribuidas con Sql Server 2012Antonio Ortiz
 
Curso sql server 2012 clase 1
Curso sql server 2012 clase 1Curso sql server 2012 clase 1
Curso sql server 2012 clase 1josealopezpastor
 
Curso sql server 2012 clase 3
Curso sql server 2012 clase 3Curso sql server 2012 clase 3
Curso sql server 2012 clase 3josealopezpastor
 
INDICES EN SQL SERVER
INDICES EN SQL SERVERINDICES EN SQL SERVER
INDICES EN SQL SERVERDarwin Durand
 
Curso sql server 2012 clase 2
Curso sql server 2012 clase 2Curso sql server 2012 clase 2
Curso sql server 2012 clase 2josealopezpastor
 

Destacado (20)

Trucos, OptimizacióN Y Buenas PráCticas Para Sql
Trucos, OptimizacióN Y Buenas PráCticas Para SqlTrucos, OptimizacióN Y Buenas PráCticas Para Sql
Trucos, OptimizacióN Y Buenas PráCticas Para Sql
 
Lo que siempre has querido saber para exprimir sql server
Lo que siempre has querido saber para exprimir sql serverLo que siempre has querido saber para exprimir sql server
Lo que siempre has querido saber para exprimir sql server
 
BEST_PRACTICES: Buenas Prácticas para el Desarrollador de bases de datos
BEST_PRACTICES: Buenas Prácticas para el Desarrollador de bases de datos BEST_PRACTICES: Buenas Prácticas para el Desarrollador de bases de datos
BEST_PRACTICES: Buenas Prácticas para el Desarrollador de bases de datos
 
Buenas prácticas de codificación para capas de acceso a datos de aplicaciones...
Buenas prácticas de codificación para capas de acceso a datos de aplicaciones...Buenas prácticas de codificación para capas de acceso a datos de aplicaciones...
Buenas prácticas de codificación para capas de acceso a datos de aplicaciones...
 
Administrando SQL Server, mejores practicas para un DBA
Administrando SQL Server, mejores practicas para un DBAAdministrando SQL Server, mejores practicas para un DBA
Administrando SQL Server, mejores practicas para un DBA
 
Taller Consultas Básicas SQL Server No 1
Taller Consultas Básicas SQL Server No 1Taller Consultas Básicas SQL Server No 1
Taller Consultas Básicas SQL Server No 1
 
Programacion con SQL Server 2005
Programacion con SQL Server 2005Programacion con SQL Server 2005
Programacion con SQL Server 2005
 
Taller Básico Sentencias SQL
Taller Básico Sentencias SQL Taller Básico Sentencias SQL
Taller Básico Sentencias SQL
 
Itil v2011
Itil v2011Itil v2011
Itil v2011
 
Big data y la inteligencia de negocios
Big data y la inteligencia de negociosBig data y la inteligencia de negocios
Big data y la inteligencia de negocios
 
Big data y la inteligencia de negocios
Big data y la inteligencia de negociosBig data y la inteligencia de negocios
Big data y la inteligencia de negocios
 
BEST_PRACTICES: Buenas prácticas para el DBA
BEST_PRACTICES: Buenas prácticas para el DBA BEST_PRACTICES: Buenas prácticas para el DBA
BEST_PRACTICES: Buenas prácticas para el DBA
 
Sql 2012 bi cibertec
Sql 2012 bi cibertecSql 2012 bi cibertec
Sql 2012 bi cibertec
 
WebCast de optimización Sql Server - Almacenamiento e Índices
WebCast de optimización Sql Server - Almacenamiento e ÍndicesWebCast de optimización Sql Server - Almacenamiento e Índices
WebCast de optimización Sql Server - Almacenamiento e Índices
 
Novedades en el manejo de Grandes volúmenes de datos con SQL Server 2014
Novedades en el manejo de Grandes volúmenes de datos con SQL Server 2014Novedades en el manejo de Grandes volúmenes de datos con SQL Server 2014
Novedades en el manejo de Grandes volúmenes de datos con SQL Server 2014
 
Bases de Datos Distribuidas con Sql Server 2012
Bases de Datos Distribuidas con Sql Server 2012Bases de Datos Distribuidas con Sql Server 2012
Bases de Datos Distribuidas con Sql Server 2012
 
Curso sql server 2012 clase 1
Curso sql server 2012 clase 1Curso sql server 2012 clase 1
Curso sql server 2012 clase 1
 
Curso sql server 2012 clase 3
Curso sql server 2012 clase 3Curso sql server 2012 clase 3
Curso sql server 2012 clase 3
 
INDICES EN SQL SERVER
INDICES EN SQL SERVERINDICES EN SQL SERVER
INDICES EN SQL SERVER
 
Curso sql server 2012 clase 2
Curso sql server 2012 clase 2Curso sql server 2012 clase 2
Curso sql server 2012 clase 2
 

Similar a Mejores practicas sql

Optimizacion De Consultas
Optimizacion De ConsultasOptimizacion De Consultas
Optimizacion De ConsultasOto Tumax
 
Diseño de bases de datos
Diseño de bases de datosDiseño de bases de datos
Diseño de bases de datosrulo182
 
Diseño físico y rendimiento de la bd
Diseño físico y rendimiento de la bdDiseño físico y rendimiento de la bd
Diseño físico y rendimiento de la bdLuis Jherry
 
Diseño físico y rendimiento de la bd2
Diseño físico y rendimiento de la bd2Diseño físico y rendimiento de la bd2
Diseño físico y rendimiento de la bd2Luis Jherry
 
Consideraciones de diseño
Consideraciones de diseñoConsideraciones de diseño
Consideraciones de diseñoYoung Hyun
 
Diseño de bases de datos
Diseño de bases de datosDiseño de bases de datos
Diseño de bases de datosAbraham Rosas'c
 
Diseño físico y rendimiento de la bd
Diseño físico y rendimiento de la bdDiseño físico y rendimiento de la bd
Diseño físico y rendimiento de la bdLuis Jherry
 
Diseño físico y rendimiento de la bd2
Diseño físico y rendimiento de la bd2Diseño físico y rendimiento de la bd2
Diseño físico y rendimiento de la bd2Luis Jherry
 
Creación de base de datos
Creación de base de datosCreación de base de datos
Creación de base de datosUTN
 
Carbura tusql sesion2_slideshare
Carbura tusql sesion2_slideshareCarbura tusql sesion2_slideshare
Carbura tusql sesion2_slideshareJulián Castiblanco
 
Optimizacion consultas oracle
Optimizacion consultas oracleOptimizacion consultas oracle
Optimizacion consultas oracleBlitzHive
 
Optimizacion consultas oracle
Optimizacion consultas oracleOptimizacion consultas oracle
Optimizacion consultas oracleBlitzHive
 
SQL Saturday 254 10- Cosas que no se deben de hacer en una BD
SQL Saturday 254   10- Cosas que no se deben de hacer en una BDSQL Saturday 254   10- Cosas que no se deben de hacer en una BD
SQL Saturday 254 10- Cosas que no se deben de hacer en una BDAdrian Miranda
 
MS SQL Server 2014 - In-Memory ColumnStore Index - Haciendo un almacén de datos
MS SQL Server 2014 - In-Memory ColumnStore Index - Haciendo un almacén de datosMS SQL Server 2014 - In-Memory ColumnStore Index - Haciendo un almacén de datos
MS SQL Server 2014 - In-Memory ColumnStore Index - Haciendo un almacén de datosJoseph Lopez
 
SQL Server Fundamentals 3ra Sesion
SQL Server Fundamentals 3ra SesionSQL Server Fundamentals 3ra Sesion
SQL Server Fundamentals 3ra SesionJulián Castiblanco
 
Diseño de una base de datos
Diseño de una base de datosDiseño de una base de datos
Diseño de una base de datosAnthonyLeonRuiz
 
Diseño de una base de datos
Diseño de una base de datosDiseño de una base de datos
Diseño de una base de datosAnthonyLeonRuiz
 

Similar a Mejores practicas sql (20)

Optimizacion De Consultas
Optimizacion De ConsultasOptimizacion De Consultas
Optimizacion De Consultas
 
Diseño de bases de datos
Diseño de bases de datosDiseño de bases de datos
Diseño de bases de datos
 
Diseño físico y rendimiento de la bd
Diseño físico y rendimiento de la bdDiseño físico y rendimiento de la bd
Diseño físico y rendimiento de la bd
 
Diseño físico y rendimiento de la bd2
Diseño físico y rendimiento de la bd2Diseño físico y rendimiento de la bd2
Diseño físico y rendimiento de la bd2
 
Consideraciones de diseño
Consideraciones de diseñoConsideraciones de diseño
Consideraciones de diseño
 
Diseño de bases de datos
Diseño de bases de datosDiseño de bases de datos
Diseño de bases de datos
 
Tips y sugerencias
Tips y sugerenciasTips y sugerencias
Tips y sugerencias
 
Diseño físico y rendimiento de la bd
Diseño físico y rendimiento de la bdDiseño físico y rendimiento de la bd
Diseño físico y rendimiento de la bd
 
Diseño físico y rendimiento de la bd2
Diseño físico y rendimiento de la bd2Diseño físico y rendimiento de la bd2
Diseño físico y rendimiento de la bd2
 
Creación de base de datos
Creación de base de datosCreación de base de datos
Creación de base de datos
 
Carbura tusql sesion2_slideshare
Carbura tusql sesion2_slideshareCarbura tusql sesion2_slideshare
Carbura tusql sesion2_slideshare
 
Optimizacion consultas oracle
Optimizacion consultas oracleOptimizacion consultas oracle
Optimizacion consultas oracle
 
Optimizacion consultas oracle
Optimizacion consultas oracleOptimizacion consultas oracle
Optimizacion consultas oracle
 
SQL Saturday 254 10- Cosas que no se deben de hacer en una BD
SQL Saturday 254   10- Cosas que no se deben de hacer en una BDSQL Saturday 254   10- Cosas que no se deben de hacer en una BD
SQL Saturday 254 10- Cosas que no se deben de hacer en una BD
 
MS SQL Server 2014 - In-Memory ColumnStore Index - Haciendo un almacén de datos
MS SQL Server 2014 - In-Memory ColumnStore Index - Haciendo un almacén de datosMS SQL Server 2014 - In-Memory ColumnStore Index - Haciendo un almacén de datos
MS SQL Server 2014 - In-Memory ColumnStore Index - Haciendo un almacén de datos
 
DB1 Unidad 6: Indices
DB1 Unidad 6: IndicesDB1 Unidad 6: Indices
DB1 Unidad 6: Indices
 
SQL Server Fundamentals 3ra Sesion
SQL Server Fundamentals 3ra SesionSQL Server Fundamentals 3ra Sesion
SQL Server Fundamentals 3ra Sesion
 
Diseño de una base de datos
Diseño de una base de datosDiseño de una base de datos
Diseño de una base de datos
 
Diseño de una base de datos
Diseño de una base de datosDiseño de una base de datos
Diseño de una base de datos
 
Diseño de una base de datos
Diseño de una base de datosDiseño de una base de datos
Diseño de una base de datos
 

Más de nnakasone

Azure Data Mesh
Azure Data MeshAzure Data Mesh
Azure Data Meshnnakasone
 
Big Data en el mundo del Machine Learning
Big Data en el mundo del Machine LearningBig Data en el mundo del Machine Learning
Big Data en el mundo del Machine Learningnnakasone
 
Como empezar tu Carrera como Azure Data Engineer
Como empezar tu Carrera como Azure Data EngineerComo empezar tu Carrera como Azure Data Engineer
Como empezar tu Carrera como Azure Data Engineernnakasone
 
Aprende a diseñar tableros de control (dashboard) de Alto impacto
Aprende a diseñar tableros de control (dashboard) de Alto impactoAprende a diseñar tableros de control (dashboard) de Alto impacto
Aprende a diseñar tableros de control (dashboard) de Alto impactonnakasone
 
Azure Synapse LInk
Azure Synapse LInkAzure Synapse LInk
Azure Synapse LInknnakasone
 
Ingeniería de datos para el mejoramiento continuo de los negocios
Ingeniería de datos para el mejoramiento continuo de los negociosIngeniería de datos para el mejoramiento continuo de los negocios
Ingeniería de datos para el mejoramiento continuo de los negociosnnakasone
 
Como Empezar en el mundo de la Inteligencia Artificial
Como Empezar en el mundo de la Inteligencia ArtificialComo Empezar en el mundo de la Inteligencia Artificial
Como Empezar en el mundo de la Inteligencia Artificialnnakasone
 
Introducing to sql server 2022
Introducing to sql server 2022Introducing to sql server 2022
Introducing to sql server 2022nnakasone
 
Synthetic data
Synthetic dataSynthetic data
Synthetic datannakasone
 
PowerBI Admin
PowerBI AdminPowerBI Admin
PowerBI Adminnnakasone
 
Analitica Aplicada a la Salud
Analitica Aplicada a la SaludAnalitica Aplicada a la Salud
Analitica Aplicada a la Saludnnakasone
 
GAI_Microsoft_Speech_NN.pdf
GAI_Microsoft_Speech_NN.pdfGAI_Microsoft_Speech_NN.pdf
GAI_Microsoft_Speech_NN.pdfnnakasone
 
Implementando redes educativas empresariales
Implementando redes educativas empresarialesImplementando redes educativas empresariales
Implementando redes educativas empresarialesnnakasone
 
Construyendo soluciones ONNX con Microsoft AI Platform
Construyendo soluciones ONNX con Microsoft AI PlatformConstruyendo soluciones ONNX con Microsoft AI Platform
Construyendo soluciones ONNX con Microsoft AI Platformnnakasone
 
Detectando Mentiras con AI
Detectando Mentiras con AIDetectando Mentiras con AI
Detectando Mentiras con AInnakasone
 
Azure Hd insigth news
Azure Hd insigth newsAzure Hd insigth news
Azure Hd insigth newsnnakasone
 
Genomic sql pass
Genomic sql passGenomic sql pass
Genomic sql passnnakasone
 
Azure Quantum Computing
Azure Quantum ComputingAzure Quantum Computing
Azure Quantum Computingnnakasone
 
Inteligencia Artificial Success Case
Inteligencia Artificial Success CaseInteligencia Artificial Success Case
Inteligencia Artificial Success Casennakasone
 
Vision Artificial Casos de Exito
Vision Artificial Casos de ExitoVision Artificial Casos de Exito
Vision Artificial Casos de Exitonnakasone
 

Más de nnakasone (20)

Azure Data Mesh
Azure Data MeshAzure Data Mesh
Azure Data Mesh
 
Big Data en el mundo del Machine Learning
Big Data en el mundo del Machine LearningBig Data en el mundo del Machine Learning
Big Data en el mundo del Machine Learning
 
Como empezar tu Carrera como Azure Data Engineer
Como empezar tu Carrera como Azure Data EngineerComo empezar tu Carrera como Azure Data Engineer
Como empezar tu Carrera como Azure Data Engineer
 
Aprende a diseñar tableros de control (dashboard) de Alto impacto
Aprende a diseñar tableros de control (dashboard) de Alto impactoAprende a diseñar tableros de control (dashboard) de Alto impacto
Aprende a diseñar tableros de control (dashboard) de Alto impacto
 
Azure Synapse LInk
Azure Synapse LInkAzure Synapse LInk
Azure Synapse LInk
 
Ingeniería de datos para el mejoramiento continuo de los negocios
Ingeniería de datos para el mejoramiento continuo de los negociosIngeniería de datos para el mejoramiento continuo de los negocios
Ingeniería de datos para el mejoramiento continuo de los negocios
 
Como Empezar en el mundo de la Inteligencia Artificial
Como Empezar en el mundo de la Inteligencia ArtificialComo Empezar en el mundo de la Inteligencia Artificial
Como Empezar en el mundo de la Inteligencia Artificial
 
Introducing to sql server 2022
Introducing to sql server 2022Introducing to sql server 2022
Introducing to sql server 2022
 
Synthetic data
Synthetic dataSynthetic data
Synthetic data
 
PowerBI Admin
PowerBI AdminPowerBI Admin
PowerBI Admin
 
Analitica Aplicada a la Salud
Analitica Aplicada a la SaludAnalitica Aplicada a la Salud
Analitica Aplicada a la Salud
 
GAI_Microsoft_Speech_NN.pdf
GAI_Microsoft_Speech_NN.pdfGAI_Microsoft_Speech_NN.pdf
GAI_Microsoft_Speech_NN.pdf
 
Implementando redes educativas empresariales
Implementando redes educativas empresarialesImplementando redes educativas empresariales
Implementando redes educativas empresariales
 
Construyendo soluciones ONNX con Microsoft AI Platform
Construyendo soluciones ONNX con Microsoft AI PlatformConstruyendo soluciones ONNX con Microsoft AI Platform
Construyendo soluciones ONNX con Microsoft AI Platform
 
Detectando Mentiras con AI
Detectando Mentiras con AIDetectando Mentiras con AI
Detectando Mentiras con AI
 
Azure Hd insigth news
Azure Hd insigth newsAzure Hd insigth news
Azure Hd insigth news
 
Genomic sql pass
Genomic sql passGenomic sql pass
Genomic sql pass
 
Azure Quantum Computing
Azure Quantum ComputingAzure Quantum Computing
Azure Quantum Computing
 
Inteligencia Artificial Success Case
Inteligencia Artificial Success CaseInteligencia Artificial Success Case
Inteligencia Artificial Success Case
 
Vision Artificial Casos de Exito
Vision Artificial Casos de ExitoVision Artificial Casos de Exito
Vision Artificial Casos de Exito
 

Mejores practicas sql

  • 1.
  • 2. Agenda: A.- Diseño y Arquitectura de Base de Datos en SQL Server B.- Manejo de Consultas e índices en SQL Server
  • 3. Temas: 1. Formateo y Alineamiento de Disco. 2. Diseño de la Base de datos Tempdb. 3. Diseño de Base de Datos. A.- Diseño y Arquitectura de Base de Datos en SQL Server Mejores Prácticas con Transact SQL
  • 4. Temas: 1. Formateo y Alineamiento de Disco. 2. Diseño de la Base de datos Tempdb. 3. Diseño de Base de Datos. A.- Diseño y Arquitectura de Base de Datos en SQL Server Mejores Prácticas con Transact SQL
  • 5. 1.1. Definición Formato y Alineamiento de Disco La página es la unidad básica del almacenamiento de datos en SQL Server. El espacio en disco asignado a un archivo de datos (.mdf o .ndf) de una base de datos, se divide lógicamente en páginas numeradas de forma contigua de 0 a n. Las operaciones de E/S de disco se realizan a nivel de página. Es decir, SQL Server lee o escribe páginas de datos enteras. El tamaño de página es de 8 KB. Esto significa que las bases de datos de SQL Server tienen 128 páginas por megabyte. Existen 3 datos importantes para alinear nuestras particiones.
  • 6. 1.2. Formatear un Disco Formato y Alineamiento de Disco
  • 7. Temas: 1.Formateo y Alineamiento de Disco. 2.Diseño de la Base de datos Tempdb. 3.Diseño de Base de Datos. A.- Diseño y Arquitectura de Base de Datos en SQL Server Mejores Prácticas con Transact SQL
  • 8. 2.1. Definición Diseño de la Base de Datos de la Tempdb La TempDB es una base de datos del sistema que se instala por defecto y se utiliza para almacenar objetos temporales creados por el usuario como tablas temporales, vistas temporales, variables temporales u otro objeto temporal.
  • 9. Temas: 1.Formateo y Alineamiento de Disco. 2.Diseño de la Base de datos Tempdb. 3.Diseño de Base de Datos. A.- Diseño y Arquitectura de Base de Datos en SQL Server Mejores Prácticas con Transact SQL
  • 10. 3.1. Definición Diseño de Base de Datos Cuando vamos a crear una base de datos, por lo general, solo pensamos en cómo se va a llamar y en qué servidor va a ser alojada y sobre esto, determinamos si tenemos espacio en disco para poder crearla. Pero las consideraciones que debemos de tener en cuenta son: - El tamaño proyectado que va a tener nuestra base de datos. - La velocidad con la que podremos acceder a nuestra información. - La velocidad con la que podremos ingresar nuestra información. - El tipo de información que almacenará la base de datos.
  • 11. 3.2. Pasos en el Diseño de la Base de Datos Diseño de Base de Datos Además, podemos decir que uno de los pasos más importantes en la creación de una aplicación que maneja una base de datos, es el diseño de la misma, ya que si no tenemos en cuenta unas buenas definiciones de nuestras tablas, tipos de datos y ubicación de la base de datos podemos tener problemas de performance al momento de utilizar nuestra aplicación. - Capacity Planning - Tamaño de nuestra base de datos
  • 12. Temas: 1. Buenas Practicas en la Construcción de Consultas. 2. SQL HINTS 3. Optimizando Consultas. 4. Indices. 5. T-SQL Planes de Ejecución. B.- Manejo de Consultas e índices en SQL Server Mejores Prácticas con Transact SQL
  • 13. Temas: 1.Buenas Prácticas en la Construcción de Consultas. 2. SQL HINTS 3. Optimizando Consultas. 4. Índices. 5. T-SQL Planes de Ejecución. B.-Manejo de Consultas e índices en SQL Server Mejores Prácticas con Transact SQL
  • 14. 1.1. Definición Buenas Practicas en la Construcción de Consultas “El tema más importante en la elaboración de reportes o extracción de información de nuestra base de datos es el tiempo de procesamiento de las consultas que realizamos. Muchas veces, esto se debe al hardware, el software utilizado, el mal diseño de la base de datos, la mala formulación de índices y consultas. Por tal motivo, para mejorar este último punto desarrollaremos algunas consideraciones que nos permitirán minimizar el impacto que tiene las consultas en el tiempo de procesamiento de nuestra aplicación ”
  • 15. 1.2. Consideraciones Buenas Practicas en la Construcción de Consultas T-SQL Crude vs Stored Procedure • Lo recomendado es siempre utilizar las consultas dentro de motor de base de datos y no dentro de la aplicación. • Siempre realizar la consulta dentro de un procedimiento almacenado ya que éste se ejecuta más rápido que cualquier consulta externa fuera del motor de base de datos.
  • 16. 1.2. Consideraciones Buenas Practicas en la Construcción de Consultas T-SQL Crude vs Stored Procedure • La primera vez que se ejecuta el procedimiento almacenado es compilado lo que produce un plan de ejecución que es un paso a paso de como el motor ejecutará las sentencias SQL • El plan es colocado en memoria (Cached) para su reuso
  • 17. 1.2. Consideraciones Buenas Practicas en la Construcción de Consultas T-SQL Crude vs Stored Procedure Otra ventajas: • Seguridad: no se le da acceso a objetos internos de BD • Administración cualquier cambio se hace en el procedimiento no en la aplicación • Tráfico de Red se reduce el tráfico porque se trabaja sobre el motor de BD
  • 18. 1.2. Consideraciones Buenas Practicas en la Construcción de Consultas Nunca se debe de utilizar el SELECT * • No se debe usar Select * puesto que con esto el motor lee primero toda la estructura de la tabla antes de ejecutar la sentencia. • Otra desventaja es que el resultado variará si se agrega o quitan campos.
  • 19. 1.2. Consideraciones Buenas Practicas en la Construcción de Consultas Para hacer consultas entre tablas es preferible usar los JOIN, RIGTH JOIN y LEFT JOIN. • Usar JOIN, RIGTH JOIN y LEFT JOIN ya que mientras el motor de base de datos va leyendo las tablas va verificando que relación se necesita entre ellas y de este modo, éste lee menos registro y hace mas eficiente la consulta a diferencia del WHERE que hace que las tablas se lean en su totalidad y después hace las relaciones
  • 20. 1.2. Consideraciones Buenas Practicas en la Construcción de Consultas Especificar a que tabla corresponde cada campo • Si utilizas varias tablas en la consulta especifica siempre a que tabla pertenece cada campo, le ahorras al gestor el tiempo de localizar a que tabla pertenece el campo. • En lugar de SELECT Nombre, Factura FROM Clientes, Facturacion WHERE IdCliente=IdClienteFacturado, usamos: SELECT Clientes.Nombre, Facturacion.Factura WHERE Clientes.IdCliente = Facturacion.IdClienteFacturado.
  • 21. 1.2. Consideraciones Buenas Practicas en la Construcción de Consultas Orden de las Tablas en las Consultas. Cuando se realiza una consulta entre varias tablas el orden de estas debe ir de menor a mayor número de registros; dependiendo del numero de columnas y registros de la tabla se genera un resultado que puede llevar mucho tiempo para ser completado por parte del motor de base de datos. • Ej: Si deseamos saber cuantos alumnos se matricularon en el año 1996 y escribimos: FROM Alumnos, Matriculas WHERE Alumno.IdAlumno = Matriculas.IdAlumno AND Matriculas.Año = 1996 el gestor recorrerá todos los alumnos para buscar sus matriculas y devolver las correspondientes. Si escribimos FROM Matriculas, Alumnos WHERE Matriculas.Año = 1996 AND Matriculas.IdAlumno = Alumnos.IdAlumnos, el gestor filtra las matrículas y después selecciona los alumnos, de esta forma tiene que recorrer menos registros.
  • 22. 1.2. Consideraciones Buenas Practicas en la Construcción de Consultas Operadores en el filtro: Si utilizamos WHERE, los operadores a utilizar deben ser los de mejor rendimiento. El orden de rendimiento de los operadores de mayor a menor es: = >,>=, <=, < LIKE IN <>, NOT IN, NOT LIKE
  • 23. 1.2. Consideraciones Buenas Practicas en la Construcción de Consultas Orden de las Tablas en las Consultas. Cuando se realiza una consulta entre varias tablas el orden de estas debe ir de menor a mayor número de registros; dependiendo del numero de columnas y registros de la tabla se genera un resultado que puede llevar mucho tiempo para ser completado por parte del motor de base de datos.
  • 24. 1.2. Consideraciones Buenas Practicas en la Construcción de Consultas • Evitar el uso del comando LIKE con el siguiente wildcard „%R‟ ya que no permite el uso del indice si el campo lo tuviera, LIKE con el siguiente wildcard „R%‟ permite el escanéo parcial y el uso del índice • El comando BETWEEN es más eficiente que el IN porque el primero busca un rango de valores y el segundo varios valores puntuales provocando que la sentencia sea menos efectiva.
  • 25. 1.2. Consideraciones Buenas Practicas en la Construcción de Consultas • Cuando utilicemos los operadores AND es preferible empezar por los campos que sean parte de algún índice para que la información seleccionada sea mas selectiva y la cantidad de registros leídos sea mínimo. • Cuando se tenga la necesidad de ordenar los datos en una consulta se recomienda que los campos a ordenar sea el menor número posible, y también se sugiere crear un índice de tipo clustered index sobre el campo que se esta utilizando.
  • 26. 1.2. Consideraciones Buenas Practicas en la Construcción de Consultas • No se recomienda el uso del INSERT INTO ya que esto origina que la tabla se bloquee mientras se esta llevando acabo el insert y de este modo se impide el uso del resto de datos a los usuarios. • Si dentro de una consulta se debe utilizar el comando HAVING se recomienda hacer todos los filtros posibles con el comando WHERE, de esta forma el trabajo que tiene que realizar el comando HAVING será el menor posible.
  • 27. 1.2. Consideraciones Buenas Practicas en la Construcción de Consultas • Se procurará elegir en la cláusula WHERE aquellos campos que formen parte del índice de la tabla • Además se especificarán en el mismo orden en el que estén definidos en la clave. •Filtrar siempre por campos que tengan índices.
  • 28. 1.2. Consideraciones Buenas Practicas en la Construcción de Consultas • Si deseamos interrogar por campos pertenecientes a índices compuestos es mejor utilizar todos los campos de todos los índices. Si tenemos un índice formado por el campo NOMBRE y el campo APELLIDO y otro índice formado por el campo EDAD. La sentencia WHERE NOMBRE='Juan' AND APELLIDO Like '%' AND EDAD = 20 sería más optima que WHERE NOMBRE = 'Juan' AND EDAD = 20 por que el gestor, en este segundo caso, no puede usar el primer índice y ambas sentencias son equivalentes por que la condición APELLIDO Like '%' devolvería todos los registros.
  • 29. Temas: 1.Buenas Prácticas en la Construcción de Consultas. 2. SQL HINTS 3. Optimizando Consultas. 4. Índices. 5. T-SQL Planes de Ejecución. B.- Manejo de Consultas e índices en SQL Server Mejores Prácticas con Transact SQL
  • 30. 2.1. Definición SQL Hints «Los HINTS son opciones que se interponen a los comandos Select, Insert, Update y Delete para especificar qué es lo que se tiene que hacer, en lugar que el motor de base de datos decida qué hacer. El lugar donde el motor decide cómo hacer la consulta, se llama optimizador de consultas y la forma cómo se ejecuta la consulta se llama Plan de ejecución Existen 4 formas de aplicar los HINTS: JOIN HINTS: Que especifica el tipo de JOIN que se utilizará. INDEX HINTS: Que especifica el tipo de INDEX que se utilizará LOCK HINTS: Que especifica el tipo de bloqueo que se utilizará. PROCESSING HINTS: Que especifica la forma cómo se ejecutara el query..»
  • 31. Temas: 1.Buenas Practicas en la Construcción de Consultas. 2. SQL HINTS 3. Optimizando Consultas. 4. Índices. 5. T-SQL Planes de Ejecución. B.- Manejo de Consultas e índices en SQL Server Mejores Prácticas con Transact SQL
  • 32. 3.1. Definición Optimizando Consultas Cuando trabajamos realizando consultas sobre nuestra base de datos tenemos que saber que siempre existirán consultas que son más pesadas que otras, ya sea por que tenemos queries que consultan tablas que tiene más registros que otras o por que los filtros que utilizamos invocan a una gran cantidad de registros entre tablas. El objetivo de este punto es determinar cuáles son las consultas de mayor impacto en nuestro servidor y analizar qué podemos cambiar en ellas para mejorar la performance de nuestra base de datos.
  • 33. Temas: 1.Buenas Practicas en la Construcción de Consultas. 2. SQL HINTS 3. Optimizando Consultas. 4. Índices. 5. T-SQL Planes de Ejecución. B.- Manejo de Consultas e índices en SQL Server Mejores Prácticas con Transact SQL
  • 34. 4.1. Definición Índices «La performance de la aplicación, por lo general, siempre está basada directamente, en el buen o mal diseño de nuestros índices, ya que la función principal de éstos es optimizar el acceso a los datos »
  • 35. 4.2. Tipos de Indices Índices Índices Tipo Clustered Índices de tipo No Clustered
  • 36. Temas: 1.Buenas Practicas en la Construcción de Consultas. 2. SQL HINTS 3. Optimizando Consultas. 4. Índices. 5. T-SQL Planes de Ejecución. B.- Manejo de Consultas e índices en SQL Server Mejores Prácticas con Transact SQL
  • 37. 5.1. Definición T-SQL Planes de Ejecución «Cuando ejecutamos una sentencia dentro de nuestra base de datos, el motor internamente ejecuta una serie de operación que varían según la cantidad de datos, objetos y schemas. A estas operaciones en conjunto. se le conoce como Plan de Ejecución .»
  • 38. 5.2. Objetos de Planes de Ejecución T-SQL Planes de Ejecución Dentro de los Planes de ejecución se conocen los siguientes operadores: •Table Scan •Clustered Index Scan •Clustered Index Seek •Index Seek •Bookmark Lookup •Index Scan •Neested Loop Join •Merge Join •Hash Join •Sort