En 20 minutos ... Arquitectura Oracle

3,706 views

Published on

Piezas básicas de la arquitectura Oracle, y cómo interaccionan entre ellas cuando se ejecutan las sentencias SQL, de modo que se entiendan las cuestiones básicas que afectan al rendimiento de una Base de Datos Oracle

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,706
On SlideShare
0
From Embeds
0
Number of Embeds
2,838
Actions
Shares
0
Downloads
0
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

En 20 minutos ... Arquitectura Oracle

  1. 1. © 2013. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.En 20 minutos te cuento lo que sé de ...ARQUITECTURA ORACLEÁTICA – 30/05/2013Juan Luis Serradilla
  2. 2. © 2013. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.Componentes de unServidor Oracle y suFuncionamiento alEjecutar Código SQL
  3. 3. © 2013. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.Contenido1.- Base de Datos: estructura física y lógica2.- Instancia: SGA y Procesos3.- Servidor Oracle. Sesiones.4.- Ejecución de una operación de Consulta5.- Ejecución de una operación de Actualización6.- Compilación del código SQL7.- Resumen. Consumo y Optimización de Recursos
  4. 4. © 2013. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.BASE DE DATOSFicheros de datos, control y redo● Apartado Primero– Subapartado Primero● Bla bla bla bla
  5. 5. © 2013. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.BASE DE DATOSEstructura Lógica● Una BD está compuesta por varios tablespaces● Cada tablespace lo forman uno o más ficheros de datos● Una tabla es unsegmento formado por unao más extensiones dentro delmismo tablespace● Un segmento tiene almenos una extensión(unidad de asignación)● La unidad mínimade E/S es el bloqueOracle (db_block_size) de2/4/8/16/32KbTABLA
  6. 6. © 2013. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.BASE DE DATOSSegmento, Extensión y Bloque● Tipos de segmento: Table, Index, etc● Extensión: conjunto contiguo de bloques● Los índices de una tabla deben estar en otro tablespaceTABLATABLA
  7. 7. © 2013. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.INSTANCIA = SGA + PROCESOSMemoria (SGA) y CPU (Procesos background)● Apartado Primero– Subapartado Primero● Bla bla bla bla
  8. 8. © 2013. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.SGA (Shared Global Area)Memoria Compartida en RAM● Es una “gran caché” donde Oracle cachea el código (SQL,PL/SQL) y los datos (bloques que contienen las filas de lastablas). Es finita (normalmente LRU).● Los datos se cachean en la Data Buffer Caché (bloques)● El código en la Shared Pool (SQL y PL/SQL)
  9. 9. © 2013. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.INSTANCIA Y BASE DE DATOSIndependientes y Complementarias● Apartado Primero– Subapartado Primero● Bla bla bla bla
  10. 10. © 2013. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.SERVIDOR ORACLE = INSTANCIA + BDUna BD se abre mediante una Instancia● Apartado Primero– Subapartado Primero● Bla bla bla bla
  11. 11. © 2013. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.SERVIDOR ORACLECada sesión de BD arranca un proceso servidor● Cada sesión consumeRAM (PGA) y CPU (proceso)
  12. 12. © 2013. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.CONSULTAR DATOSEl código se envía al servidor (RAM en PGA)● Apartado Primero– Subapartado Primero● Bla bla bla bla
  13. 13. © 2013. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.CONSULTAR DATOSEl proceso servidor lo compila (CPU y RAM) yaccede a los datos del DD si es necesario (E/S)● Apartado Primero– Subapartado Primero● Bla bla bla bla
  14. 14. © 2013. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.CONSULTAR DATOSEl proceso servidor busca los bloques en BufferCaché, trayéndolos de disco si hace falta (E/S)● Apartado Primero– Subapartado Primero● Bla bla bla bla
  15. 15. © 2013. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.ACTUALIZAR DATOSEl proceso servidor hace los cambios SOLO en laSGA (Data Buffer Cache y Buffer de Redo)● Apartado Primero– Subapartado Primero● Bla bla bla bla
  16. 16. © 2013. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.ACTUALIZAR DATOS - COMMITLGWR vuelca a disco Buffer de Redo,protegiendo los cambios en disco● Apartado Primero– Subapartado Primero● Bla bla bla bla
  17. 17. © 2013. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.ACTUALIZAR DATOSAsíncronamente, el DBWR volcará a disco losbloques modificados en Data Buffer Cache● Apartado Primero– Subapartado Primero● Bla bla bla bla
  18. 18. © 2013. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.Compilación Código SQLConsume CPU y RAM. Reutilizar código●Análisis sintáctico y semántico (acceso al DD E/S), y cálculo del plan deejecución (consumo CPU). Sentencia compilada se guarda en SGA(Shared Pool, consumo RAM).●Al compilar una sentencia SQL, hay que distinguir entre “hard” y “soft”parse:– Hard Parse: la sentencia SQL no existe en la Shared Pool(Library Cache). Es costoso en términos de CPU y latches.– Soft Parse: la sentencia SQL ya existe en la Shared Pool ypuede usar una versión de la misma.●Dos sentencias SQL son iguales si tienen el mismo texto (incluyendoespacios en blanco y mayúsculas/minúsculas); y además:– Los nombres de objetos deben apuntar a los mismo objetosreales: SCOTT.EMP <> JUANLU.EMP– El modo del optimizador debe ser el mismo: FIRST_ROWS <>ALL_ROWS– Los nombres, tipos y longitudes de las variables bind deben serlos mismos: VARCHAR2(8) <> VARCHAR2(10)– El entorno NLS (idioma y país) debe ser el mismo.
  19. 19. © 2013. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.RESUMENConsumo y Optimización deRecursos●Tabla en un tablespace y sus índices en otro tablespace distinto.●Cada sesión de BD consume RAM y CPU: minimizar sesiones del pool.●La ejecución de código consume RAM y CPU al compilar, por lo quedebe reutilizarse para minimizar dichas compilaciones (PAQUETES):escribirlo una vez y utilizarlo muchas y desde muchos sitios.●La ejecución de código genera E/S la primera vez que se accede a losdatos, y posteriormente, cada vez que hayan “salido” de caché:optimizar el código para que recupere solo las filas necesrias y lohaga rápidamente (optimizar modo de acceso, el más rápido esROWID).●Las lecturas masivas de datos (muchas filas), “estropean” la cachéde datos, provocando posteriormente acceso a disco para recuperar losbloques que más se usan (posible mejora DB_KEEP_CACHE_SIZE). Ojocon las pruebas en explotación y tb los informes con muchos datos.●Las escrituras masivas de datos tb “estropean” la caché, pero másaún pues por cada bloque modificado se necesita uno derollback/undo, y además generan E/S posterior al volcar los cambiosa disco (FAST_START_MTTR_TARGET). Actualizar solo cuando seanecesario.
  20. 20. © 2013. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.FinGracias por vuestra atención¿Alguna pregunta?Juan Luis Serradilla (juanluNOSPAM@um.es)Juan Luis Serradilla (juanluNOSPAM@um.es)

×