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

Preview:

Citation preview

Expositor:

Ahias Portillo

elrincondesqlserver@gmail.com

WebCast de Optimización Sql ServerAlmacenamiento 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.

Organizadores

Agenda

• Fundamento de Almacenamiento• Paginas

• Extents

• Tipos de paginas

• Organización de paginas

• Índices• Definición

• Tipos de índices

Paginas

Extents

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

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

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

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 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.

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.

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.

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.

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.

Organizing Pages

• Heap

• B-Tree

• Columnar

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)

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)

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)

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)

¿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.

Tipos de Índices

• Clustered

• NonClustered

• Columnares

• Indices Especiales• Full Text

• XML

• Spatial

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)

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)

Sintaxis

Sintaxis

Sintaxis

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)

Sintaxis

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)

Í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.

Preguntas

Comunidad

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

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

http://www.elrincondesqlserver.com/