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

4,616 views

Published on

Published in: Technology
1 Comment
0 Likes
Statistics
Notes
  • Be the first to like this

No Downloads
Views
Total views
4,616
On SlideShare
0
From Embeds
0
Number of Embeds
3,863
Actions
Shares
0
Downloads
22
Comments
1
Likes
0
Embeds 0
No embeds

No notes for slide

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

  1. 1. WebCast de Optimización Sql Server Almacenamiento e Índices Expositor: Ahias Portillo elrincondesqlserver@gmail.com
  2. 2. Sobre Mi Arquitecto de Inteligencia de Negocios Ing. 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.
  3. 3. Organizadores
  4. 4. Agenda • Fundamento de Almacenamiento • • • • Paginas Extents Tipos de paginas Organización de paginas • Índices • Definición • Tipos de índices
  5. 5. Paginas
  6. 6. Extents (Expert Performance Indexing For Sql Server 2012, Pagina 17)
  7. 7. 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
  8. 8. 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
  9. 9. 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.
  10. 10. 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.
  11. 11. 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.
  12. 12. 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.
  13. 13. Index Allocation Map Page(IAM) La anteriores paginas estaban relacionadas a Metada de almacenamiento. Una de las cosas mas importante que debe saber Sql Server es saber si una pagina esta asociada a una tabla o índice, la pagina que proporciona esta información es IAM. Cada Tabla o índice comienza primero con una pagina IAM.
  14. 14. Data Page/Index Page/Large Object Page • Data Page: Las paginas de datos se utilizan para almacenar los datos y son los tipos de paginas mas comunes en todas las base de datos. • Index Page: Estas paginas proporcionar información de la estructura y donde las paginas de datos se encuentran. • Large Object Page: A diferencia de las paginas de datos que están limitadas a 8kb. Existe algunos tipos de datos cuyo tamaño máximo es de 2gb, para ellos se requiere un tipo de almacenamiento distinto.
  15. 15. Organizing Pages • Heap • B-Tree • Columnar
  16. 16. 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)
  17. 17. B-Tree Es una estructura utilizada para la indexación, y se utiliza tanto para índices Clustered y NonClustered. El B-Tree organiza los datos en una jerarquía de árbol inverso. (http://www.terrymarshall.com.au/Blog/tabid/162/EntryId/156/SQLServer-2012-Columnstore-Indexes.aspx)
  18. 18. Column Store Structure Es una nueva estructura de almacenamiento introducida con Sql Server 2012, y organiza los índices de una forma tabular y por fila. (http://www.terrymarshall.com.au/Blog/tabid/162/EntryId/156/SQLServer-2012-Columnstore-Indexes.aspx)
  19. 19. 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-OptimizationFAQ-Part-1-With-video-expla)
  20. 20. ¿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.
  21. 21. Tipos de Índices • Clustered • NonClustered • Columnares • Indices Especiales • Full Text • XML • Spatial
  22. 22. 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)
  23. 23. NonClustered Los Non-Clustered indexes son índices que mantienen un sub conjunto de las columnas de la tabla en orden. Estos índices no modifican el orden de las filas de la tabla, en lugar de esto mantienen una lista ordenada de referencias a filas de la tabla original. (http://technet.microsoft.com/en-us/library/cc917624.aspx)
  24. 24. Sintaxis
  25. 25. Sintaxis
  26. 26. Sintaxis
  27. 27. Columnar SQL Server 2012 introduce los índices columnares, los cuales aceleran la ejecución de consultas con grandes cantidades de datos, especialmente para los Almacenes de Datos o Data Warehouse. La ventaja de los índices columnares es que leen de disco únicamente las columnas necesarias para resolver la consulta, lo cual acelera el proceso de obtención de datos de disco, éstas columnas son almacenadas de forma compresa en el disco duro, lo cual disminuye las operaciónes de IO, y por lo tanto se obtienen los datos más rápidamente. (http://ecastrom.blogspot.com/2012/07/column-store-index-en-sql-server-2012.html)
  28. 28. Sintaxis
  29. 29. Full Text Es un índice especialidado para realizar consultas sobre campos que contienen grandes cantidades de texto, el acceso de este índice es por medio de funciones especificas proveeidad por el motor de Full Text. (http://technet.microsoft.com/en-us/library/ms142571.aspx)
  30. 30. Índices XML/Spatial XML Index: Se pueden crear en columnas de tipo XML, permite el acceso por medios de funciones especializadas. Spacial Index: Se pueden crear sobre columnas de tipo spatial, estas columnas contiene datos de tipo geometry or geography, y permiten operaciones especializadas con este tipo de datos.
  31. 31. Preguntas
  32. 32. Comunidad https://www.facebook.com/groups/elrincondesqlserver/ http://www.youtube.com/user/elrincondesqlserver http://www.elrincondesqlserver.com/

×