WebCast de optimización Sql Server - Almacenamiento e Índices

32
Expositor: Ahias Portillo [email protected] WebCast de Optimización Sql Server Almacenamiento e Índices

Transcript of WebCast de optimización Sql Server - Almacenamiento e Índices

Page 1: WebCast de optimización Sql Server - Almacenamiento e Índices

Expositor:

Ahias Portillo

[email protected]

WebCast de Optimización Sql ServerAlmacenamiento e Índices

Page 2: WebCast de optimización Sql Server - Almacenamiento e Índices

Sobre Mi

Arquitecto de Inteligencia de NegociosIng. Ahias Portillo, MCT, MCITP DBA, BI

Especialista en inteligencia de negocios y base de datos con mas de 7 años de experiencia, ha desarrollado proyectos para mas de 7 países en América.

Es un evangelista y conferencista latinoamericano de Sql Server, actualmente es un miembro activo de PASS.

Page 3: WebCast de optimización Sql Server - Almacenamiento e Índices

Organizadores

Page 4: WebCast de optimización Sql Server - Almacenamiento e Índices

Agenda

• Fundamento de Almacenamiento• Paginas

• Extents

• Tipos de paginas

• Organización de paginas

• Índices• Definición

• Tipos de índices

Page 5: WebCast de optimización Sql Server - Almacenamiento e Índices

Paginas

Page 6: WebCast de optimización Sql Server - Almacenamiento e Índices

Extents

(Expert Performance Indexing For Sql Server 2012, Pagina 17)

Page 7: WebCast de optimización Sql Server - Almacenamiento e Índices

Tipos de Paginas

• File header page

• Boot page

• Page Free Space (PFS) page

• Global Allocation Map (GAM) page

• Shared Global Allocation Map(SGAM) page

• Differential Changed Map (DCM) page

• Bulk Changed Map (BCM) page

• Index Allocation Map (IAM) page

• Data page

• Index page

• Large object (Text and Image) page

Page 8: WebCast de optimización Sql Server - Almacenamiento e Índices

File Header Page

Es la primera pagina de cualquier archivo de datos, contiene información de metadatos sobre los archivos de base de datos.

• File ID

• File group ID

• Current size of the file

• Max file size

• Sector size

• LSN information

Page 9: WebCast de optimización Sql Server - Almacenamiento e Índices

Boot Page

La pagina de inicio es similar Header page, ya que proporciona metadatos, con la diferencia que la información proporcionada es de la base de datos.

• Nombre de base de datos

• Identificador de Base De datos

• Nivel de compactibilidad

• Etc.

Page 10: WebCast de optimización Sql Server - Almacenamiento e Índices

Page Free Space Page(PFS)

Con el fin de dar seguimiento de las paginas que tienen espacio disponible, para la inserción de filas, cada datafile contiene Page Free Space Page.

Page 11: WebCast de optimización Sql Server - Almacenamiento e Índices

Global Allocation Map Page(GAM)/Shared Global Allocation Map Page(SGAM)

• GAM: Es similar PFS. Esta pagina determina si un Extent esta disponible para su asignación a un exten uniforme.

• SGAM: Es similar a GAM con la diferencia, que determina si el extent esta disponible para ser asignado a un extent Mixed.

Page 12: WebCast de optimización Sql Server - Almacenamiento e Índices

Differential Changed Map Page (DCM)/Bulk Changed Map Page(BCM))

• DCM: Se utiliza para determinar si un GAM ha cambiado. Cuando una medida ha cambia de 0 a 1, estos bit se almacena en DCM.

• BCM: Se utiliza para indicar cuando un intervalo de GAM han cambiado por operaciones de Bulk_logged.

Page 13: WebCast de optimización Sql Server - Almacenamiento e Índices

Index Allocation Map Page(IAM)

La anteriores paginas estaban relacionadas a Metada dealmacenamiento.

Una de las cosas mas importante que debe saber Sql Server essaber si una pagina esta asociada a una tabla o índice, la pagina queproporciona esta información es IAM.

Cada Tabla o índice comienza primero con una pagina IAM.

Page 14: WebCast de optimización Sql Server - Almacenamiento e Índices

Data Page/Index Page/Large Object Page

• Data Page: Las paginas de datos se utilizan para almacenar losdatos y son los tipos de paginas mas comunes en todas las base dedatos.

• Index Page: Estas paginas proporcionar información de laestructura y donde las paginas de datos se encuentran.

• Large Object Page: A diferencia de las paginas de datos que estánlimitadas a 8kb. Existe algunos tipos de datos cuyo tamañomáximo es de 2gb, para ellos se requiere un tipo dealmacenamiento distinto.

Page 15: WebCast de optimización Sql Server - Almacenamiento e Índices

Organizing Pages

• Heap

• B-Tree

• Columnar

Page 16: WebCast de optimización Sql Server - Almacenamiento e Índices

HEAD

Es una estructura de datos que almacena la posición física en la que se almacenó cada nueva fila dentro de las páginas asignadas a la tabla. (Cuando no existen índices)

(http://technet.microsoft.com/en-us/library/aa964133(v=sql.90).aspx)

Page 17: WebCast de optimización Sql Server - Almacenamiento e Índices

B-Tree

Es una estructura utilizada para laindexación, y se utiliza tanto paraíndices Clustered y NonClustered.

El B-Tree organiza los datos en unajerarquía de árbol inverso.

(http://www.terrymarshall.com.au/Blog/tabid/162/EntryId/156/SQL-Server-2012-Columnstore-Indexes.aspx)

Page 18: WebCast de optimización Sql Server - Almacenamiento e Índices

Column Store Structure

Es una nueva estructura dealmacenamiento introducida conSql Server 2012, y organiza losíndices de una forma tabular y porfila.

(http://www.terrymarshall.com.au/Blog/tabid/162/EntryId/156/SQL-Server-2012-Columnstore-Indexes.aspx)

Page 19: WebCast de optimización Sql Server - Almacenamiento e Índices

Table Scan

• Realiza un recorrido de todo los registros en una tabla hasta encontrar el valor seleccionado.

• Generan altos costos de procesamiento.

(http://www.codeproject.com/Articles/55505/SQL-Query-Optimization-FAQ-Part-1-With-video-expla)

Page 20: WebCast de optimización Sql Server - Almacenamiento e Índices

¿Que es un Índice?

• Es una estructura de almacenamiento de datos que permite el acceso eficiente a ellos, por medio de columnas o conjuntos de columnas que sirven como diccionarios.

Page 21: WebCast de optimización Sql Server - Almacenamiento e Índices

Tipos de Índices

• Clustered

• NonClustered

• Columnares

• Indices Especiales• Full Text

• XML

• Spatial

Page 22: WebCast de optimización Sql Server - Almacenamiento e Índices

Clustered

Los Clustered Indexes son índices que controlan el orden físico de las filas en la tabla, por lo cual solo puede existir uno para cada tabla.

(http://technet.microsoft.com/en-us/library/cc917624.aspx)

Page 23: WebCast de optimización Sql Server - Almacenamiento e Índices

NonClustered

Los Non-Clustered indexes soníndices que mantienen un subconjunto de las columnas de latabla en orden. Estos índices nomodifican el orden de las filas dela tabla, en lugar de estomantienen una lista ordenada dereferencias a filas de la tablaoriginal.

(http://technet.microsoft.com/en-us/library/cc917624.aspx)

Page 24: WebCast de optimización Sql Server - Almacenamiento e Índices

Sintaxis

Page 25: WebCast de optimización Sql Server - Almacenamiento e Índices

Sintaxis

Page 26: WebCast de optimización Sql Server - Almacenamiento e Índices

Sintaxis

Page 27: WebCast de optimización Sql Server - Almacenamiento e Índices

Columnar

SQL Server 2012 introduce los índicescolumnares, los cuales aceleran laejecución de consultas con grandescantidades de datos, especialmente paralos Almacenes de Datos o Data Warehouse.La ventaja de los índices columnares es queleen de disco únicamente las columnasnecesarias para resolver la consulta, lo cualacelera el proceso de obtención de datosde disco, éstas columnas son almacenadasde forma compresa en el disco duro, lo cualdisminuye las operaciónes de IO, y por lotanto se obtienen los datos másrápidamente.

(http://ecastrom.blogspot.com/2012/07/column-store-index-en-sql-server-2012.html)

Page 28: WebCast de optimización Sql Server - Almacenamiento e Índices

Sintaxis

Page 29: WebCast de optimización Sql Server - Almacenamiento e Índices

Full Text

Es un índice especialidado para realizar consultassobre campos que contienen grandes cantidadesde texto, el acceso de este índice es por mediode funciones especificas proveeidad por el motorde Full Text.

(http://technet.microsoft.com/en-us/library/ms142571.aspx)

Page 30: WebCast de optimización Sql Server - Almacenamiento e Índices

Índices XML/Spatial

XML Index: Se pueden crear en columnas de tipo XML, permite el accesopor medios de funciones especializadas.

Spacial Index: Se pueden crear sobre columnas de tipo spatial, estascolumnas contiene datos de tipo geometry or geography, y permitenoperaciones especializadas con este tipo de datos.

Page 31: WebCast de optimización Sql Server - Almacenamiento e Índices

Preguntas

Page 32: WebCast de optimización Sql Server - Almacenamiento e Índices

Comunidad

https://www.facebook.com/groups/elrincondesqlserver/

http://www.youtube.com/user/elrincondesqlserver

http://www.elrincondesqlserver.com/