SlideShare una empresa de Scribd logo
1 de 35
Descargar para leer sin conexión
#SQSummit
TSQL
Menos Frecuente
Desde SQL Server 2005
Luis José Morán Cuenca
lmoran@solidq.com
Data Platform Architect
TSQL Menos Frecuente Desde SQL Server 2005
• Introducción
• Cross y Outer Apply
• Grouping Sets
• Funciones de Windowing
• Funciones de Ranking
• Funciones de Offset
• Funciones de Agregado
• Tablas Temporales de SQL Server 2016
CROSS / OUTER APPLY
• SQL Server 2000
• Funciones Escalares
• Lo bueno  permiten parametrización
• No son visibles en los planes de ejecución
• El código de la función se interpreta en cada llamada (cada fila)
• Por último y lo más importante de todo: NO ES POSIBLE EL PARALELISMO
De donde venimos….
CROSS / OUTER APPLY
• SQL Server 2000
• Lo bueno permiten trabajar con conjuntos
• Vistas
• El objetivo inicial de este objeto simplificación:
• Seguridad
• Complejidad del código
• Problemas:
• Anidamientos
• Falta de parametrización
• Si se quiere rendimiento vistas indexadas
De donde venimos….
CROSS / OUTER APPLY
• Ejemplo Real Vistas Anidadas
• 67% Escrituras
• 52% Lecturas
De donde venimos….
CROSS / OUTER APPLY
• SQL Server >=2005
• Funciones Tipo Tabla
• InLine
• Multiline
• Evolución natural de funciones escalares y vistas
• Ventajas:
• Parametrización
• Tratamiento a nivel de conjuntos
• Rendimiento
Donde llegamos….
CROSS / OUTER APPLY
• Cross / Outer Apply
• Elemento que necesitamos para hacer joins con funciones tabla
• También aplicable con selects en lugar de funciones
• Cross  Inner join
• Outer  Left join
Cross / Outer Apply
Demo
CROSS / OUTER
GROUPING SETS
• Cláusulas que permiten realizar múltiples agregaciones en una
única query con las columnas indicadas en la cláusula GROUP
BY
• Dos especializaciones
• CUBE
• ROLLUP
• Posee funciones auxiliares para identificar grupos
• Grouping_id
• Bitmap que produce un entero por cada agregación
• Grouping
• Devuelve el valor 1 si no se esta agregando por la columna indicada  NULL
¿Qué son los Grouping Sets?
Demo
Grouping Sets
GROUPING SETS
• ROLLUP(Categoría, Subcategoría, Producto) equivale a agregar
por:
• Categoría, Subcategoría, Producto
• Categoría, Subcategoría
• Categoría
• Todos
ROLLUP
GROUPING SETS
• CUBE(Categoría, Subcategoría, Producto) equivale a agregar
por:
• Categoría, Subcategoría, Producto
• Categoría, Subcategoría
• Categoría, Producto
• Subcategoría, Producto
• Categoría
• Subcategoría
• Producto
• Todos
CUBE
Demo
Grouping Sets
Funciones de Windowing
• Son funciones que trabajan con los resultados de una consulta
• Pueden ser:
• Ranking
• Offset
• Agregado
• Se apoyan en la clausula Over
• Pueden tener orden
• Se puede realizar particiones
• Se pueden utilizar frames
¿Qué son las Funciones de Windowing?
Funciones de Ranking
• Son funciones que nos permiten la clasificación de resultados
• Row_Number(), añade un entero único desde 1 al último registro del
conjunto
• Rank(), registros menores + 1
• Dense_Rank(), valores distintos y menores + 1
• Ntile(Nº Grupos), Realiza tantos grupos de registros como se indique
en el numero de grupos
• Nº de registro por grupo = Nº de Registros / Nº de grupos
• Si resto no es 0 el nº de registros del ultimo grupo = resto
¿Qué son las Funciones de Ranking?
Demo
Funciones Ranking
Funciones de Offset
• Son funciones que nos devuelven un valor para un offset dado
• LAG, devuelve un valor previo (scalar_expression [,offset] [,default])
OVER( [ partition_by_clause ] order_by_clause )
• El offset no puede ser negativo
• LEAF, devuelve un valor posterior (scalar_expression [,offset]
[,default]) OVER( [ partition_by_clause ] order_by_clause )
• El offset no puede ser negativo
• FIRST_VALUE, devuelve del primer valor ( [scalar_expression )
OVER ( [ partition_by_clause ] order_by_clause rows_range_clause )
• LAST_VALUE, devuelve del último valor ( [scalar_expression ) OVER ( [
partition_by_clause ] order_by_clause rows_range_clause )
¿Qué son las Funciones de Offset?
Demo
Funciones Offset
Funciones de Agregado
• Son funciones que realizan una operación sobre un agregado
• SUM(expression), suma los valores del rango OVER( [
partition_by_clause ] order_by_clause [Frame] )
• AVG(expression), media de los valores del rango OVER( [
partition_by_clause ] order_by_clause [Frame])
• MIN(expression), valor menor del rango OVER ( [ partition_by_clause ]
order_by_clause rows_range_clause [Frame])
• MAX(expression), valor mayor del rango OVER ( [ partition_by_clause
] order_by_clause rows_range_clause [Frame])
¿Qué son las Funciones de Agregado?
Funciones de Agregado
• Expresión que limita el rango de valores
• ROWS, trabaja con valores físicos cada registro es distinto
• RANGE, trabaja con valores lógicos, puede agrupar varios
• Son expresiones del ANSI SQL pero no todo está implementado
¿Qué son los Frames?
ROWSRANGE BETWEEN UNBOUNDED
PRECEDING |
<n> PRECEDING |
<n> FOLLOWING |
CURRENT ROW
AND
UNBOUNDED FOLLOWING |
<n> PRECEDING |
<n> FOLLOWING |
CURRENT ROW
RANGE BETWEEN INTERVAL '2' MONTH
PRECEDING AND CURRENT ROW
Funciones de Agregado
• Agregados Acumulativos
• Agregados Deslizantes en el Futuro
• Porcentajes
¿Para que sirven los Frames?
Demo
Funciones Agregado
Tablas Temporales SQL Server 2016
• Nuevo tipo de tabla para:
• Mantener historia completa de los cambios
• Permitir de una manera fácil su análisis en el tiempo
• La solución consta de:
• Cada registro tiene un rango temporal de validez
• El rango validez es gestionado por el sistema
• Consta de 2 columnas llamadas columnas de periodo de tipo datetime2
• Requiere PK
• No usa triggers
• Una tabla adicional con el mismo esquema para almacenar las
versiones antiguas
• A esta tabla se denomina tabla histórica
• Se la proporcionamos nosotros o la crea SQL Server
¿Qué son?
Tablas Temporales SQL Server 2016
• ¿Para que sirven?
• Auditar todos los cambios
• Reconstrucción del estado de los datos en cualquier momento del
pasado
• Calculo de tendencias en el tiempo
• Mantenimiento columnas Slowly Changing Dimension para BI
• Recuperar datos en caso errores por procesos
¿Qué son? / ¿Para qué sirven?
Tablas Temporales SQL Server 2016
• TSQL CREATE TABLE
• GENERATED ALWAYS AS ROW { START | END } [ HIDDEN ] [ NOT NULL ]
• HIDDEN  Aparecerán ocultos en la select
• No permiten nulos aunque en la clausula sea opcional si no se cita los pone no nulos
• Los campos de vigencia no pueden ser utilizados en (insert, update, merge, delete)
• SYSTEM_VERSIONING = ON [ (
HISTORY_TABLE = schema_name . history_table_name [,
DATA_CONSISTENCY_CHECK = { ON | OFF } ] ) ]
• La tabla principal y la historica no se pueden borrar sino se quita la
vinculación entre ellas
Creación
Tablas Temporales SQL Server 2016
• TSQL CREATE TABLE
• Los nombres, numero y tipos de columna son iguales en ambas tablas
• No se pasan a la tabla histórica:
• Estadísticas
• Checks
• Triggers
• Configuración Particionamiento
• Permisos
• Row-level security predicates
• No hay restricciones de tabla (Pk,Fk) o columna en la tabla historica pero se permite
valor por defecto para las columnas
• La tabla actual tiene PK y la historica NO, pero crea un índice cluster
• No hay columnas identities en la tabla histórica
• No se permiten trigger en la tabla histórica
• No se permiten FK’s en la tabla histórica
• La tabla histórica no puede estar en un filegroup de solo lectura
• La tabla histórica no puede estar configurada para CDC o CT
Creación
Tablas Temporales SQL Server 2016
• Por defecto las tablas histórica tienen compresión de página
• Las tablas actuales pueden tener tipos (MAX) pero puede
incrementar mucho el tamaño
• No estan permitidas operaciones ONLINE (reconstrucción de
índices)
• No se puede modificar/borrar los datos de la tabla histórica
• En la tabla actual no se permiten en los triggers:
• INSTEAD OF
• ON DELETE CASCADE/ON UPDATE CASCADE
Consideraciones ( I )
Tablas Temporales SQL Server 2016
• Compatibilidad
• AO Full
• Replicacion:
• Snapshot y Transaccional, debe montarse en el suscriptor y cuando le lleguen
cambios versionará esa información
• Merge, no soportada
• Indexación, MS aconseja:
• Indice cluster columnstore / B-tree en la tabla actual
• Indice cluster columnstore en tabla histórica
Consideraciones ( II )
Tablas Temporales SQL Server 2016
Creación
Tablas Temporales SQL Server 2016
• Se puede hacer en la tabla histórica o en la tabla principal
• Para la tabla principal se han añadido nuevas cláusulas TSQL
• FOR SYSTEM_TIME obligatoria para poder utilizar las siguientes
• AS OF <fx>  Start <= fx and End > fx
Consultando Cambios
Tablas Temporales SQL Server 2016
• FROM <fxini> TO <fxfin>  Start < fxfin AND End > fxini
Consultando Cambios
Tablas Temporales SQL Server 2016
• BETWEEN <fxini> AND <fxfin>  Start <= fxfin AND End >= fxini
• Como el caso anterior pero los límites están incorporados
Consultando Cambios
Tablas Temporales SQL Server 2016
• Contained IN (<fxini>,<fxfin>)  Start >= fxini AND End <= fxfin
Consultando Cambios
Tablas Temporales SQL Server 2016
• ALL
Consultando Cambios
También puedes preguntar tus dudas con el
hashtag #SQSummit en Twitter
ADAPTIVE BI FRAMEWORK
Te ayudaremos a mejorar la velocidad de desarrollo de tu plataforma de analítica de negocio basada
en nuestra experiencia:
•Diseña antes de construir
•Automatización de procesos por ETL
•Servicios de mentoring para ayudarte a conseguir mejores prácticas para la construcción de procesos específicos y
plataformas de analítica de negocio
•Muy fácil de mantener
SOLIDQ FLEX SERVICES
Con SolidQ Flex Services evitarás sustos, consiguiendo que tus sistemas sean estables. Desde una
solución sencilla de monitorización, hasta un servicio de atención de incidencias 24/7,
mantenimiento proactivo, resolución de problemas y línea de soporte.
Todo con un coste fijo mensual… y tú dedica el tiempo a las cosas importantes.

Más contenido relacionado

La actualidad más candente

In-Memory OLTP en SQL Server 2016
In-Memory OLTP en SQL Server 2016In-Memory OLTP en SQL Server 2016
In-Memory OLTP en SQL Server 2016Joseph Lopez
 
Es TEMPDB, por qué es tan importante?
Es TEMPDB, por qué es tan importante?Es TEMPDB, por qué es tan importante?
Es TEMPDB, por qué es tan importante?Javier Loria
 
SQL 2016 Mejoras en InMemory OLTP y Column Store Index
SQL 2016 Mejoras en InMemory OLTP y Column Store IndexSQL 2016 Mejoras en InMemory OLTP y Column Store Index
SQL 2016 Mejoras en InMemory OLTP y Column Store IndexEduardo Castro
 
MS SQL Server 2014 - In-Memory OLTP
MS SQL Server 2014 - In-Memory OLTPMS SQL Server 2014 - In-Memory OLTP
MS SQL Server 2014 - In-Memory OLTPJoseph Lopez
 
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
 
Consideraciones de memoria sql server hardware
Consideraciones de memoria sql server hardwareConsideraciones de memoria sql server hardware
Consideraciones de memoria sql server hardwareEduardo Castro
 
SQL Server 2014 Nuevas Capacidades
SQL Server 2014  Nuevas CapacidadesSQL Server 2014  Nuevas Capacidades
SQL Server 2014 Nuevas CapacidadesEduardo Castro
 
Novedades de SQL Server 2014 en motor relacional
Novedades de SQL Server 2014 en motor relacionalNovedades de SQL Server 2014 en motor relacional
Novedades de SQL Server 2014 en motor relacionalEnrique Catala Bañuls
 
Introducción al SQL Server 2016 Query Store
Introducción al SQL Server 2016 Query StoreIntroducción al SQL Server 2016 Query Store
Introducción al SQL Server 2016 Query StoreEduardo Castro
 
Toolbox SQL Server para optimización
Toolbox SQL Server para optimizaciónToolbox SQL Server para optimización
Toolbox SQL Server para optimizaciónSolidQ
 
Novedades SQL Azure v12
Novedades SQL Azure v12Novedades SQL Azure v12
Novedades SQL Azure v12SolidQ
 
Conociendo los cambios de SQL Server a partir de 2012 a 2016
Conociendo los cambios de SQL Server a partir de 2012 a 2016Conociendo los cambios de SQL Server a partir de 2012 a 2016
Conociendo los cambios de SQL Server a partir de 2012 a 2016Joseph Lopez
 
Aplicaciones escalables en la nube: mentiras y verdades
Aplicaciones escalables en la nube: mentiras y verdadesAplicaciones escalables en la nube: mentiras y verdades
Aplicaciones escalables en la nube: mentiras y verdadesEnrique 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 serverEnrique Catala Bañuls
 
Migración SQL Server
Migración SQL ServerMigración SQL Server
Migración SQL ServerAntonio Soto
 
Vistazo a lo nuevo en SQL Server 2016
Vistazo a lo nuevo en SQL Server 2016Vistazo a lo nuevo en SQL Server 2016
Vistazo a lo nuevo en SQL Server 2016Eduardo Castro
 
Conociendo Dynamic Data Masking en entornos de producción con SQL Server 2016...
Conociendo Dynamic Data Masking en entornos de producción con SQL Server 2016...Conociendo Dynamic Data Masking en entornos de producción con SQL Server 2016...
Conociendo Dynamic Data Masking en entornos de producción con SQL Server 2016...Joseph Lopez
 

La actualidad más candente (20)

Migración a sql server 2016
Migración a sql server 2016Migración a sql server 2016
Migración a sql server 2016
 
In-Memory OLTP en SQL Server 2016
In-Memory OLTP en SQL Server 2016In-Memory OLTP en SQL Server 2016
In-Memory OLTP en SQL Server 2016
 
Es TEMPDB, por qué es tan importante?
Es TEMPDB, por qué es tan importante?Es TEMPDB, por qué es tan importante?
Es TEMPDB, por qué es tan importante?
 
SQL 2016 Mejoras en InMemory OLTP y Column Store Index
SQL 2016 Mejoras en InMemory OLTP y Column Store IndexSQL 2016 Mejoras en InMemory OLTP y Column Store Index
SQL 2016 Mejoras en InMemory OLTP y Column Store Index
 
MS SQL Server 2014 - In-Memory OLTP
MS SQL Server 2014 - In-Memory OLTPMS SQL Server 2014 - In-Memory OLTP
MS SQL Server 2014 - In-Memory OLTP
 
Datawarehouse como servicio en azure (sqldw)
Datawarehouse como servicio en azure (sqldw)Datawarehouse como servicio en azure (sqldw)
Datawarehouse como servicio en azure (sqldw)
 
SQLCLR: .NET en el core de sql server
SQLCLR: .NET en el core de sql serverSQLCLR: .NET en el core de sql server
SQLCLR: .NET en el core de sql server
 
Consideraciones de memoria sql server hardware
Consideraciones de memoria sql server hardwareConsideraciones de memoria sql server hardware
Consideraciones de memoria sql server hardware
 
SQL Server 2014 Nuevas Capacidades
SQL Server 2014  Nuevas CapacidadesSQL Server 2014  Nuevas Capacidades
SQL Server 2014 Nuevas Capacidades
 
Novedades de SQL Server 2014 en motor relacional
Novedades de SQL Server 2014 en motor relacionalNovedades de SQL Server 2014 en motor relacional
Novedades de SQL Server 2014 en motor relacional
 
Introducción al SQL Server 2016 Query Store
Introducción al SQL Server 2016 Query StoreIntroducción al SQL Server 2016 Query Store
Introducción al SQL Server 2016 Query Store
 
Toolbox SQL Server para optimización
Toolbox SQL Server para optimizaciónToolbox SQL Server para optimización
Toolbox SQL Server para optimización
 
Novedades SQL Azure v12
Novedades SQL Azure v12Novedades SQL Azure v12
Novedades SQL Azure v12
 
Conociendo los cambios de SQL Server a partir de 2012 a 2016
Conociendo los cambios de SQL Server a partir de 2012 a 2016Conociendo los cambios de SQL Server a partir de 2012 a 2016
Conociendo los cambios de SQL Server a partir de 2012 a 2016
 
Aplicaciones escalables en la nube: mentiras y verdades
Aplicaciones escalables en la nube: mentiras y verdadesAplicaciones escalables en la nube: mentiras y verdades
Aplicaciones escalables en la nube: mentiras y verdades
 
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
 
Migración a sql server 2008
Migración a sql server 2008Migración a sql server 2008
Migración a sql server 2008
 
Migración SQL Server
Migración SQL ServerMigración SQL Server
Migración SQL Server
 
Vistazo a lo nuevo en SQL Server 2016
Vistazo a lo nuevo en SQL Server 2016Vistazo a lo nuevo en SQL Server 2016
Vistazo a lo nuevo en SQL Server 2016
 
Conociendo Dynamic Data Masking en entornos de producción con SQL Server 2016...
Conociendo Dynamic Data Masking en entornos de producción con SQL Server 2016...Conociendo Dynamic Data Masking en entornos de producción con SQL Server 2016...
Conociendo Dynamic Data Masking en entornos de producción con SQL Server 2016...
 

Similar a TSQL Menos Frecuente

Vistazo a SQL Server 2016
Vistazo a SQL Server 2016Vistazo a SQL Server 2016
Vistazo a SQL Server 2016Eduardo Castro
 
Dominando las funciones de ventana (window functions) en TSQL
Dominando las funciones de ventana (window functions) en TSQLDominando las funciones de ventana (window functions) en TSQL
Dominando las funciones de ventana (window functions) en TSQLSpanishPASSVC
 
Objetos de Esquema de Oracle Database Z052-09
Objetos de Esquema de Oracle Database Z052-09Objetos de Esquema de Oracle Database Z052-09
Objetos de Esquema de Oracle Database Z052-09Alexander Calderón
 
Novedades SQL Server 2012 para desarrolladores
Novedades SQL Server 2012 para desarrolladoresNovedades SQL Server 2012 para desarrolladores
Novedades SQL Server 2012 para desarrolladoresEnrique Catala Bañuls
 
Database fundamental itprosdc_chapter2
Database fundamental itprosdc_chapter2Database fundamental itprosdc_chapter2
Database fundamental itprosdc_chapter2Julián Castiblanco
 
Novedades sql server 2008 para developers
Novedades sql server 2008 para developersNovedades sql server 2008 para developers
Novedades sql server 2008 para developersEnrique Catala Bañuls
 
SQL Server 2016 Tablas en Memoria
SQL Server 2016 Tablas en MemoriaSQL Server 2016 Tablas en Memoria
SQL Server 2016 Tablas en MemoriaEduardo Castro
 
Sql tuning without trying arup nanda ls
Sql tuning without trying   arup nanda lsSql tuning without trying   arup nanda ls
Sql tuning without trying arup nanda lsCJava Peru
 
Abf leccion 18
Abf leccion 18Abf leccion 18
Abf leccion 18victdiazm
 
SQL 2016 Column Store Index
SQL 2016 Column Store IndexSQL 2016 Column Store Index
SQL 2016 Column Store IndexEduardo Castro
 
Sql Saturday Guatemala 2018-Mas rápido y Mas Furioso Windowing Functions & Co...
Sql Saturday Guatemala 2018-Mas rápido y Mas FuriosoWindowing Functions & Co...Sql Saturday Guatemala 2018-Mas rápido y Mas FuriosoWindowing Functions & Co...
Sql Saturday Guatemala 2018-Mas rápido y Mas Furioso Windowing Functions & Co...JOSE AHIAS LOPEZ PORTILLO
 
Datawarehouse como servicio en Azure (sqldw)
Datawarehouse como servicio en Azure (sqldw)Datawarehouse como servicio en Azure (sqldw)
Datawarehouse como servicio en Azure (sqldw)SolidQ
 
Indices Columnares en SQL Server 2014
Indices Columnares en SQL Server 2014Indices Columnares en SQL Server 2014
Indices Columnares en SQL Server 2014SpanishPASSVC
 

Similar a TSQL Menos Frecuente (20)

Vistazo a SQL Server 2016
Vistazo a SQL Server 2016Vistazo a SQL Server 2016
Vistazo a SQL Server 2016
 
Bases de Datos Masivas Corte I.pptx
Bases de Datos Masivas Corte I.pptxBases de Datos Masivas Corte I.pptx
Bases de Datos Masivas Corte I.pptx
 
Pres17BDII.ppt
Pres17BDII.pptPres17BDII.ppt
Pres17BDII.ppt
 
Dominando las funciones de ventana (window functions) en TSQL
Dominando las funciones de ventana (window functions) en TSQLDominando las funciones de ventana (window functions) en TSQL
Dominando las funciones de ventana (window functions) en TSQL
 
Objetos de Esquema de Oracle Database Z052-09
Objetos de Esquema de Oracle Database Z052-09Objetos de Esquema de Oracle Database Z052-09
Objetos de Esquema de Oracle Database Z052-09
 
Novedades SQL Server 2012 para desarrolladores
Novedades SQL Server 2012 para desarrolladoresNovedades SQL Server 2012 para desarrolladores
Novedades SQL Server 2012 para desarrolladores
 
Sentencias
SentenciasSentencias
Sentencias
 
Sesión 4
Sesión 4Sesión 4
Sesión 4
 
Optimiza tus queries desde abajo
Optimiza tus queries desde abajoOptimiza tus queries desde abajo
Optimiza tus queries desde abajo
 
Database fundamental itprosdc_chapter2
Database fundamental itprosdc_chapter2Database fundamental itprosdc_chapter2
Database fundamental itprosdc_chapter2
 
Novedades sql server 2008 para developers
Novedades sql server 2008 para developersNovedades sql server 2008 para developers
Novedades sql server 2008 para developers
 
SQL Server 2016 Tablas en Memoria
SQL Server 2016 Tablas en MemoriaSQL Server 2016 Tablas en Memoria
SQL Server 2016 Tablas en Memoria
 
Sql tuning without trying arup nanda ls
Sql tuning without trying   arup nanda lsSql tuning without trying   arup nanda ls
Sql tuning without trying arup nanda ls
 
Abf leccion 18
Abf leccion 18Abf leccion 18
Abf leccion 18
 
(25/02) Desarrollador@S Invita - Introducción y novedades de SQL Server 2008
(25/02) Desarrollador@S Invita - Introducción y novedades de SQL Server 2008(25/02) Desarrollador@S Invita - Introducción y novedades de SQL Server 2008
(25/02) Desarrollador@S Invita - Introducción y novedades de SQL Server 2008
 
sesion 01_sql basico.pdf
sesion 01_sql basico.pdfsesion 01_sql basico.pdf
sesion 01_sql basico.pdf
 
SQL 2016 Column Store Index
SQL 2016 Column Store IndexSQL 2016 Column Store Index
SQL 2016 Column Store Index
 
Sql Saturday Guatemala 2018-Mas rápido y Mas Furioso Windowing Functions & Co...
Sql Saturday Guatemala 2018-Mas rápido y Mas FuriosoWindowing Functions & Co...Sql Saturday Guatemala 2018-Mas rápido y Mas FuriosoWindowing Functions & Co...
Sql Saturday Guatemala 2018-Mas rápido y Mas Furioso Windowing Functions & Co...
 
Datawarehouse como servicio en Azure (sqldw)
Datawarehouse como servicio en Azure (sqldw)Datawarehouse como servicio en Azure (sqldw)
Datawarehouse como servicio en Azure (sqldw)
 
Indices Columnares en SQL Server 2014
Indices Columnares en SQL Server 2014Indices Columnares en SQL Server 2014
Indices Columnares en SQL Server 2014
 

Más de SolidQ

SolidQ Summit 2018 - Qué necesita saber un DBA de Integration Services
SolidQ Summit 2018 - Qué necesita saber un DBA de Integration ServicesSolidQ Summit 2018 - Qué necesita saber un DBA de Integration Services
SolidQ Summit 2018 - Qué necesita saber un DBA de Integration ServicesSolidQ
 
SolidQ Summit 2018 - Seguridad a nivel datos. RLS
SolidQ Summit 2018 - Seguridad a nivel datos. RLSSolidQ Summit 2018 - Seguridad a nivel datos. RLS
SolidQ Summit 2018 - Seguridad a nivel datos. RLSSolidQ
 
SolidQ Summit 2018 - Todo lo que un integrador de datos debería tener... y pa...
SolidQ Summit 2018 - Todo lo que un integrador de datos debería tener... y pa...SolidQ Summit 2018 - Todo lo que un integrador de datos debería tener... y pa...
SolidQ Summit 2018 - Todo lo que un integrador de datos debería tener... y pa...SolidQ
 
SolidQ Summit 2018 - ¿Dificultades gestionando relaciones muchos a muchos? De...
SolidQ Summit 2018 - ¿Dificultades gestionando relaciones muchos a muchos? De...SolidQ Summit 2018 - ¿Dificultades gestionando relaciones muchos a muchos? De...
SolidQ Summit 2018 - ¿Dificultades gestionando relaciones muchos a muchos? De...SolidQ
 
SolidQ Summit 2018 - Report Server: Nuevos mutantes
SolidQ Summit 2018 - Report Server: Nuevos mutantesSolidQ Summit 2018 - Report Server: Nuevos mutantes
SolidQ Summit 2018 - Report Server: Nuevos mutantesSolidQ
 
Cuando QueryStore no sirve, ¿qué opciones tenemos?
Cuando QueryStore no sirve, ¿qué opciones tenemos?Cuando QueryStore no sirve, ¿qué opciones tenemos?
Cuando QueryStore no sirve, ¿qué opciones tenemos?SolidQ
 
SQL Server 2017 en Linux
SQL Server 2017 en LinuxSQL Server 2017 en Linux
SQL Server 2017 en LinuxSolidQ
 
Columnstore en la vida real
Columnstore en la vida realColumnstore en la vida real
Columnstore en la vida realSolidQ
 
PowerApprízate
PowerApprízatePowerApprízate
PowerApprízateSolidQ
 
Jugando a ser rico: Machine Learning para predicción de stocks
Jugando a ser rico: Machine Learning para predicción de stocksJugando a ser rico: Machine Learning para predicción de stocks
Jugando a ser rico: Machine Learning para predicción de stocksSolidQ
 
Analizando tus Redes Sociales con Power BI
Analizando tus Redes Sociales con Power BIAnalizando tus Redes Sociales con Power BI
Analizando tus Redes Sociales con Power BISolidQ
 
Mantenimiento de SQL Server para Dummies
Mantenimiento de SQL Server para DummiesMantenimiento de SQL Server para Dummies
Mantenimiento de SQL Server para DummiesSolidQ
 
R en relacional
R en relacionalR en relacional
R en relacionalSolidQ
 
Cuando haces bot ya no hay stop!!
Cuando haces bot ya no hay stop!!Cuando haces bot ya no hay stop!!
Cuando haces bot ya no hay stop!!SolidQ
 
Arquitecturas lambda en Azure
Arquitecturas lambda en AzureArquitecturas lambda en Azure
Arquitecturas lambda en AzureSolidQ
 
Bot Framework: otra manera de acceder a tus datos - SolidQ Summit 2018
Bot Framework: otra manera de acceder a tus datos - SolidQ Summit 2018Bot Framework: otra manera de acceder a tus datos - SolidQ Summit 2018
Bot Framework: otra manera de acceder a tus datos - SolidQ Summit 2018SolidQ
 
BIE2E en Azure - SolidQ Summit 2018
BIE2E en Azure - SolidQ Summit 2018BIE2E en Azure - SolidQ Summit 2018
BIE2E en Azure - SolidQ Summit 2018SolidQ
 
¿Qué viene GDPR? Mi SQL está preparado- SolidQ Summit 2018
¿Qué viene GDPR? Mi SQL está preparado- SolidQ Summit 2018¿Qué viene GDPR? Mi SQL está preparado- SolidQ Summit 2018
¿Qué viene GDPR? Mi SQL está preparado- SolidQ Summit 2018SolidQ
 
Hilando fino en SSAS multidimensional - SolidQ Summit 2018
Hilando fino en SSAS multidimensional - SolidQ Summit 2018Hilando fino en SSAS multidimensional - SolidQ Summit 2018
Hilando fino en SSAS multidimensional - SolidQ Summit 2018SolidQ
 
Adaptive Query Processing: Mejoras en el motor de consulta de SQL Server 2017...
Adaptive Query Processing: Mejoras en el motor de consulta de SQL Server 2017...Adaptive Query Processing: Mejoras en el motor de consulta de SQL Server 2017...
Adaptive Query Processing: Mejoras en el motor de consulta de SQL Server 2017...SolidQ
 

Más de SolidQ (20)

SolidQ Summit 2018 - Qué necesita saber un DBA de Integration Services
SolidQ Summit 2018 - Qué necesita saber un DBA de Integration ServicesSolidQ Summit 2018 - Qué necesita saber un DBA de Integration Services
SolidQ Summit 2018 - Qué necesita saber un DBA de Integration Services
 
SolidQ Summit 2018 - Seguridad a nivel datos. RLS
SolidQ Summit 2018 - Seguridad a nivel datos. RLSSolidQ Summit 2018 - Seguridad a nivel datos. RLS
SolidQ Summit 2018 - Seguridad a nivel datos. RLS
 
SolidQ Summit 2018 - Todo lo que un integrador de datos debería tener... y pa...
SolidQ Summit 2018 - Todo lo que un integrador de datos debería tener... y pa...SolidQ Summit 2018 - Todo lo que un integrador de datos debería tener... y pa...
SolidQ Summit 2018 - Todo lo que un integrador de datos debería tener... y pa...
 
SolidQ Summit 2018 - ¿Dificultades gestionando relaciones muchos a muchos? De...
SolidQ Summit 2018 - ¿Dificultades gestionando relaciones muchos a muchos? De...SolidQ Summit 2018 - ¿Dificultades gestionando relaciones muchos a muchos? De...
SolidQ Summit 2018 - ¿Dificultades gestionando relaciones muchos a muchos? De...
 
SolidQ Summit 2018 - Report Server: Nuevos mutantes
SolidQ Summit 2018 - Report Server: Nuevos mutantesSolidQ Summit 2018 - Report Server: Nuevos mutantes
SolidQ Summit 2018 - Report Server: Nuevos mutantes
 
Cuando QueryStore no sirve, ¿qué opciones tenemos?
Cuando QueryStore no sirve, ¿qué opciones tenemos?Cuando QueryStore no sirve, ¿qué opciones tenemos?
Cuando QueryStore no sirve, ¿qué opciones tenemos?
 
SQL Server 2017 en Linux
SQL Server 2017 en LinuxSQL Server 2017 en Linux
SQL Server 2017 en Linux
 
Columnstore en la vida real
Columnstore en la vida realColumnstore en la vida real
Columnstore en la vida real
 
PowerApprízate
PowerApprízatePowerApprízate
PowerApprízate
 
Jugando a ser rico: Machine Learning para predicción de stocks
Jugando a ser rico: Machine Learning para predicción de stocksJugando a ser rico: Machine Learning para predicción de stocks
Jugando a ser rico: Machine Learning para predicción de stocks
 
Analizando tus Redes Sociales con Power BI
Analizando tus Redes Sociales con Power BIAnalizando tus Redes Sociales con Power BI
Analizando tus Redes Sociales con Power BI
 
Mantenimiento de SQL Server para Dummies
Mantenimiento de SQL Server para DummiesMantenimiento de SQL Server para Dummies
Mantenimiento de SQL Server para Dummies
 
R en relacional
R en relacionalR en relacional
R en relacional
 
Cuando haces bot ya no hay stop!!
Cuando haces bot ya no hay stop!!Cuando haces bot ya no hay stop!!
Cuando haces bot ya no hay stop!!
 
Arquitecturas lambda en Azure
Arquitecturas lambda en AzureArquitecturas lambda en Azure
Arquitecturas lambda en Azure
 
Bot Framework: otra manera de acceder a tus datos - SolidQ Summit 2018
Bot Framework: otra manera de acceder a tus datos - SolidQ Summit 2018Bot Framework: otra manera de acceder a tus datos - SolidQ Summit 2018
Bot Framework: otra manera de acceder a tus datos - SolidQ Summit 2018
 
BIE2E en Azure - SolidQ Summit 2018
BIE2E en Azure - SolidQ Summit 2018BIE2E en Azure - SolidQ Summit 2018
BIE2E en Azure - SolidQ Summit 2018
 
¿Qué viene GDPR? Mi SQL está preparado- SolidQ Summit 2018
¿Qué viene GDPR? Mi SQL está preparado- SolidQ Summit 2018¿Qué viene GDPR? Mi SQL está preparado- SolidQ Summit 2018
¿Qué viene GDPR? Mi SQL está preparado- SolidQ Summit 2018
 
Hilando fino en SSAS multidimensional - SolidQ Summit 2018
Hilando fino en SSAS multidimensional - SolidQ Summit 2018Hilando fino en SSAS multidimensional - SolidQ Summit 2018
Hilando fino en SSAS multidimensional - SolidQ Summit 2018
 
Adaptive Query Processing: Mejoras en el motor de consulta de SQL Server 2017...
Adaptive Query Processing: Mejoras en el motor de consulta de SQL Server 2017...Adaptive Query Processing: Mejoras en el motor de consulta de SQL Server 2017...
Adaptive Query Processing: Mejoras en el motor de consulta de SQL Server 2017...
 

Último

La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersIván López Martín
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofJuancarlosHuertasNio1
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...JaquelineJuarez15
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...AlanCedillo9
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 

Último (20)

La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sof
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 

TSQL Menos Frecuente

  • 1. #SQSummit TSQL Menos Frecuente Desde SQL Server 2005 Luis José Morán Cuenca lmoran@solidq.com Data Platform Architect
  • 2. TSQL Menos Frecuente Desde SQL Server 2005 • Introducción • Cross y Outer Apply • Grouping Sets • Funciones de Windowing • Funciones de Ranking • Funciones de Offset • Funciones de Agregado • Tablas Temporales de SQL Server 2016
  • 3. CROSS / OUTER APPLY • SQL Server 2000 • Funciones Escalares • Lo bueno  permiten parametrización • No son visibles en los planes de ejecución • El código de la función se interpreta en cada llamada (cada fila) • Por último y lo más importante de todo: NO ES POSIBLE EL PARALELISMO De donde venimos….
  • 4. CROSS / OUTER APPLY • SQL Server 2000 • Lo bueno permiten trabajar con conjuntos • Vistas • El objetivo inicial de este objeto simplificación: • Seguridad • Complejidad del código • Problemas: • Anidamientos • Falta de parametrización • Si se quiere rendimiento vistas indexadas De donde venimos….
  • 5. CROSS / OUTER APPLY • Ejemplo Real Vistas Anidadas • 67% Escrituras • 52% Lecturas De donde venimos….
  • 6. CROSS / OUTER APPLY • SQL Server >=2005 • Funciones Tipo Tabla • InLine • Multiline • Evolución natural de funciones escalares y vistas • Ventajas: • Parametrización • Tratamiento a nivel de conjuntos • Rendimiento Donde llegamos….
  • 7. CROSS / OUTER APPLY • Cross / Outer Apply • Elemento que necesitamos para hacer joins con funciones tabla • También aplicable con selects en lugar de funciones • Cross  Inner join • Outer  Left join Cross / Outer Apply
  • 9. GROUPING SETS • Cláusulas que permiten realizar múltiples agregaciones en una única query con las columnas indicadas en la cláusula GROUP BY • Dos especializaciones • CUBE • ROLLUP • Posee funciones auxiliares para identificar grupos • Grouping_id • Bitmap que produce un entero por cada agregación • Grouping • Devuelve el valor 1 si no se esta agregando por la columna indicada  NULL ¿Qué son los Grouping Sets?
  • 11. GROUPING SETS • ROLLUP(Categoría, Subcategoría, Producto) equivale a agregar por: • Categoría, Subcategoría, Producto • Categoría, Subcategoría • Categoría • Todos ROLLUP
  • 12. GROUPING SETS • CUBE(Categoría, Subcategoría, Producto) equivale a agregar por: • Categoría, Subcategoría, Producto • Categoría, Subcategoría • Categoría, Producto • Subcategoría, Producto • Categoría • Subcategoría • Producto • Todos CUBE
  • 14. Funciones de Windowing • Son funciones que trabajan con los resultados de una consulta • Pueden ser: • Ranking • Offset • Agregado • Se apoyan en la clausula Over • Pueden tener orden • Se puede realizar particiones • Se pueden utilizar frames ¿Qué son las Funciones de Windowing?
  • 15. Funciones de Ranking • Son funciones que nos permiten la clasificación de resultados • Row_Number(), añade un entero único desde 1 al último registro del conjunto • Rank(), registros menores + 1 • Dense_Rank(), valores distintos y menores + 1 • Ntile(Nº Grupos), Realiza tantos grupos de registros como se indique en el numero de grupos • Nº de registro por grupo = Nº de Registros / Nº de grupos • Si resto no es 0 el nº de registros del ultimo grupo = resto ¿Qué son las Funciones de Ranking?
  • 17. Funciones de Offset • Son funciones que nos devuelven un valor para un offset dado • LAG, devuelve un valor previo (scalar_expression [,offset] [,default]) OVER( [ partition_by_clause ] order_by_clause ) • El offset no puede ser negativo • LEAF, devuelve un valor posterior (scalar_expression [,offset] [,default]) OVER( [ partition_by_clause ] order_by_clause ) • El offset no puede ser negativo • FIRST_VALUE, devuelve del primer valor ( [scalar_expression ) OVER ( [ partition_by_clause ] order_by_clause rows_range_clause ) • LAST_VALUE, devuelve del último valor ( [scalar_expression ) OVER ( [ partition_by_clause ] order_by_clause rows_range_clause ) ¿Qué son las Funciones de Offset?
  • 19. Funciones de Agregado • Son funciones que realizan una operación sobre un agregado • SUM(expression), suma los valores del rango OVER( [ partition_by_clause ] order_by_clause [Frame] ) • AVG(expression), media de los valores del rango OVER( [ partition_by_clause ] order_by_clause [Frame]) • MIN(expression), valor menor del rango OVER ( [ partition_by_clause ] order_by_clause rows_range_clause [Frame]) • MAX(expression), valor mayor del rango OVER ( [ partition_by_clause ] order_by_clause rows_range_clause [Frame]) ¿Qué son las Funciones de Agregado?
  • 20. Funciones de Agregado • Expresión que limita el rango de valores • ROWS, trabaja con valores físicos cada registro es distinto • RANGE, trabaja con valores lógicos, puede agrupar varios • Son expresiones del ANSI SQL pero no todo está implementado ¿Qué son los Frames? ROWSRANGE BETWEEN UNBOUNDED PRECEDING | <n> PRECEDING | <n> FOLLOWING | CURRENT ROW AND UNBOUNDED FOLLOWING | <n> PRECEDING | <n> FOLLOWING | CURRENT ROW RANGE BETWEEN INTERVAL '2' MONTH PRECEDING AND CURRENT ROW
  • 21. Funciones de Agregado • Agregados Acumulativos • Agregados Deslizantes en el Futuro • Porcentajes ¿Para que sirven los Frames?
  • 23. Tablas Temporales SQL Server 2016 • Nuevo tipo de tabla para: • Mantener historia completa de los cambios • Permitir de una manera fácil su análisis en el tiempo • La solución consta de: • Cada registro tiene un rango temporal de validez • El rango validez es gestionado por el sistema • Consta de 2 columnas llamadas columnas de periodo de tipo datetime2 • Requiere PK • No usa triggers • Una tabla adicional con el mismo esquema para almacenar las versiones antiguas • A esta tabla se denomina tabla histórica • Se la proporcionamos nosotros o la crea SQL Server ¿Qué son?
  • 24. Tablas Temporales SQL Server 2016 • ¿Para que sirven? • Auditar todos los cambios • Reconstrucción del estado de los datos en cualquier momento del pasado • Calculo de tendencias en el tiempo • Mantenimiento columnas Slowly Changing Dimension para BI • Recuperar datos en caso errores por procesos ¿Qué son? / ¿Para qué sirven?
  • 25. Tablas Temporales SQL Server 2016 • TSQL CREATE TABLE • GENERATED ALWAYS AS ROW { START | END } [ HIDDEN ] [ NOT NULL ] • HIDDEN  Aparecerán ocultos en la select • No permiten nulos aunque en la clausula sea opcional si no se cita los pone no nulos • Los campos de vigencia no pueden ser utilizados en (insert, update, merge, delete) • SYSTEM_VERSIONING = ON [ ( HISTORY_TABLE = schema_name . history_table_name [, DATA_CONSISTENCY_CHECK = { ON | OFF } ] ) ] • La tabla principal y la historica no se pueden borrar sino se quita la vinculación entre ellas Creación
  • 26. Tablas Temporales SQL Server 2016 • TSQL CREATE TABLE • Los nombres, numero y tipos de columna son iguales en ambas tablas • No se pasan a la tabla histórica: • Estadísticas • Checks • Triggers • Configuración Particionamiento • Permisos • Row-level security predicates • No hay restricciones de tabla (Pk,Fk) o columna en la tabla historica pero se permite valor por defecto para las columnas • La tabla actual tiene PK y la historica NO, pero crea un índice cluster • No hay columnas identities en la tabla histórica • No se permiten trigger en la tabla histórica • No se permiten FK’s en la tabla histórica • La tabla histórica no puede estar en un filegroup de solo lectura • La tabla histórica no puede estar configurada para CDC o CT Creación
  • 27. Tablas Temporales SQL Server 2016 • Por defecto las tablas histórica tienen compresión de página • Las tablas actuales pueden tener tipos (MAX) pero puede incrementar mucho el tamaño • No estan permitidas operaciones ONLINE (reconstrucción de índices) • No se puede modificar/borrar los datos de la tabla histórica • En la tabla actual no se permiten en los triggers: • INSTEAD OF • ON DELETE CASCADE/ON UPDATE CASCADE Consideraciones ( I )
  • 28. Tablas Temporales SQL Server 2016 • Compatibilidad • AO Full • Replicacion: • Snapshot y Transaccional, debe montarse en el suscriptor y cuando le lleguen cambios versionará esa información • Merge, no soportada • Indexación, MS aconseja: • Indice cluster columnstore / B-tree en la tabla actual • Indice cluster columnstore en tabla histórica Consideraciones ( II )
  • 29. Tablas Temporales SQL Server 2016 Creación
  • 30. Tablas Temporales SQL Server 2016 • Se puede hacer en la tabla histórica o en la tabla principal • Para la tabla principal se han añadido nuevas cláusulas TSQL • FOR SYSTEM_TIME obligatoria para poder utilizar las siguientes • AS OF <fx>  Start <= fx and End > fx Consultando Cambios
  • 31. Tablas Temporales SQL Server 2016 • FROM <fxini> TO <fxfin>  Start < fxfin AND End > fxini Consultando Cambios
  • 32. Tablas Temporales SQL Server 2016 • BETWEEN <fxini> AND <fxfin>  Start <= fxfin AND End >= fxini • Como el caso anterior pero los límites están incorporados Consultando Cambios
  • 33. Tablas Temporales SQL Server 2016 • Contained IN (<fxini>,<fxfin>)  Start >= fxini AND End <= fxfin Consultando Cambios
  • 34. Tablas Temporales SQL Server 2016 • ALL Consultando Cambios
  • 35. También puedes preguntar tus dudas con el hashtag #SQSummit en Twitter ADAPTIVE BI FRAMEWORK Te ayudaremos a mejorar la velocidad de desarrollo de tu plataforma de analítica de negocio basada en nuestra experiencia: •Diseña antes de construir •Automatización de procesos por ETL •Servicios de mentoring para ayudarte a conseguir mejores prácticas para la construcción de procesos específicos y plataformas de analítica de negocio •Muy fácil de mantener SOLIDQ FLEX SERVICES Con SolidQ Flex Services evitarás sustos, consiguiendo que tus sistemas sean estables. Desde una solución sencilla de monitorización, hasta un servicio de atención de incidencias 24/7, mantenimiento proactivo, resolución de problemas y línea de soporte. Todo con un coste fijo mensual… y tú dedica el tiempo a las cosas importantes.