SlideShare una empresa de Scribd logo
¡OPTIMIZACIÓN! Lo que siempre has
      querido saber para exprimir SQL
                  Server
Enrique Catala Bañuls
Mentor
SolidQ
ecatala@solidq.com
Enrique Catalá Bañuls
   Ingeniero Informático
   Mentor en SolidQ
   Microsoft Technical Ranger
   Colaborador destacado en MSDN Spain
   Microsoft Active Professional 2010
   Microsoft Certified Trainer
   Microsoft Certified IT Professional
     Database Developer 2008
     Database Administrator 2008
 Arquitecto de entre otros Health Check y SCODA
 Motero y piloto de ULM 
Agenda

 Configuraciones avanzadas de SQL Server
     NUMA
     Threads vs fibers
     IO Affinity Mask
     Max Degree of parallelism
     Configuracion de memoria
     Tempdb
 Configuraciones avanzadas de base de datos
   Log transacciones
   Date correlation optimization
   Parametrization
 Patrones para Developers
   Reducción de idas y venidas mediante el uso de TVP
   Las funciones en SQL Server, el desastre y su solución
Agenda


 Configuraciones avanzadas de SQL Server
     NUMA
     Threads vs fibers
     IO Affinity Mask
     Max Degree of parallelism
     Tempdb
NUMA

 Non-Uniform Memory Access
 Particionado hardware donde cada nodo a grandes rasgos
  tiene subconjunto de CPU, memoria
 Interesa no salir del nodo
 Cada nodo NUMA tiene su propio lazywritter y su puerto
  para finalización de E/S (el network listener)
NUMA

 SQL Server detecta automáticamente la configuración
  NUMA
 Pensada para mejorar la escalabilidad de sistemas
  multiprocesador
 Minimiza la latencia de acceso a memoria
 No hay que modificar aplicaciones ni tocar nada
 Podemos afinar: máscara de afinidad y Soft-NUMA
NUMA: Soft-NUMA
 Segmentamos afinidad de procesador (no memoria)
 Cada nodo numa software contiene Lazywritter y proceso E/S
 Diferencia obvia con NUMA hardware:
   En Soft-NUMA seguiremos teniendo un único nodo de memoria
 Solo provee afinidad a nivel de CPU
       ALTER SERVER CONFIGURATION SET PROCESS AFFINITY CPU = 2 TO 5
 Si vemos esperas CXPACKET y LAZYWRITTER unidas, debemos
  configurarlo
  (escenario no NUMA)
 Segmentación multi-instancia
Thread vs fibers: Scheduler
 En entornos computacionales hay que dar solución al problema de la
  multitarea (más procesos que CPU concurrentemente)
 El scheduler o programador se encarga de agendar a cada proceso un
  tiempo finito de acceso a recursos de la máquina para ejecución
 Su eficiencia depende de:
   Nº de procesos simultaneos a agendar
   Latencia (tiempo entre que se solicita petición y se sirve)
   Prioridades e imparcialidad entre semejantes al asignar tiempo CPU

 SQL Server tiene su propio scheduler
   En windows los procesos poseen acceso exclusivo a recursos generalmente
   El scheduler de SQL Server facilita la cooperación entre procesos
   Mucho mas escalable en tareas de SQL Server pero mas complejo de diseñar
Thread vs fibers: SQL Server Workers
 El scheduler puede ser visto como una CPU lógica
 Un worker está asociado a un scheduler y solo a uno
   Haciendo una comparación, seria como los procesos en windows, pero que
    corren sobre el scheduler
   Pueden ser thread o fiber (hilo o fibra)
   El scheduler se encarga de crear y destruir workers
 Se pueden explícitamente fijar mediante la máscara de afinidad a una CPU
  concreta
 Se crean si el scheduler recibe petición de tarea a lanzar y no hay workers
  inactivos
 Se destruyen despues de 15 minutos de inactividad o si hay presión de
  memoria
 En un sistema x64 cada worker usa como mínimo 2Mb
 Cada core (sea o no hyperthreading) posee 1 worker al arrancar (OFFLINE si
  se ha quitado de su máscara de afinidad)
Thread vs fibers
 Varias fibras pueden correr sobre un único hilo ya que son muy
  ligeras (aprox 10 fibras/thread)
 «lightweight pooling option» a 1, activa uso de fibras
 Optimización de escenarios (aumento 15% rendimiento):
   Processor time: ~80%
   Context switches: >20k/sec
 ADVERTENCIA no son siempre la mejor opción:
   No se soporta CLR heterogeneo con consultas, SQL Mail, SQLXML,
    …
   En escenarios como linked servers hay sobrecarga porque se obliga
    a convertir la tarea a hilo
IO Affinity Mask
 Optimización escenarios con alto consumo de CPU por E/S
 Cada operación E/S en SQL Server necesita finalización
   Validación de bytes transferidos, no errores en SO, correcto nº de
    página, checksum válido,…
   En definitiva, consumo de CPU
 La mascara de afinidad de E/S sirve para direccionar las
  operaciones E/S a un scheduler oculto con un lazywriter que
  que solo hace operaciones E/S
 Cuidado al configurar la mascara y la máscara de IO

                  MAL        BIEN
NUMA y max degree of parallelism

 Siempre hay que afinar, sobre todo en sistemas OLTP
 Como norma general:
   Nunca exceder en MAXDOP el nº de hilos físicos por nodo NUMA
 Aproximadamente 6ms por petición y más de 200h
  computacionales


                                    wait type name          wait time (ms) requests
                                    CXPACKET                       786556034 128110444
                                    LATCH_EX                       255701441 155553913
                                    ASYNC_NETWORK_IO               129888217 19083082
                                    PAGEIOLATCH_SH                  83672746   2813207
                                    WRITELOG                        70634742 48398646
                                    SOS_SCHEDULER_YIELD             47697175 176871743
NUMA y max degree of parallelism
 Se carga tabla en buffer cache
  NUMA 0
 Cell 0: ms nodo NUMA 0
 Cell 1: ms nodo NUMA 1
 Cell 2: ms nodo NUMA 2




www.solidq.com
Configuracion de memoria

 Habilitar “Lock Pages in memory” siempre
   Se habilita mediante política a nivel de máquina para el usuario del
    servicio
   Evita swapping de RAM a disco
 Trace flag “mágico” 
   834 (Large Page Allocation)
     Solo recomendable en Win 2008 R2 y SQL 2008 R2
     Medias de 10% de mejora de rendimiento obtenidas
     Tiene un gran pero…
Tempdb

 El “borrador” de SQL Server…no es solo donde van las #tablas 
 Precrear a un mínimo de 2xMemoria física
 El nº de ficheros de datos debe ser exáctamente igual nº de hilos
  CPU
   IMPORTANTE: Todos precreados al mismo tamaño…TODOS
 Es buena idea separar tempdb de la lun de datos
   Excepcionalmente, si es un entorno OLTP altamente transaccional,
    poner los datos y tempdb en la misma LUN para mejorar aleatoriedad
    (ojo hablamos de sistemas de almacenamientos con mucho spindle)
Agenda


 Configuraciones avanzadas de BBDD
   Log de transacciones
   Date correlation optimization
   Parametrization
Log de transacciones
 Siempre almacenamiento dedicado exclusivo para el log de
  transaciones
   Todo pasa por él
   Es secuencial
     No crees más de un fichero, no sirve de nada…
   Interesa máximo rendimiento en escrituras
 Cuidado con la fragmentación!
   Precrearlo con tamaño suficiente para que nunca crezca y si lo hace, que
    lo haga a intervalos gordos.
   Ultima salida…recrear el log, asique no dejes que esto te ocurra
   Revisa usando “dbcc loginfo”
Date Correlation Optimization

 Configuración a nivel de base de datos
 Optimizar equi-joins entre dos tablas con date o datetime correladas a
  las que aplicamos filtro
 Muy util en escenarios típicos de reporting o datawarehousing

ALTER DATABASE tu_Base_de_Datos
          SET DATE_CORRELATION_OPTIMIZATION ON;
Date Correlation Optimization:
                    Beneficios

 SQL Server mantendrá estadísticas de correlación entre ambas tablas
 El efecto será que interna y transparentemente se crearán vistas
  indexadas con la información necesaria
 SQL Server gestionará todas las casuísticas
   Añadirá nuevas estructuras cuando se cumplan
   Deshabilitará cuando algo deje de cumplirse
   Se encargará de ver si la consulta es mas eficiente usando la información
    extra calculada
Date Correlation Optimization:
                  Restricciones
 Debe existir clave ajena de una columna entre las tablas
 Ambas tablas deben tener columnas datetime NOT NULL
 Al menos una de las columnas debe ser la clave principal de un
  índice clústered
 Ambas tablas deben tener el mismo propietario

PRECAUCIÓN: En tablas altamente modificadas puede existir
detrimento de rendimiento por el mantenimiento interno que
producen las estadísticas
DEMO


DATE CORRELATION
  OPTIMIZATION
Parametrización: Mejorar escenarios
               ad-hoc (I)

 Optimize for ad-hoc workloads
   A nivel de instancia de SQL Server
   Solo útil para consultas ad-hoc livianas
   Almacena un pequeño código auxiliar en lugar del plan completo
    (300 bytes vs >15k)
   Minimiza presión sobre el
    cache de planes de ejecución
   Solo si se detecta reutilización,
    se recompila y almacena en
    cache
Mejorar escenarios ad-hoc (II)
 Force parametrization
   A nivel de base de datos
   Ocurre por cada statement. Cada batch puede tener múltiples statements
    autoparametrizados
   Fuerza la parametrización de toda sentencia SELECT, UPDATE, INSERT y DELETE
   En ciertos escenarios, mejora enormemente el rendimiento a base de
    reutilización de planes de ejecución
 PRECAUCIÓN: Testear siempre el entorno antes
  de poner en producción. Puede que salgamos
  perdiendo…
 Excepciones
      Statements dentro de SP, funciones,…
      Si ANSI_PADDING o ANSI_NULL = OFF
      Statements que referencian variables
      Statements en cursor
 Antes
                        % of memory used
                        0%
                                                                                      Datos reales
                   0%
            0%                     0%      Compiled Plan Proc
                    4% 10%
             14%                           Compiled Plan Trigger
                                           Compiled Plan Adhoc
                                           Compiled Plan Prepared
                                           Extended Proc Proc       uses      number_ocurrencies
                                                                                             cacheobjtype      percentage_memory_KB
                                           Parse Tree UsrTab                1           6583 Compiled Plan                        30,57
                             72%
                                           Parse Tree Check                 1              6 Parse Tree                            0,01
                                           Parse Tree View                  1          13123 Compiled Plan Stu                     0,00
                                                                            2           3525 Compiled Plan                         8,04

 Después                                                                   2
                                                                            3
                                                                                         653 Parse Tree
                                                                                        2710 Compiled Plan
                                                                                                                                   2,36
                                                                                                                                   4,69
                                                                            3             11 Parse Tree                            2,85
                                                                            3              1 Compiled Plan Stu                     0,02
                                                                            4            139 Parse Tree                            0,43
                                                                            4           2163 Compiled Plan                         0,00
                                                                            5           1998 Compiled Plan                         1,98
                                                                            5             41 Parse Tree                            0,34
                                                                            6           3578 Compiled Plan                         2,03
                                                                            6            333 Parse Tree                            1,06
                                                                            6              2 Extended Proc                         0,00
                                                                            7           2164 Compiled Plan                         1,49
                                                                            7             14 Parse Tree                            0,04
                                                                            8           1010 Compiled Plan                         0,90
     Más del 55% de la memoria de planes                                    8
                                                                            9
                                                                                         118 Parse Tree
                                                                                        1113 Compiled Plan
                                                                                                                                   0,36
                                                                                                                                   0,81
     de ejecución reutilizado menos de 10                                   9              8 Parse Tree                            0,02
                                                                           10            836 Compiled Plan                         0,68
     veces
Agenda

 Patrones para Developers
   Reducción de idas y venidas mediante el uso de TVP
   Las funciones en SQL Server, el desastre y su solución
TVP (Parámetros de tabla)

 Escenarios
     Actualización en lotes del servidor
     Parámetros en lote para usar en consultas
     Pasar una tabla entre rutinas
     Migración de otras bases de datos
 Los datos almacenados son tabulares!
 Criterio común
   Gran cantidad de datos pasados desde el cliente al servidor
   Aplicación de lógica de negocio antes de actualizar datos de forma persistente
   Ej. Data mining, sistemas de inventariado, herramientas ETL
TVP (Parámetros de tabla)

 Empaquetado de lógica de negocio
   Mejor modelo de programación
   Procesamos transacciones en orden de llegada
   Mejor manejabilidad (procedimiento almacenado lo puede hacer
    todo)
 Rendimiento
   Reducción de idas y vueltas al servidor
   Operaciones basadas en conjuntos
   Transporte de datos eficiente
 Tipado Fuerte
TVP (Parámetros de tabla)




“Aprovecha las características TVP y MERGE en tus aplicaciones”
http://msdn.microsoft.com/es-es/sqlserver
Funciones en SQL Server

 Podemos definir las funciones de usuario en:
   Funciones inline
   Funciones multi-statement
 Tendamos a eliminar las funciones…¿pero todas?
 Problema:
   No son visibles en los planes de ejecución gráficos
   Producen malísimas estimaciones estadísticas que derivan en
    inadecuados usos de NESTED LOOPS
   El código se interpreta en cada llamada (si no se usa bien)
   Por último y más importante: NO ES POSIBLE PARALELISMO
DEMO


FUNCIONES EN SQL SERVER.
EL DESASTRE Y SU SOLUCIÓN
Agenda

 Configuraciones avanzadas de SQL Server
     NUMA
     Threads vs fibers
     IO Affinity Mask
     Max Degree of parallelism
     Configuracion de memoria
     Tempdb
 Configuraciones avanzadas de base de datos
   Log transacciones
   Date correlation optimization
   Parametrization
 Patrones para Developers
   Reducción de idas y venidas mediante el uso de TVP
   Las funciones en SQL Server, el desastre y su solución
¿ PREGUNTAS ?

  ecatala@solidq.com


http://blogs.solidq.com/ElRinconDelDBA/default.aspx

Más contenido relacionado

La actualidad más candente

Yahoo! JAPANのOracle構成-2017年版
Yahoo! JAPANのOracle構成-2017年版Yahoo! JAPANのOracle構成-2017年版
Yahoo! JAPANのOracle構成-2017年版
Yahoo!デベロッパーネットワーク
 
DDD 2016 DB 12c クエリー・オプティマイザ新機能活用と統計情報運用の戦略
DDD 2016 DB 12c クエリー・オプティマイザ新機能活用と統計情報運用の戦略DDD 2016 DB 12c クエリー・オプティマイザ新機能活用と統計情報運用の戦略
DDD 2016 DB 12c クエリー・オプティマイザ新機能活用と統計情報運用の戦略
歩 柴田
 
しばちょう先生が語る!オラクルデータベースの進化の歴史と最新技術動向#3
しばちょう先生が語る!オラクルデータベースの進化の歴史と最新技術動向#3しばちょう先生が語る!オラクルデータベースの進化の歴史と最新技術動向#3
しばちょう先生が語る!オラクルデータベースの進化の歴史と最新技術動向#3
オラクルエンジニア通信
 
Using Performance Insights to Optimize Database Performance (DAT402) - AWS re...
Using Performance Insights to Optimize Database Performance (DAT402) - AWS re...Using Performance Insights to Optimize Database Performance (DAT402) - AWS re...
Using Performance Insights to Optimize Database Performance (DAT402) - AWS re...
Amazon Web Services
 
Oracle SGA 介紹
Oracle SGA 介紹Oracle SGA 介紹
Oracle SGA 介紹
Chien Chung Shen
 
ADVANCE DATABASE MANAGEMENT SYSTEM CONCEPTS & ARCHITECTURE by vikas jagtap
ADVANCE DATABASE MANAGEMENT SYSTEM CONCEPTS & ARCHITECTURE by vikas jagtapADVANCE DATABASE MANAGEMENT SYSTEM CONCEPTS & ARCHITECTURE by vikas jagtap
ADVANCE DATABASE MANAGEMENT SYSTEM CONCEPTS & ARCHITECTURE by vikas jagtap
Vikas Jagtap
 
Oracle使用者安全設定
Oracle使用者安全設定Oracle使用者安全設定
Oracle使用者安全設定
Chien Chung Shen
 
ちょっと理解に自信がないな という皆さまに贈るHadoop/Sparkのキホン (IBM Datapalooza Tokyo 2016講演資料)
ちょっと理解に自信がないなという皆さまに贈るHadoop/Sparkのキホン (IBM Datapalooza Tokyo 2016講演資料)ちょっと理解に自信がないなという皆さまに贈るHadoop/Sparkのキホン (IBM Datapalooza Tokyo 2016講演資料)
ちょっと理解に自信がないな という皆さまに贈るHadoop/Sparkのキホン (IBM Datapalooza Tokyo 2016講演資料)
hamaken
 
[Oracle DBA & Developer Day 2016] しばちょう先生の特別講義!!ストレージ管理のベストプラクティス ~ASMからExada...
[Oracle DBA & Developer Day 2016] しばちょう先生の特別講義!!ストレージ管理のベストプラクティス ~ASMからExada...[Oracle DBA & Developer Day 2016] しばちょう先生の特別講義!!ストレージ管理のベストプラクティス ~ASMからExada...
[Oracle DBA & Developer Day 2016] しばちょう先生の特別講義!!ストレージ管理のベストプラクティス ~ASMからExada...
オラクルエンジニア通信
 
Optimize and Simplify Oracle 12C RAC using dNFS, ZFS and OISP
Optimize and Simplify Oracle 12C RAC using dNFS, ZFS and OISPOptimize and Simplify Oracle 12C RAC using dNFS, ZFS and OISP
Optimize and Simplify Oracle 12C RAC using dNFS, ZFS and OISP
Secure-24
 
もしOracleDBAがMySQLを管理することになったときの注意点など
もしOracleDBAがMySQLを管理することになったときの注意点などもしOracleDBAがMySQLを管理することになったときの注意点など
もしOracleDBAがMySQLを管理することになったときの注意点など
Kentaro Kitagawa
 
バッチ処理にバインド変数はもうやめません? ~|バッチ処理の突発遅延を題材にして考えてみる~
バッチ処理にバインド変数はもうやめません? ~|バッチ処理の突発遅延を題材にして考えてみる~バッチ処理にバインド変数はもうやめません? ~|バッチ処理の突発遅延を題材にして考えてみる~
バッチ処理にバインド変数はもうやめません? ~|バッチ処理の突発遅延を題材にして考えてみる~
Ryota Watabe
 
クラウドDWHにおける観点とAzure Synapse Analyticsの対応
クラウドDWHにおける観点とAzure Synapse Analyticsの対応クラウドDWHにおける観点とAzure Synapse Analyticsの対応
クラウドDWHにおける観点とAzure Synapse Analyticsの対応
Ryoma Nagata
 
Tuning SQL for Oracle Exadata: The Good, The Bad, and The Ugly Tuning SQL fo...
 Tuning SQL for Oracle Exadata: The Good, The Bad, and The Ugly Tuning SQL fo... Tuning SQL for Oracle Exadata: The Good, The Bad, and The Ugly Tuning SQL fo...
Tuning SQL for Oracle Exadata: The Good, The Bad, and The Ugly Tuning SQL fo...
Enkitec
 
しばちょう先生による特別講義! RMANバックアップの運用と高速化チューニング
しばちょう先生による特別講義! RMANバックアップの運用と高速化チューニングしばちょう先生による特別講義! RMANバックアップの運用と高速化チューニング
しばちょう先生による特別講義! RMANバックアップの運用と高速化チューニング
オラクルエンジニア通信
 
İleri Seviye T-SQL Programlama - Chapter 05
İleri Seviye T-SQL Programlama - Chapter 05İleri Seviye T-SQL Programlama - Chapter 05
İleri Seviye T-SQL Programlama - Chapter 05
Cihan Özhan
 
しばちょう先生が語る!オラクルデータベースの進化の歴史と最新技術動向#1
しばちょう先生が語る!オラクルデータベースの進化の歴史と最新技術動向#1しばちょう先生が語る!オラクルデータベースの進化の歴史と最新技術動向#1
しばちょう先生が語る!オラクルデータベースの進化の歴史と最新技術動向#1
オラクルエンジニア通信
 
新機能によるデータベースシステムの改善ポイント
新機能によるデータベースシステムの改善ポイント新機能によるデータベースシステムの改善ポイント
新機能によるデータベースシステムの改善ポイント
オラクルエンジニア通信
 
İleri Seviye T-SQL Programlama - Chapter 03
İleri Seviye T-SQL Programlama - Chapter 03İleri Seviye T-SQL Programlama - Chapter 03
İleri Seviye T-SQL Programlama - Chapter 03
Cihan Özhan
 
まだ統計固定で消耗してるの? - Bind Peek をもっと使おうぜ! 2015 Edition -
まだ統計固定で消耗してるの? - Bind Peek をもっと使おうぜ! 2015 Edition -まだ統計固定で消耗してるの? - Bind Peek をもっと使おうぜ! 2015 Edition -
まだ統計固定で消耗してるの? - Bind Peek をもっと使おうぜ! 2015 Edition -
歩 柴田
 

La actualidad más candente (20)

Yahoo! JAPANのOracle構成-2017年版
Yahoo! JAPANのOracle構成-2017年版Yahoo! JAPANのOracle構成-2017年版
Yahoo! JAPANのOracle構成-2017年版
 
DDD 2016 DB 12c クエリー・オプティマイザ新機能活用と統計情報運用の戦略
DDD 2016 DB 12c クエリー・オプティマイザ新機能活用と統計情報運用の戦略DDD 2016 DB 12c クエリー・オプティマイザ新機能活用と統計情報運用の戦略
DDD 2016 DB 12c クエリー・オプティマイザ新機能活用と統計情報運用の戦略
 
しばちょう先生が語る!オラクルデータベースの進化の歴史と最新技術動向#3
しばちょう先生が語る!オラクルデータベースの進化の歴史と最新技術動向#3しばちょう先生が語る!オラクルデータベースの進化の歴史と最新技術動向#3
しばちょう先生が語る!オラクルデータベースの進化の歴史と最新技術動向#3
 
Using Performance Insights to Optimize Database Performance (DAT402) - AWS re...
Using Performance Insights to Optimize Database Performance (DAT402) - AWS re...Using Performance Insights to Optimize Database Performance (DAT402) - AWS re...
Using Performance Insights to Optimize Database Performance (DAT402) - AWS re...
 
Oracle SGA 介紹
Oracle SGA 介紹Oracle SGA 介紹
Oracle SGA 介紹
 
ADVANCE DATABASE MANAGEMENT SYSTEM CONCEPTS & ARCHITECTURE by vikas jagtap
ADVANCE DATABASE MANAGEMENT SYSTEM CONCEPTS & ARCHITECTURE by vikas jagtapADVANCE DATABASE MANAGEMENT SYSTEM CONCEPTS & ARCHITECTURE by vikas jagtap
ADVANCE DATABASE MANAGEMENT SYSTEM CONCEPTS & ARCHITECTURE by vikas jagtap
 
Oracle使用者安全設定
Oracle使用者安全設定Oracle使用者安全設定
Oracle使用者安全設定
 
ちょっと理解に自信がないな という皆さまに贈るHadoop/Sparkのキホン (IBM Datapalooza Tokyo 2016講演資料)
ちょっと理解に自信がないなという皆さまに贈るHadoop/Sparkのキホン (IBM Datapalooza Tokyo 2016講演資料)ちょっと理解に自信がないなという皆さまに贈るHadoop/Sparkのキホン (IBM Datapalooza Tokyo 2016講演資料)
ちょっと理解に自信がないな という皆さまに贈るHadoop/Sparkのキホン (IBM Datapalooza Tokyo 2016講演資料)
 
[Oracle DBA & Developer Day 2016] しばちょう先生の特別講義!!ストレージ管理のベストプラクティス ~ASMからExada...
[Oracle DBA & Developer Day 2016] しばちょう先生の特別講義!!ストレージ管理のベストプラクティス ~ASMからExada...[Oracle DBA & Developer Day 2016] しばちょう先生の特別講義!!ストレージ管理のベストプラクティス ~ASMからExada...
[Oracle DBA & Developer Day 2016] しばちょう先生の特別講義!!ストレージ管理のベストプラクティス ~ASMからExada...
 
Optimize and Simplify Oracle 12C RAC using dNFS, ZFS and OISP
Optimize and Simplify Oracle 12C RAC using dNFS, ZFS and OISPOptimize and Simplify Oracle 12C RAC using dNFS, ZFS and OISP
Optimize and Simplify Oracle 12C RAC using dNFS, ZFS and OISP
 
もしOracleDBAがMySQLを管理することになったときの注意点など
もしOracleDBAがMySQLを管理することになったときの注意点などもしOracleDBAがMySQLを管理することになったときの注意点など
もしOracleDBAがMySQLを管理することになったときの注意点など
 
バッチ処理にバインド変数はもうやめません? ~|バッチ処理の突発遅延を題材にして考えてみる~
バッチ処理にバインド変数はもうやめません? ~|バッチ処理の突発遅延を題材にして考えてみる~バッチ処理にバインド変数はもうやめません? ~|バッチ処理の突発遅延を題材にして考えてみる~
バッチ処理にバインド変数はもうやめません? ~|バッチ処理の突発遅延を題材にして考えてみる~
 
クラウドDWHにおける観点とAzure Synapse Analyticsの対応
クラウドDWHにおける観点とAzure Synapse Analyticsの対応クラウドDWHにおける観点とAzure Synapse Analyticsの対応
クラウドDWHにおける観点とAzure Synapse Analyticsの対応
 
Tuning SQL for Oracle Exadata: The Good, The Bad, and The Ugly Tuning SQL fo...
 Tuning SQL for Oracle Exadata: The Good, The Bad, and The Ugly Tuning SQL fo... Tuning SQL for Oracle Exadata: The Good, The Bad, and The Ugly Tuning SQL fo...
Tuning SQL for Oracle Exadata: The Good, The Bad, and The Ugly Tuning SQL fo...
 
しばちょう先生による特別講義! RMANバックアップの運用と高速化チューニング
しばちょう先生による特別講義! RMANバックアップの運用と高速化チューニングしばちょう先生による特別講義! RMANバックアップの運用と高速化チューニング
しばちょう先生による特別講義! RMANバックアップの運用と高速化チューニング
 
İleri Seviye T-SQL Programlama - Chapter 05
İleri Seviye T-SQL Programlama - Chapter 05İleri Seviye T-SQL Programlama - Chapter 05
İleri Seviye T-SQL Programlama - Chapter 05
 
しばちょう先生が語る!オラクルデータベースの進化の歴史と最新技術動向#1
しばちょう先生が語る!オラクルデータベースの進化の歴史と最新技術動向#1しばちょう先生が語る!オラクルデータベースの進化の歴史と最新技術動向#1
しばちょう先生が語る!オラクルデータベースの進化の歴史と最新技術動向#1
 
新機能によるデータベースシステムの改善ポイント
新機能によるデータベースシステムの改善ポイント新機能によるデータベースシステムの改善ポイント
新機能によるデータベースシステムの改善ポイント
 
İleri Seviye T-SQL Programlama - Chapter 03
İleri Seviye T-SQL Programlama - Chapter 03İleri Seviye T-SQL Programlama - Chapter 03
İleri Seviye T-SQL Programlama - Chapter 03
 
まだ統計固定で消耗してるの? - Bind Peek をもっと使おうぜ! 2015 Edition -
まだ統計固定で消耗してるの? - Bind Peek をもっと使おうぜ! 2015 Edition -まだ統計固定で消耗してるの? - Bind Peek をもっと使おうぜ! 2015 Edition -
まだ統計固定で消耗してるの? - Bind Peek をもっと使おうぜ! 2015 Edition -
 

Destacado

Trucos, OptimizacióN Y Buenas PráCticas Para Sql
Trucos, OptimizacióN Y Buenas PráCticas Para SqlTrucos, OptimizacióN Y Buenas PráCticas Para Sql
Trucos, OptimizacióN Y Buenas PráCticas Para Sql
Antonio Soto
 
Mejores practicas sql
Mejores practicas sqlMejores practicas sql
Mejores practicas sql
nnakasone
 
Administrando SQL Server, mejores practicas para un DBA
Administrando SQL Server, mejores practicas para un DBAAdministrando SQL Server, mejores practicas para un DBA
Administrando SQL Server, mejores practicas para un DBA
SpanishPASSVC
 
BEST_PRACTICES: Buenas Prácticas para el Desarrollador de bases de datos
BEST_PRACTICES: Buenas Prácticas para el Desarrollador de bases de datos BEST_PRACTICES: Buenas Prácticas para el Desarrollador de bases de datos
BEST_PRACTICES: Buenas Prácticas para el Desarrollador de bases de datos
SolidQ
 
BEST_PRACTICES: Buenas prácticas para el DBA
BEST_PRACTICES: Buenas prácticas para el DBA BEST_PRACTICES: Buenas prácticas para el DBA
BEST_PRACTICES: Buenas prácticas para el DBA
SolidQ
 
Taller Consultas Básicas SQL Server No 1
Taller Consultas Básicas SQL Server No 1Taller Consultas Básicas SQL Server No 1
Taller Consultas Básicas SQL Server No 1
Julián Castiblanco
 
Programacion con SQL Server 2005
Programacion con SQL Server 2005Programacion con SQL Server 2005
Programacion con SQL Server 2005
brobelo
 
Técnicas avanzadas de consultas con sql server 2014
Técnicas avanzadas de consultas con sql server 2014Técnicas avanzadas de consultas con sql server 2014
Técnicas avanzadas de consultas con sql server 2014
JOSE AHIAS LOPEZ PORTILLO
 
Taller Básico Sentencias SQL
Taller Básico Sentencias SQL Taller Básico Sentencias SQL
Taller Básico Sentencias SQL
Julián Castiblanco
 
WebCast de optimización Sql Server - Almacenamiento e Índices
WebCast de optimización Sql Server - Almacenamiento e ÍndicesWebCast de optimización Sql Server - Almacenamiento e Índices
WebCast de optimización Sql Server - Almacenamiento e Índices
JOSE AHIAS LOPEZ PORTILLO
 
Novedades en el manejo de Grandes volúmenes de datos con SQL Server 2014
Novedades en el manejo de Grandes volúmenes de datos con SQL Server 2014Novedades en el manejo de Grandes volúmenes de datos con SQL Server 2014
Novedades en el manejo de Grandes volúmenes de datos con SQL Server 2014
Enrique Puig
 
INDICES EN SQL SERVER
INDICES EN SQL SERVERINDICES EN SQL SERVER
INDICES EN SQL SERVER
Darwin Durand
 
Curso sql server 2012 clase 1
Curso sql server 2012 clase 1Curso sql server 2012 clase 1
Curso sql server 2012 clase 1
josealopezpastor
 
Curso sql server 2012 clase 3
Curso sql server 2012 clase 3Curso sql server 2012 clase 3
Curso sql server 2012 clase 3
josealopezpastor
 
Bases de Datos Distribuidas con Sql Server 2012
Bases de Datos Distribuidas con Sql Server 2012Bases de Datos Distribuidas con Sql Server 2012
Bases de Datos Distribuidas con Sql Server 2012
Antonio Ortiz
 
Curso sql server 2012 clase 2
Curso sql server 2012 clase 2Curso sql server 2012 clase 2
Curso sql server 2012 clase 2
josealopezpastor
 
Spatial Data in SQL Server
Spatial Data in SQL ServerSpatial Data in SQL Server
Spatial Data in SQL Server
Eduardo Castro
 
Unidad 1 algoritmos y programas
Unidad 1 algoritmos y programasUnidad 1 algoritmos y programas
Unidad 1 algoritmos y programas
Roberth Camana
 
Variables, tipos de datos, operadores
Variables, tipos de datos, operadores Variables, tipos de datos, operadores
Variables, tipos de datos, operadores
juan ventura
 
EO_0317
EO_0317EO_0317
EO_0317
Neil Williams
 

Destacado (20)

Trucos, OptimizacióN Y Buenas PráCticas Para Sql
Trucos, OptimizacióN Y Buenas PráCticas Para SqlTrucos, OptimizacióN Y Buenas PráCticas Para Sql
Trucos, OptimizacióN Y Buenas PráCticas Para Sql
 
Mejores practicas sql
Mejores practicas sqlMejores practicas sql
Mejores practicas sql
 
Administrando SQL Server, mejores practicas para un DBA
Administrando SQL Server, mejores practicas para un DBAAdministrando SQL Server, mejores practicas para un DBA
Administrando SQL Server, mejores practicas para un DBA
 
BEST_PRACTICES: Buenas Prácticas para el Desarrollador de bases de datos
BEST_PRACTICES: Buenas Prácticas para el Desarrollador de bases de datos BEST_PRACTICES: Buenas Prácticas para el Desarrollador de bases de datos
BEST_PRACTICES: Buenas Prácticas para el Desarrollador de bases de datos
 
BEST_PRACTICES: Buenas prácticas para el DBA
BEST_PRACTICES: Buenas prácticas para el DBA BEST_PRACTICES: Buenas prácticas para el DBA
BEST_PRACTICES: Buenas prácticas para el DBA
 
Taller Consultas Básicas SQL Server No 1
Taller Consultas Básicas SQL Server No 1Taller Consultas Básicas SQL Server No 1
Taller Consultas Básicas SQL Server No 1
 
Programacion con SQL Server 2005
Programacion con SQL Server 2005Programacion con SQL Server 2005
Programacion con SQL Server 2005
 
Técnicas avanzadas de consultas con sql server 2014
Técnicas avanzadas de consultas con sql server 2014Técnicas avanzadas de consultas con sql server 2014
Técnicas avanzadas de consultas con sql server 2014
 
Taller Básico Sentencias SQL
Taller Básico Sentencias SQL Taller Básico Sentencias SQL
Taller Básico Sentencias SQL
 
WebCast de optimización Sql Server - Almacenamiento e Índices
WebCast de optimización Sql Server - Almacenamiento e ÍndicesWebCast de optimización Sql Server - Almacenamiento e Índices
WebCast de optimización Sql Server - Almacenamiento e Índices
 
Novedades en el manejo de Grandes volúmenes de datos con SQL Server 2014
Novedades en el manejo de Grandes volúmenes de datos con SQL Server 2014Novedades en el manejo de Grandes volúmenes de datos con SQL Server 2014
Novedades en el manejo de Grandes volúmenes de datos con SQL Server 2014
 
INDICES EN SQL SERVER
INDICES EN SQL SERVERINDICES EN SQL SERVER
INDICES EN SQL SERVER
 
Curso sql server 2012 clase 1
Curso sql server 2012 clase 1Curso sql server 2012 clase 1
Curso sql server 2012 clase 1
 
Curso sql server 2012 clase 3
Curso sql server 2012 clase 3Curso sql server 2012 clase 3
Curso sql server 2012 clase 3
 
Bases de Datos Distribuidas con Sql Server 2012
Bases de Datos Distribuidas con Sql Server 2012Bases de Datos Distribuidas con Sql Server 2012
Bases de Datos Distribuidas con Sql Server 2012
 
Curso sql server 2012 clase 2
Curso sql server 2012 clase 2Curso sql server 2012 clase 2
Curso sql server 2012 clase 2
 
Spatial Data in SQL Server
Spatial Data in SQL ServerSpatial Data in SQL Server
Spatial Data in SQL Server
 
Unidad 1 algoritmos y programas
Unidad 1 algoritmos y programasUnidad 1 algoritmos y programas
Unidad 1 algoritmos y programas
 
Variables, tipos de datos, operadores
Variables, tipos de datos, operadores Variables, tipos de datos, operadores
Variables, tipos de datos, operadores
 
EO_0317
EO_0317EO_0317
EO_0317
 

Similar a Lo que siempre has querido saber para exprimir sql server

Monitorizando y optimizando problemas de paralelismo en SQL Server | SolidQ S...
Monitorizando y optimizando problemas de paralelismo en SQL Server | SolidQ S...Monitorizando y optimizando problemas de paralelismo en SQL Server | SolidQ S...
Monitorizando y optimizando problemas de paralelismo en SQL Server | SolidQ S...
SolidQ
 
Carbura tusql sesion1_slideshare
Carbura tusql sesion1_slideshareCarbura tusql sesion1_slideshare
Carbura tusql sesion1_slideshare
Julián Castiblanco
 
Nuevo motor relacional In-memory OLTP
Nuevo motor relacional In-memory OLTPNuevo motor relacional In-memory OLTP
Nuevo motor relacional In-memory OLTP
SolidQ
 
Instancias Amazon EC2 a profundidad
Instancias Amazon EC2 a profundidadInstancias Amazon EC2 a profundidad
Instancias Amazon EC2 a profundidad
Amazon Web Services LATAM
 
Introducción a bases de datos en memoria oltp
Introducción a bases de datos en memoria oltpIntroducción a bases de datos en memoria oltp
Introducción a bases de datos en memoria oltp
Eliana Caraballo
 
Arquitectura risc
Arquitectura riscArquitectura risc
Arquitectura risc
Vannesa Salazar
 
Sistemas de entrada y salida
Sistemas de entrada y salidaSistemas de entrada y salida
Sistemas de entrada y salida
Israel Rey
 
Tema 1: Procesadores segmentados.Tema 1: Procesadores segmentados.
Tema 1: Procesadores segmentados.Tema 1: Procesadores segmentados.Tema 1: Procesadores segmentados.Tema 1: Procesadores segmentados.
Tema 1: Procesadores segmentados.Tema 1: Procesadores segmentados.
Manuel Fernandez Barcell
 
Arqui hardware
Arqui hardwareArqui hardware
Bases de datos NoSQL - Huancayo - 2010
Bases de datos NoSQL - Huancayo - 2010Bases de datos NoSQL - Huancayo - 2010
Bases de datos NoSQL - Huancayo - 2010
Antonio Ognio
 
Sistema E S
Sistema E SSistema E S
Sistema E S
Henry Guarnizo
 
Optimiza tus queries desde abajo
Optimiza tus queries desde abajoOptimiza tus queries desde abajo
Optimiza tus queries desde abajo
Enrique Catala Bañuls
 
Unidad IV
Unidad IVUnidad IV
Unidad IV
Luis Morán
 
Sqlite
SqliteSqlite
Rendimiento en aplicaciones web con Symfony2
Rendimiento en aplicaciones web con Symfony2Rendimiento en aplicaciones web con Symfony2
Rendimiento en aplicaciones web con Symfony2
Asier Marqués
 
Exposicio teradat
Exposicio teradatExposicio teradat
Exposicio teradat
Wladimir Vilca
 
Sistema Operativo Oper Ajaja
Sistema Operativo Oper AjajaSistema Operativo Oper Ajaja
Sistema Operativo Oper Ajaja
albertman
 
Sistema Operativo Oper Ajaja
Sistema Operativo Oper AjajaSistema Operativo Oper Ajaja
Sistema Operativo Oper Ajaja
guest111d2
 
Cassandra Instalacion y Utilizacion
Cassandra Instalacion y UtilizacionCassandra Instalacion y Utilizacion
Cassandra Instalacion y Utilizacion
Leandro Carrera
 
Gestion de Memoria
Gestion de MemoriaGestion de Memoria
Gestion de Memoria
Julio Cesar Mendez Cuevas
 

Similar a Lo que siempre has querido saber para exprimir sql server (20)

Monitorizando y optimizando problemas de paralelismo en SQL Server | SolidQ S...
Monitorizando y optimizando problemas de paralelismo en SQL Server | SolidQ S...Monitorizando y optimizando problemas de paralelismo en SQL Server | SolidQ S...
Monitorizando y optimizando problemas de paralelismo en SQL Server | SolidQ S...
 
Carbura tusql sesion1_slideshare
Carbura tusql sesion1_slideshareCarbura tusql sesion1_slideshare
Carbura tusql sesion1_slideshare
 
Nuevo motor relacional In-memory OLTP
Nuevo motor relacional In-memory OLTPNuevo motor relacional In-memory OLTP
Nuevo motor relacional In-memory OLTP
 
Instancias Amazon EC2 a profundidad
Instancias Amazon EC2 a profundidadInstancias Amazon EC2 a profundidad
Instancias Amazon EC2 a profundidad
 
Introducción a bases de datos en memoria oltp
Introducción a bases de datos en memoria oltpIntroducción a bases de datos en memoria oltp
Introducción a bases de datos en memoria oltp
 
Arquitectura risc
Arquitectura riscArquitectura risc
Arquitectura risc
 
Sistemas de entrada y salida
Sistemas de entrada y salidaSistemas de entrada y salida
Sistemas de entrada y salida
 
Tema 1: Procesadores segmentados.Tema 1: Procesadores segmentados.
Tema 1: Procesadores segmentados.Tema 1: Procesadores segmentados.Tema 1: Procesadores segmentados.Tema 1: Procesadores segmentados.
Tema 1: Procesadores segmentados.Tema 1: Procesadores segmentados.
 
Arqui hardware
Arqui hardwareArqui hardware
Arqui hardware
 
Bases de datos NoSQL - Huancayo - 2010
Bases de datos NoSQL - Huancayo - 2010Bases de datos NoSQL - Huancayo - 2010
Bases de datos NoSQL - Huancayo - 2010
 
Sistema E S
Sistema E SSistema E S
Sistema E S
 
Optimiza tus queries desde abajo
Optimiza tus queries desde abajoOptimiza tus queries desde abajo
Optimiza tus queries desde abajo
 
Unidad IV
Unidad IVUnidad IV
Unidad IV
 
Sqlite
SqliteSqlite
Sqlite
 
Rendimiento en aplicaciones web con Symfony2
Rendimiento en aplicaciones web con Symfony2Rendimiento en aplicaciones web con Symfony2
Rendimiento en aplicaciones web con Symfony2
 
Exposicio teradat
Exposicio teradatExposicio teradat
Exposicio teradat
 
Sistema Operativo Oper Ajaja
Sistema Operativo Oper AjajaSistema Operativo Oper Ajaja
Sistema Operativo Oper Ajaja
 
Sistema Operativo Oper Ajaja
Sistema Operativo Oper AjajaSistema Operativo Oper Ajaja
Sistema Operativo Oper Ajaja
 
Cassandra Instalacion y Utilizacion
Cassandra Instalacion y UtilizacionCassandra Instalacion y Utilizacion
Cassandra Instalacion y Utilizacion
 
Gestion de Memoria
Gestion de MemoriaGestion de Memoria
Gestion de Memoria
 

Más de Enrique Catala Bañuls

Sql server ha muerto, larga vida a sql server
Sql server ha muerto, larga vida a sql serverSql server ha muerto, larga vida a sql server
Sql server ha muerto, larga vida a sql server
Enrique Catala Bañuls
 
Capas de acceso a datos .net escalables de verdad contra SQL Server
Capas de acceso a datos .net escalables de verdad contra SQL ServerCapas de acceso a datos .net escalables de verdad contra SQL Server
Capas de acceso a datos .net escalables de verdad contra SQL Server
Enrique Catala Bañuls
 
Paralelismo en SQL Server
Paralelismo en SQL ServerParalelismo en SQL Server
Paralelismo en SQL Server
Enrique Catala Bañuls
 
Aplicando R al análisis de rendimiento de un servidor
Aplicando R al análisis de rendimiento de un servidorAplicando R al análisis de rendimiento de un servidor
Aplicando R al análisis de rendimiento de un servidor
Enrique Catala Bañuls
 
Técnicas avanzadas para resolver tus problemas de sql server
Técnicas avanzadas para resolver tus problemas de sql serverTécnicas avanzadas para resolver tus problemas de sql server
Técnicas avanzadas para resolver tus problemas de sql server
Enrique Catala Bañuls
 
Capas de acceso a datos .NET escalables de verdad: el batido perfecto para el...
Capas de acceso a datos .NET escalables de verdad: el batido perfecto para el...Capas de acceso a datos .NET escalables de verdad: el batido perfecto para el...
Capas de acceso a datos .NET escalables de verdad: el batido perfecto para el...
Enrique Catala Bañuls
 
Planes de ejecución 3.0 sql 2016 y v next
Planes de ejecución 3.0 sql 2016 y v nextPlanes de ejecución 3.0 sql 2016 y v next
Planes de ejecución 3.0 sql 2016 y v next
Enrique Catala Bañuls
 
Paralelismo en sql server
Paralelismo en sql serverParalelismo en sql server
Paralelismo en sql server
Enrique Catala Bañuls
 
Aplicando R al análisis de rendimiento de un servidor
Aplicando R al análisis de rendimiento de un servidorAplicando R al análisis de rendimiento de un servidor
Aplicando R al análisis de rendimiento de un servidor
Enrique Catala Bañuls
 
Query store
Query storeQuery store
Planes de ejecucion 2016
Planes de ejecucion 2016Planes de ejecucion 2016
Planes de ejecucion 2016
Enrique Catala Bañuls
 
Sql server 2016 novedades para desarrolladores
Sql server 2016 novedades para desarrolladoresSql server 2016 novedades para desarrolladores
Sql server 2016 novedades para desarrolladores
Enrique Catala Bañuls
 
Dawarehouse como servicio en azure (sqldw)
Dawarehouse como servicio en azure (sqldw)Dawarehouse como servicio en azure (sqldw)
Dawarehouse como servicio en azure (sqldw)
Enrique Catala Bañuls
 
Query store
Query storeQuery store
Planes de ejecucion 2
Planes de ejecucion 2Planes de ejecucion 2
Planes de ejecucion 2
Enrique Catala Bañuls
 
Planes de ejecucion 1
Planes de ejecucion 1Planes de ejecucion 1
Planes de ejecucion 1
Enrique Catala Bañuls
 
Migración a sql server 2016
Migración a sql server 2016Migración a sql server 2016
Migración a sql server 2016
Enrique Catala Bañuls
 
Datawarehouse como servicio en azure (sqldw)
Datawarehouse como servicio en azure (sqldw)Datawarehouse como servicio en azure (sqldw)
Datawarehouse como servicio en azure (sqldw)
Enrique Catala Bañuls
 
Como hacer tuning a capas de acceso a datos en .NET (dotNetConference2016)
Como hacer tuning a capas de acceso a datos en .NET (dotNetConference2016)Como hacer tuning a capas de acceso a datos en .NET (dotNetConference2016)
Como hacer tuning a capas de acceso a datos en .NET (dotNetConference2016)
Enrique Catala Bañuls
 
Como leer planes de ejecución - edición 2015
Como leer planes de ejecución - edición 2015Como leer planes de ejecución - edición 2015
Como leer planes de ejecución - edición 2015
Enrique Catala Bañuls
 

Más de Enrique Catala Bañuls (20)

Sql server ha muerto, larga vida a sql server
Sql server ha muerto, larga vida a sql serverSql server ha muerto, larga vida a sql server
Sql server ha muerto, larga vida a sql server
 
Capas de acceso a datos .net escalables de verdad contra SQL Server
Capas de acceso a datos .net escalables de verdad contra SQL ServerCapas de acceso a datos .net escalables de verdad contra SQL Server
Capas de acceso a datos .net escalables de verdad contra SQL Server
 
Paralelismo en SQL Server
Paralelismo en SQL ServerParalelismo en SQL Server
Paralelismo en SQL Server
 
Aplicando R al análisis de rendimiento de un servidor
Aplicando R al análisis de rendimiento de un servidorAplicando R al análisis de rendimiento de un servidor
Aplicando R al análisis de rendimiento de un servidor
 
Técnicas avanzadas para resolver tus problemas de sql server
Técnicas avanzadas para resolver tus problemas de sql serverTécnicas avanzadas para resolver tus problemas de sql server
Técnicas avanzadas para resolver tus problemas de sql server
 
Capas de acceso a datos .NET escalables de verdad: el batido perfecto para el...
Capas de acceso a datos .NET escalables de verdad: el batido perfecto para el...Capas de acceso a datos .NET escalables de verdad: el batido perfecto para el...
Capas de acceso a datos .NET escalables de verdad: el batido perfecto para el...
 
Planes de ejecución 3.0 sql 2016 y v next
Planes de ejecución 3.0 sql 2016 y v nextPlanes de ejecución 3.0 sql 2016 y v next
Planes de ejecución 3.0 sql 2016 y v next
 
Paralelismo en sql server
Paralelismo en sql serverParalelismo en sql server
Paralelismo en sql server
 
Aplicando R al análisis de rendimiento de un servidor
Aplicando R al análisis de rendimiento de un servidorAplicando R al análisis de rendimiento de un servidor
Aplicando R al análisis de rendimiento de un servidor
 
Query store
Query storeQuery store
Query store
 
Planes de ejecucion 2016
Planes de ejecucion 2016Planes de ejecucion 2016
Planes de ejecucion 2016
 
Sql server 2016 novedades para desarrolladores
Sql server 2016 novedades para desarrolladoresSql server 2016 novedades para desarrolladores
Sql server 2016 novedades para desarrolladores
 
Dawarehouse como servicio en azure (sqldw)
Dawarehouse como servicio en azure (sqldw)Dawarehouse como servicio en azure (sqldw)
Dawarehouse como servicio en azure (sqldw)
 
Query store
Query storeQuery store
Query store
 
Planes de ejecucion 2
Planes de ejecucion 2Planes de ejecucion 2
Planes de ejecucion 2
 
Planes de ejecucion 1
Planes de ejecucion 1Planes de ejecucion 1
Planes de ejecucion 1
 
Migración a sql server 2016
Migración a sql server 2016Migración a sql server 2016
Migración a sql server 2016
 
Datawarehouse como servicio en azure (sqldw)
Datawarehouse como servicio en azure (sqldw)Datawarehouse como servicio en azure (sqldw)
Datawarehouse como servicio en azure (sqldw)
 
Como hacer tuning a capas de acceso a datos en .NET (dotNetConference2016)
Como hacer tuning a capas de acceso a datos en .NET (dotNetConference2016)Como hacer tuning a capas de acceso a datos en .NET (dotNetConference2016)
Como hacer tuning a capas de acceso a datos en .NET (dotNetConference2016)
 
Como leer planes de ejecución - edición 2015
Como leer planes de ejecución - edición 2015Como leer planes de ejecución - edición 2015
Como leer planes de ejecución - edición 2015
 

Último

Catalogo-Voxtech- accesorios radios RF.pdf
Catalogo-Voxtech- accesorios radios RF.pdfCatalogo-Voxtech- accesorios radios RF.pdf
Catalogo-Voxtech- accesorios radios RF.pdf
walter729637
 
aplicaciones de sistema de informacion geografico
aplicaciones de sistema de informacion geograficoaplicaciones de sistema de informacion geografico
aplicaciones de sistema de informacion geografico
cyberquiximies
 
Pedagogía : Gamificación en la educación
Pedagogía : Gamificación en la educaciónPedagogía : Gamificación en la educación
Pedagogía : Gamificación en la educación
César Luis Camba Martínez
 
_Manejo de Riesgos en el Laboratorio.pdf
_Manejo de Riesgos en el Laboratorio.pdf_Manejo de Riesgos en el Laboratorio.pdf
_Manejo de Riesgos en el Laboratorio.pdf
correodetareas
 
CAPCUT PASO A PASO - herramientas tecnológicas de edición de videos
CAPCUT PASO A PASO - herramientas tecnológicas de edición de videosCAPCUT PASO A PASO - herramientas tecnológicas de edición de videos
CAPCUT PASO A PASO - herramientas tecnológicas de edición de videos
Iris505525
 
Presentación Redes Sociales Moderno Morado.pdf
Presentación Redes Sociales Moderno Morado.pdfPresentación Redes Sociales Moderno Morado.pdf
Presentación Redes Sociales Moderno Morado.pdf
anniehuanhuayo80
 
El uso de las TIC en la vida cotidiana.pptx
El uso de las TIC en la vida cotidiana.pptxEl uso de las TIC en la vida cotidiana.pptx
El uso de las TIC en la vida cotidiana.pptx
Katia Reyes
 
BIOSENSORES BASADOS EN NANOTECNOLOGÍA.pdf
BIOSENSORES BASADOS EN NANOTECNOLOGÍA.pdfBIOSENSORES BASADOS EN NANOTECNOLOGÍA.pdf
BIOSENSORES BASADOS EN NANOTECNOLOGÍA.pdf
sunwndniel
 
TESisssssssss de yhnnjuuhjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj...
TESisssssssss de yhnnjuuhjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj...TESisssssssss de yhnnjuuhjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj...
TESisssssssss de yhnnjuuhjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj...
MenaOlortinYherlyEli
 
DESARROLLO_DE_APLICACIONES_MULTIMEDIA.pptx
DESARROLLO_DE_APLICACIONES_MULTIMEDIA.pptxDESARROLLO_DE_APLICACIONES_MULTIMEDIA.pptx
DESARROLLO_DE_APLICACIONES_MULTIMEDIA.pptx
fortinodominguez78
 
Conceptos basicas de programacion (1) (1).docx
Conceptos basicas de programacion (1) (1).docxConceptos basicas de programacion (1) (1).docx
Conceptos basicas de programacion (1) (1).docx
JuanVelandia33
 
Evolución, características, aplicación, ventajas y desventajas de las TIC
Evolución, características, aplicación, ventajas y desventajas de las TICEvolución, características, aplicación, ventajas y desventajas de las TIC
Evolución, características, aplicación, ventajas y desventajas de las TIC
Henry W. Zavala
 
Solución de vulnerabilidades en dispositivos de Area Local
Solución de vulnerabilidades en dispositivos de Area LocalSolución de vulnerabilidades en dispositivos de Area Local
Solución de vulnerabilidades en dispositivos de Area Local
investigacionproec
 
Generaciones de Computadoras .
Generaciones de Computadoras                 .Generaciones de Computadoras                 .
Generaciones de Computadoras .
gregory760891
 
Reconocimiento del Secuenciador de nanoporos (Nanopore sequencing) MinIon Mk1...
Reconocimiento del Secuenciador de nanoporos (Nanopore sequencing) MinIon Mk1...Reconocimiento del Secuenciador de nanoporos (Nanopore sequencing) MinIon Mk1...
Reconocimiento del Secuenciador de nanoporos (Nanopore sequencing) MinIon Mk1...
sunwndniel
 
2 FIBRA OPTICA COMO MEDIO DE RED DE ACCESO.pptx
2 FIBRA OPTICA COMO MEDIO DE RED DE ACCESO.pptx2 FIBRA OPTICA COMO MEDIO DE RED DE ACCESO.pptx
2 FIBRA OPTICA COMO MEDIO DE RED DE ACCESO.pptx
bellomiguelangel68
 
MATERIAL BASE D A T O S .docx
MATERIAL BASE    D A T O S              .docxMATERIAL BASE    D A T O S              .docx
MATERIAL BASE D A T O S .docx
CarlosAndresLoaizaRe
 
Informe de electroforesis del ADN MEDIANTE EL MinION Mk1C.pdf
Informe de electroforesis del ADN MEDIANTE EL MinION Mk1C.pdfInforme de electroforesis del ADN MEDIANTE EL MinION Mk1C.pdf
Informe de electroforesis del ADN MEDIANTE EL MinION Mk1C.pdf
KEVINYOICIAQUINOSORI
 
DN Consultores | Una mirada al mercado de fibra en Perú
DN Consultores | Una mirada al mercado de fibra en PerúDN Consultores | Una mirada al mercado de fibra en Perú
DN Consultores | Una mirada al mercado de fibra en Perú
estudios22
 

Último (19)

Catalogo-Voxtech- accesorios radios RF.pdf
Catalogo-Voxtech- accesorios radios RF.pdfCatalogo-Voxtech- accesorios radios RF.pdf
Catalogo-Voxtech- accesorios radios RF.pdf
 
aplicaciones de sistema de informacion geografico
aplicaciones de sistema de informacion geograficoaplicaciones de sistema de informacion geografico
aplicaciones de sistema de informacion geografico
 
Pedagogía : Gamificación en la educación
Pedagogía : Gamificación en la educaciónPedagogía : Gamificación en la educación
Pedagogía : Gamificación en la educación
 
_Manejo de Riesgos en el Laboratorio.pdf
_Manejo de Riesgos en el Laboratorio.pdf_Manejo de Riesgos en el Laboratorio.pdf
_Manejo de Riesgos en el Laboratorio.pdf
 
CAPCUT PASO A PASO - herramientas tecnológicas de edición de videos
CAPCUT PASO A PASO - herramientas tecnológicas de edición de videosCAPCUT PASO A PASO - herramientas tecnológicas de edición de videos
CAPCUT PASO A PASO - herramientas tecnológicas de edición de videos
 
Presentación Redes Sociales Moderno Morado.pdf
Presentación Redes Sociales Moderno Morado.pdfPresentación Redes Sociales Moderno Morado.pdf
Presentación Redes Sociales Moderno Morado.pdf
 
El uso de las TIC en la vida cotidiana.pptx
El uso de las TIC en la vida cotidiana.pptxEl uso de las TIC en la vida cotidiana.pptx
El uso de las TIC en la vida cotidiana.pptx
 
BIOSENSORES BASADOS EN NANOTECNOLOGÍA.pdf
BIOSENSORES BASADOS EN NANOTECNOLOGÍA.pdfBIOSENSORES BASADOS EN NANOTECNOLOGÍA.pdf
BIOSENSORES BASADOS EN NANOTECNOLOGÍA.pdf
 
TESisssssssss de yhnnjuuhjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj...
TESisssssssss de yhnnjuuhjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj...TESisssssssss de yhnnjuuhjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj...
TESisssssssss de yhnnjuuhjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj...
 
DESARROLLO_DE_APLICACIONES_MULTIMEDIA.pptx
DESARROLLO_DE_APLICACIONES_MULTIMEDIA.pptxDESARROLLO_DE_APLICACIONES_MULTIMEDIA.pptx
DESARROLLO_DE_APLICACIONES_MULTIMEDIA.pptx
 
Conceptos basicas de programacion (1) (1).docx
Conceptos basicas de programacion (1) (1).docxConceptos basicas de programacion (1) (1).docx
Conceptos basicas de programacion (1) (1).docx
 
Evolución, características, aplicación, ventajas y desventajas de las TIC
Evolución, características, aplicación, ventajas y desventajas de las TICEvolución, características, aplicación, ventajas y desventajas de las TIC
Evolución, características, aplicación, ventajas y desventajas de las TIC
 
Solución de vulnerabilidades en dispositivos de Area Local
Solución de vulnerabilidades en dispositivos de Area LocalSolución de vulnerabilidades en dispositivos de Area Local
Solución de vulnerabilidades en dispositivos de Area Local
 
Generaciones de Computadoras .
Generaciones de Computadoras                 .Generaciones de Computadoras                 .
Generaciones de Computadoras .
 
Reconocimiento del Secuenciador de nanoporos (Nanopore sequencing) MinIon Mk1...
Reconocimiento del Secuenciador de nanoporos (Nanopore sequencing) MinIon Mk1...Reconocimiento del Secuenciador de nanoporos (Nanopore sequencing) MinIon Mk1...
Reconocimiento del Secuenciador de nanoporos (Nanopore sequencing) MinIon Mk1...
 
2 FIBRA OPTICA COMO MEDIO DE RED DE ACCESO.pptx
2 FIBRA OPTICA COMO MEDIO DE RED DE ACCESO.pptx2 FIBRA OPTICA COMO MEDIO DE RED DE ACCESO.pptx
2 FIBRA OPTICA COMO MEDIO DE RED DE ACCESO.pptx
 
MATERIAL BASE D A T O S .docx
MATERIAL BASE    D A T O S              .docxMATERIAL BASE    D A T O S              .docx
MATERIAL BASE D A T O S .docx
 
Informe de electroforesis del ADN MEDIANTE EL MinION Mk1C.pdf
Informe de electroforesis del ADN MEDIANTE EL MinION Mk1C.pdfInforme de electroforesis del ADN MEDIANTE EL MinION Mk1C.pdf
Informe de electroforesis del ADN MEDIANTE EL MinION Mk1C.pdf
 
DN Consultores | Una mirada al mercado de fibra en Perú
DN Consultores | Una mirada al mercado de fibra en PerúDN Consultores | Una mirada al mercado de fibra en Perú
DN Consultores | Una mirada al mercado de fibra en Perú
 

Lo que siempre has querido saber para exprimir sql server

  • 1. ¡OPTIMIZACIÓN! Lo que siempre has querido saber para exprimir SQL Server Enrique Catala Bañuls Mentor SolidQ ecatala@solidq.com
  • 2. Enrique Catalá Bañuls  Ingeniero Informático  Mentor en SolidQ  Microsoft Technical Ranger  Colaborador destacado en MSDN Spain  Microsoft Active Professional 2010  Microsoft Certified Trainer  Microsoft Certified IT Professional  Database Developer 2008  Database Administrator 2008  Arquitecto de entre otros Health Check y SCODA  Motero y piloto de ULM 
  • 3. Agenda  Configuraciones avanzadas de SQL Server  NUMA  Threads vs fibers  IO Affinity Mask  Max Degree of parallelism  Configuracion de memoria  Tempdb  Configuraciones avanzadas de base de datos  Log transacciones  Date correlation optimization  Parametrization  Patrones para Developers  Reducción de idas y venidas mediante el uso de TVP  Las funciones en SQL Server, el desastre y su solución
  • 4. Agenda  Configuraciones avanzadas de SQL Server  NUMA  Threads vs fibers  IO Affinity Mask  Max Degree of parallelism  Tempdb
  • 5. NUMA  Non-Uniform Memory Access  Particionado hardware donde cada nodo a grandes rasgos tiene subconjunto de CPU, memoria  Interesa no salir del nodo  Cada nodo NUMA tiene su propio lazywritter y su puerto para finalización de E/S (el network listener)
  • 6. NUMA  SQL Server detecta automáticamente la configuración NUMA  Pensada para mejorar la escalabilidad de sistemas multiprocesador  Minimiza la latencia de acceso a memoria  No hay que modificar aplicaciones ni tocar nada  Podemos afinar: máscara de afinidad y Soft-NUMA
  • 7. NUMA: Soft-NUMA  Segmentamos afinidad de procesador (no memoria)  Cada nodo numa software contiene Lazywritter y proceso E/S  Diferencia obvia con NUMA hardware:  En Soft-NUMA seguiremos teniendo un único nodo de memoria  Solo provee afinidad a nivel de CPU ALTER SERVER CONFIGURATION SET PROCESS AFFINITY CPU = 2 TO 5  Si vemos esperas CXPACKET y LAZYWRITTER unidas, debemos configurarlo (escenario no NUMA)  Segmentación multi-instancia
  • 8. Thread vs fibers: Scheduler  En entornos computacionales hay que dar solución al problema de la multitarea (más procesos que CPU concurrentemente)  El scheduler o programador se encarga de agendar a cada proceso un tiempo finito de acceso a recursos de la máquina para ejecución  Su eficiencia depende de:  Nº de procesos simultaneos a agendar  Latencia (tiempo entre que se solicita petición y se sirve)  Prioridades e imparcialidad entre semejantes al asignar tiempo CPU  SQL Server tiene su propio scheduler  En windows los procesos poseen acceso exclusivo a recursos generalmente  El scheduler de SQL Server facilita la cooperación entre procesos  Mucho mas escalable en tareas de SQL Server pero mas complejo de diseñar
  • 9. Thread vs fibers: SQL Server Workers  El scheduler puede ser visto como una CPU lógica  Un worker está asociado a un scheduler y solo a uno  Haciendo una comparación, seria como los procesos en windows, pero que corren sobre el scheduler  Pueden ser thread o fiber (hilo o fibra)  El scheduler se encarga de crear y destruir workers  Se pueden explícitamente fijar mediante la máscara de afinidad a una CPU concreta  Se crean si el scheduler recibe petición de tarea a lanzar y no hay workers inactivos  Se destruyen despues de 15 minutos de inactividad o si hay presión de memoria  En un sistema x64 cada worker usa como mínimo 2Mb  Cada core (sea o no hyperthreading) posee 1 worker al arrancar (OFFLINE si se ha quitado de su máscara de afinidad)
  • 10. Thread vs fibers  Varias fibras pueden correr sobre un único hilo ya que son muy ligeras (aprox 10 fibras/thread)  «lightweight pooling option» a 1, activa uso de fibras  Optimización de escenarios (aumento 15% rendimiento):  Processor time: ~80%  Context switches: >20k/sec  ADVERTENCIA no son siempre la mejor opción:  No se soporta CLR heterogeneo con consultas, SQL Mail, SQLXML, …  En escenarios como linked servers hay sobrecarga porque se obliga a convertir la tarea a hilo
  • 11. IO Affinity Mask  Optimización escenarios con alto consumo de CPU por E/S  Cada operación E/S en SQL Server necesita finalización  Validación de bytes transferidos, no errores en SO, correcto nº de página, checksum válido,…  En definitiva, consumo de CPU  La mascara de afinidad de E/S sirve para direccionar las operaciones E/S a un scheduler oculto con un lazywriter que que solo hace operaciones E/S  Cuidado al configurar la mascara y la máscara de IO MAL BIEN
  • 12. NUMA y max degree of parallelism  Siempre hay que afinar, sobre todo en sistemas OLTP  Como norma general:  Nunca exceder en MAXDOP el nº de hilos físicos por nodo NUMA  Aproximadamente 6ms por petición y más de 200h computacionales wait type name wait time (ms) requests CXPACKET 786556034 128110444 LATCH_EX 255701441 155553913 ASYNC_NETWORK_IO 129888217 19083082 PAGEIOLATCH_SH 83672746 2813207 WRITELOG 70634742 48398646 SOS_SCHEDULER_YIELD 47697175 176871743
  • 13. NUMA y max degree of parallelism  Se carga tabla en buffer cache NUMA 0  Cell 0: ms nodo NUMA 0  Cell 1: ms nodo NUMA 1  Cell 2: ms nodo NUMA 2 www.solidq.com
  • 14. Configuracion de memoria  Habilitar “Lock Pages in memory” siempre  Se habilita mediante política a nivel de máquina para el usuario del servicio  Evita swapping de RAM a disco  Trace flag “mágico”   834 (Large Page Allocation)  Solo recomendable en Win 2008 R2 y SQL 2008 R2  Medias de 10% de mejora de rendimiento obtenidas  Tiene un gran pero…
  • 15. Tempdb  El “borrador” de SQL Server…no es solo donde van las #tablas   Precrear a un mínimo de 2xMemoria física  El nº de ficheros de datos debe ser exáctamente igual nº de hilos CPU  IMPORTANTE: Todos precreados al mismo tamaño…TODOS  Es buena idea separar tempdb de la lun de datos  Excepcionalmente, si es un entorno OLTP altamente transaccional, poner los datos y tempdb en la misma LUN para mejorar aleatoriedad (ojo hablamos de sistemas de almacenamientos con mucho spindle)
  • 16. Agenda  Configuraciones avanzadas de BBDD  Log de transacciones  Date correlation optimization  Parametrization
  • 17. Log de transacciones  Siempre almacenamiento dedicado exclusivo para el log de transaciones  Todo pasa por él  Es secuencial  No crees más de un fichero, no sirve de nada…  Interesa máximo rendimiento en escrituras  Cuidado con la fragmentación!  Precrearlo con tamaño suficiente para que nunca crezca y si lo hace, que lo haga a intervalos gordos.  Ultima salida…recrear el log, asique no dejes que esto te ocurra  Revisa usando “dbcc loginfo”
  • 18. Date Correlation Optimization  Configuración a nivel de base de datos  Optimizar equi-joins entre dos tablas con date o datetime correladas a las que aplicamos filtro  Muy util en escenarios típicos de reporting o datawarehousing ALTER DATABASE tu_Base_de_Datos SET DATE_CORRELATION_OPTIMIZATION ON;
  • 19. Date Correlation Optimization: Beneficios  SQL Server mantendrá estadísticas de correlación entre ambas tablas  El efecto será que interna y transparentemente se crearán vistas indexadas con la información necesaria  SQL Server gestionará todas las casuísticas  Añadirá nuevas estructuras cuando se cumplan  Deshabilitará cuando algo deje de cumplirse  Se encargará de ver si la consulta es mas eficiente usando la información extra calculada
  • 20. Date Correlation Optimization: Restricciones  Debe existir clave ajena de una columna entre las tablas  Ambas tablas deben tener columnas datetime NOT NULL  Al menos una de las columnas debe ser la clave principal de un índice clústered  Ambas tablas deben tener el mismo propietario PRECAUCIÓN: En tablas altamente modificadas puede existir detrimento de rendimiento por el mantenimiento interno que producen las estadísticas
  • 21. DEMO DATE CORRELATION OPTIMIZATION
  • 22. Parametrización: Mejorar escenarios ad-hoc (I)  Optimize for ad-hoc workloads  A nivel de instancia de SQL Server  Solo útil para consultas ad-hoc livianas  Almacena un pequeño código auxiliar en lugar del plan completo (300 bytes vs >15k)  Minimiza presión sobre el cache de planes de ejecución  Solo si se detecta reutilización, se recompila y almacena en cache
  • 23. Mejorar escenarios ad-hoc (II)  Force parametrization  A nivel de base de datos  Ocurre por cada statement. Cada batch puede tener múltiples statements autoparametrizados  Fuerza la parametrización de toda sentencia SELECT, UPDATE, INSERT y DELETE  En ciertos escenarios, mejora enormemente el rendimiento a base de reutilización de planes de ejecución  PRECAUCIÓN: Testear siempre el entorno antes de poner en producción. Puede que salgamos perdiendo…  Excepciones  Statements dentro de SP, funciones,…  Si ANSI_PADDING o ANSI_NULL = OFF  Statements que referencian variables  Statements en cursor
  • 24.  Antes % of memory used 0% Datos reales 0% 0% 0% Compiled Plan Proc 4% 10% 14% Compiled Plan Trigger Compiled Plan Adhoc Compiled Plan Prepared Extended Proc Proc uses number_ocurrencies cacheobjtype percentage_memory_KB Parse Tree UsrTab 1 6583 Compiled Plan 30,57 72% Parse Tree Check 1 6 Parse Tree 0,01 Parse Tree View 1 13123 Compiled Plan Stu 0,00 2 3525 Compiled Plan 8,04  Después 2 3 653 Parse Tree 2710 Compiled Plan 2,36 4,69 3 11 Parse Tree 2,85 3 1 Compiled Plan Stu 0,02 4 139 Parse Tree 0,43 4 2163 Compiled Plan 0,00 5 1998 Compiled Plan 1,98 5 41 Parse Tree 0,34 6 3578 Compiled Plan 2,03 6 333 Parse Tree 1,06 6 2 Extended Proc 0,00 7 2164 Compiled Plan 1,49 7 14 Parse Tree 0,04 8 1010 Compiled Plan 0,90 Más del 55% de la memoria de planes 8 9 118 Parse Tree 1113 Compiled Plan 0,36 0,81 de ejecución reutilizado menos de 10 9 8 Parse Tree 0,02 10 836 Compiled Plan 0,68 veces
  • 25. Agenda  Patrones para Developers  Reducción de idas y venidas mediante el uso de TVP  Las funciones en SQL Server, el desastre y su solución
  • 26. TVP (Parámetros de tabla)  Escenarios  Actualización en lotes del servidor  Parámetros en lote para usar en consultas  Pasar una tabla entre rutinas  Migración de otras bases de datos  Los datos almacenados son tabulares!  Criterio común  Gran cantidad de datos pasados desde el cliente al servidor  Aplicación de lógica de negocio antes de actualizar datos de forma persistente  Ej. Data mining, sistemas de inventariado, herramientas ETL
  • 27. TVP (Parámetros de tabla)  Empaquetado de lógica de negocio  Mejor modelo de programación  Procesamos transacciones en orden de llegada  Mejor manejabilidad (procedimiento almacenado lo puede hacer todo)  Rendimiento  Reducción de idas y vueltas al servidor  Operaciones basadas en conjuntos  Transporte de datos eficiente  Tipado Fuerte
  • 28. TVP (Parámetros de tabla) “Aprovecha las características TVP y MERGE en tus aplicaciones” http://msdn.microsoft.com/es-es/sqlserver
  • 29. Funciones en SQL Server  Podemos definir las funciones de usuario en:  Funciones inline  Funciones multi-statement  Tendamos a eliminar las funciones…¿pero todas?  Problema:  No son visibles en los planes de ejecución gráficos  Producen malísimas estimaciones estadísticas que derivan en inadecuados usos de NESTED LOOPS  El código se interpreta en cada llamada (si no se usa bien)  Por último y más importante: NO ES POSIBLE PARALELISMO
  • 30. DEMO FUNCIONES EN SQL SERVER. EL DESASTRE Y SU SOLUCIÓN
  • 31. Agenda  Configuraciones avanzadas de SQL Server  NUMA  Threads vs fibers  IO Affinity Mask  Max Degree of parallelism  Configuracion de memoria  Tempdb  Configuraciones avanzadas de base de datos  Log transacciones  Date correlation optimization  Parametrization  Patrones para Developers  Reducción de idas y venidas mediante el uso de TVP  Las funciones en SQL Server, el desastre y su solución
  • 32. ¿ PREGUNTAS ? ecatala@solidq.com http://blogs.solidq.com/ElRinconDelDBA/default.aspx