SQL ORACLE Tuning

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 17

Afinamiento SQL y PL/SQL

para Desarrolladores

SQL Tuning
Lo que Aprenderemos en este capítulo

1.  Qué  es  SQL  Tuning?  


2.  DB  Tuning  vs  SQL  Tuning  
3.  Problemas  más  comunes  
 

2
Qué  es  SQL  Tuning?  
•  Proceso  de  construcción  de  sentencias  SQL  
ópBmas  que  logren  resultados  de  la  manera  mas  
efecBva  y  eficiente  posible.  
•  SQL  tuning  empieza  desde  el  diseño  de  las  
cláusulas  de  la  sentencia.  
–  Principalmente  se  revisan  las  cláusulas  FROM  y  
WHERE.  A  parBr  de  éstas  dos  el  opBmizador  toma  las  
decisiones  sobre  el  plan  de  ejecución.  

3
Database  vs.  SQL  Tuning  
•  Database  tuning  es  el  proceso  de  afinamiento  de  la  base  de  
datos,  lo  que  incluye  la  memoria  asignada,  el  uso  de  disco,  
CPU,  I/O,  y  demás  procesos  que  componen  a  la  base  de  datos.    
•  El  proceso  de  afinamiento  de  la  base  de  datos    también  
consiste  en  la  administración  y  manipulación  de  las  
estructuras  de  la  base  de  datos  como  tablas  e  índices.  
•  Estas  y    otras  acBvidades  le  corresponden  al  DBA.  
•  El  objeBvo  del  afinamiento  de  base  de  datos  es  asegurar  que  
la  base  de  datos  soporta  la  acBvidad  esperada  con  los  Bempos  
de  respuesta  requeridos.  

4
Database  vs.  SQL  Tuning  
•  SQL  tuning  es  el  proceso  de  afinar  las  sentencias  SQL  
que  acceden  a  la  base  de  datos.  
•  Estas  sentencias  SQL  incluyen  queries  y  operaciones  
transaccionales    como  inserts,  updates,  y  deletes  
•  El  objeBvo  del  afinamiento  SQL  es  escribir  sentencias  
que  accedan  a  la  base  de  datos  de  la  manera  más  
efecBva  aprovechando  los  recursos  de  la  base  de  
datos  y  los  índices.    

5
Database  vs.  SQL  Tuning  
•  Para  obtener  resultados  ópBmos,  se  requieren  los  
dos  Bpos  de  Afinamiento.  
•  Una  base  de  datos  bien  afinada,  pero  con  queries  
SQL  mal  diseñados  no  Bene  un  buen  desempeño.  
(y  viceversa)  

6
Sistema  complejo  
•  Al afinar la base de Aplicación  
datos , debemos
recordar que forma Servidor  de  Aplicaciones  
parte de un sistema
Sistema  Opera?vo  
complejo con muchos
componentes Red  
interrelacionados.
Base  de  Datos  

Sistema  Opera?vo  

Storage  

7
Problemas  más  comunes  
•  Mal  manejo  de  conexiones  desde  la  aplicación  
hacia  la  base  de  datos.  
•  No  uBlizar  variables  bind.  
•  Falta  de  índices  –  full  table  scan  innecesarios  
•  Degradación  de  los  planes  de  ejecución  

8
Manejo  de  conexiones  
•  El  proceso  de  establecer  una  conexión  a  la  base  de  
datos  es  costoso  y  no  escalable.  
•  El  número  de  conexiones  concurrentes  a  la  base  de  
datos  debe  minimizarse.  
•  Para  una  aplicación,  esto  requiere  manejo  de  un  pool  
de  conexiones.  
•  Evitar  conexiones  y  desconexiones  para  cada  
requerimiento  del  usuario.  

9
Manejo  de  conexiones  

10
SQL  Tuning:  Variables  Bind  

•  Una  de  las  mayores  causas  de  problemas  de  


desempeño  en  sentencias  SQL  es  no  usar  variables  
Bind.  
select  *  from  emp  where  empno=123;  
select  *  from  emp  where  empno=:empno  
•  :empno  es  una  variable  que  se  reemplaza  en  Bempo  
de  ejecución  con  el  valor  que  se  requiera  para  
ejecutar  la  consulta.  

11
SQL  Tuning:  Variables  Bind  

•  Si  no  se  usan  variables  bind,  cada  vez  que  se  ejecuta  un  query  
que  usa  constantes  ,  la  base  de  datos  los  considera  como  
nunca  antes  vistos.  
•  Esto  quiere  decir  que  el  query  deberá  pasar  por  todas  las  
fases  de  parsing,  opBmización  y  demás  pre-­‐procesos.  
•  Esto  se  conoce  como  hard  parsing.  
•  En  contraste,  el  query  que  usa  variables  bind,  pasa  por  la  
etapa  de  parse  la  primera  vez,  y  las  ejecuciones  siguientes  
pueden  reuBlizar  el  plan  de  ejecución  que  queda  en  el  Library  
cache.  

12
Variables  Bind:    Ejemplo  
1

13
Variables  Bind:    Ejemplo  

14
Qué  es  un  Latch  ?  

•  Tipo  de  candado  o  lock  que  se  usa  para  


controlar  el  acceso  a  las  estructuras  
comparBdas  uBlizadas  por  la  base  de  
datos.  
•  Una  de  éstas  estructuras  es  el  Shared  
Pool,  que  forma  parte  de  la  SGA.  
•  En  el  Shared  Pool  se  almacena  todo  el  
SQL  que  ha  pasado  por  la  fase  de  parse  
y  está  compilado.  
•  Esta  estructura  comparBda  requiere  
control  para  que  solo  un  proceso  tenga  
acceso  a  la  vez,  usando  latches.  

15
Full  Table  Scans  

•  Cuando  no  existen  los  índices  correctos,  es  posible  que  un  
query  o  sentencia  DML  realice  un  FTS  ,  lo  que  quiere  decir  un  
barrido  de  todas  las  filas  de  la  tabla.  
•  Se  debe  analizar  si  esto  consBtuye  un  problema  de  
performance,  ya  que  dependiendo  del  tamaño  de  la  tabla  
esta  opción  puede  ser  válida.  
•  En  el  proceso  de  afinamiento  de  queries,  es  importante  
idenBficar  para  consultas  problemáBcas  si  se  están  realizando  
FTS  innecesarios.  

16
Lo que vimos en este capítulo

1.  Qué  es  SQL  Tuning?  


2.  DB  Tuning  vs  SQL  Tuning  
3.  Problemas  más  comunes  
 

17

También podría gustarte

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy