• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
SQL Server 2014 Mejoras del DB Engine
 

SQL Server 2014 Mejoras del DB Engine

on

  • 501 views

En esta presentación vemos las mejores de DB Engine en SQL Server 2014

En esta presentación vemos las mejores de DB Engine en SQL Server 2014

Saludos,

Ing. Eduardo Castro
Microsoft SQL Server MVP

Statistics

Views

Total Views
501
Views on SlideShare
501
Embed Views
0

Actions

Likes
0
Downloads
0
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    SQL Server 2014 Mejoras del DB Engine SQL Server 2014 Mejoras del DB Engine Presentation Transcript

    • Eduardo Castro Microsoft SQL Server MVP ecastro@simsasys.com PASS Regional Mentor @edocastro
    • Dandy Weyn . SQL Server 2014 – Features Drilldown MSD Library http://msdn.microsoft.com/en-us/library/bb500435(v=sql.120).aspx
    • XML ● KPIs SQL Server 2000 Management Studio ● Mirroring SQL Server 2005 SQL Server ● Compresión basada en directivas Mgmt ● Programación 2008 PowerPivot ● Integración de SharePoint ● Master Data Services SQL Server 2008 R2 SQL AlwaysOn ● Índice de columnas ● Servicios de datos de calidad ● ● Power View Nube Conectividad Server 2012 In-Memory A través de las cargas de trabajo ●Rendimiento y Escala ●Híbrido Nube Optimizado ●HDInsight ● Nube BI SQL Server 2014
    • In-Memory Incorporado Promedio de 10 veces más rápido para aplicaciones nuevas y existentes Seguro y escalable Más seguro utilizando Windows Server Alta Disponibilidad SLA con AlwaysOn Soporte a aplicación críticas Diseñado para ofrecer soluciones de misión crítica
    • • • • • • • 2014 2014 2012 2012 2014
    • Motor OLTP nuevo de alto rendimiento, optimizado para memoria integrado en SQL Server y diseñado para hardware moderno Beneficios para los clientes Baja latencia Hasta 10 veces de mejora en el rendimiento 2-5x mejora en la escalabilidad Toma ventaja de las inversiones en SQL Server
    • SQL Server engine In-Memory OLTP compiler Parser, catalog, optimizer Native compiled SPs & schema Alto rendimiento, procesamiento de transacciones en línea con memoria optimizada (OLTP) del motor integrado en SQL Server y architected para las tendencias modernas de hardware Proc/plan cache for ad-hoc, T-SQL; interpreter, plans, etc. In-Memory OLTP engine: Memoryoptimized tables & indexes Buffer pool for tables & indexes Lock Manager Memory-optimized table file group Transaction log Data file group 10
    • Beneficios En memoria OLTP Tech Pilares Drivers De alto rendimiento operaciones sobre datos Fácil escalabilidad Eficiente, procesamiento de lógica de negocio Motor híbrido e integrado Memoria principal optimizada Alto concurrencia T-SQL compilado a máquina coda Integración SQL Server • Optimizado para in-memory datos • Índices (Hash y rango) sólo existen en la memoria • No hay buffer piscina • Almacenamiento basada en secuencias para una mayor durabilidad • Control de concurrencia optimista multiversión con el soporte ACID completo • Motor Core utiliza algoritmos libres de bloqueo • No hay administrador de bloqueos, latches, o spinlocks • T-SQL compilado a código máquina a través del generador y el código C Visual C compilador • La invocación de un procedimiento es un DLL de punto de entrada • Optimizaciones agresivas en tiempo de compilación • Misma administración y experiencia de desarrollo • Consultas integradas y transacciones • HA Integrado y copia de seguridad / restauración Hardware trends La disminución constante del precio de la memoria NVRAM Procesadores con muchos núcleos Tasa de reloj de la CPU Negocios TCO
    • 101-millones filas y espacio utilizado por los índices 20.0 19.7 GB 15.0 10.0 10.9 GB 6.9 GB 5.0 5.0 GB 4.0 GB 1.8 GB 0.0 Table with customary indexing Table with customary indexing (page compression) Table with no indexing Table with no indexing (page compression) Table with columnstore index Clustered columnstore
    • Lo de nuevo? 42
    • Qué hay de nuevo? 44
    • Opciones de compresión de la tabla: DATA_COMPRESSION = {NINGUNO | ROW | PÁGINA | COLUMNSTORE |COLUMNSTORE_ARCHIVE 1. COLUMNSTORE Compresión • Se utiliza compresión por defecto al crear una tabla con índice columna • Cargas de trabajo típicas obtiene ratios de compresión 5-7x TPCH TPCDS Cliente 1 Cliente 2 3.1X 2.8X 3.9x 4,3 X ** Compresión se compara con archivo de datos brutos 2. Compresión para ARCHIVAL • Permite adicional 30% compresión para toda la tabla y / o particiones seleccionados. • Se puede cambiar entre columnstore and columnstore_archive compressions. • sys.partitions expone la información de compresión (3 – columnstore, 4 – columnstore_archive) 22
    • Mecanismo básico CREATE TABLE <table> ( … ) As usual CREATE CLUSTERED COLUMNSTORE INDEX <name> on <table> Converts entire table to Columnstore format BULK INSERT, SELECT INTO INSERT UPDATE DELETE 17
    • Carga tamaños 47
    • Create Table DDL CREATE TABLE [Customer]( [CustomerID] INT NOT NULL PRIMARY KEY NONCLUSTERED HASH WITH (BUCKET_COUNT = 1000000), [Name] NVARCHAR(250) NOT NULL Hash index INDEX [IName] HASH WITH (BUCKET_COUNT = 1000000), [CustomerSince] DATETIME NULL Secondary indexes are ) specified inline WITH (MEMORY_OPTIMIZED = ON, DURABILITY = SCHEMA_AND_DATA); Optimizada para memoria Tabla es persisitente
    • Create Procedimiento almacenado DDL CREATE PROCEDURE [dbo].[InsertOrder] @id INT, @date DATETIME WITH NATIVE_COMPILATION, SCHEMABINDING, EXECUTE AS OWNER AS BEGIN ATOMIC WITH (TRANSACTION ISOLATION LEVEL = SNAPSHOT, LANGUAGE = 'us_english') -- insert T-SQL here END Compilación nativa Native procs must be schema-bound Contexto de ejecución Bloques atómicos • Crear transacción si no existe • Sino crear un savepoint
    • Mito # 1 SQL Server en memoria OLTP es una respuesta reciente a ofertas de la competencia Realidad Proyecto "Hekaton" se inició hace alrededor de 4 años, en respuesta a las tendencias de negocios y hardware
    • Mito # 2 In-Memory OLTP es como DBCC PINTABLE Realidad En memoria OLTP es completamente nuevo diseño para optimizar las operaciones de datos eficientes en memoria. No hay pages o buffer pool para memory-optimized tables
    • Mito # 3 In-Memory bases de datos son nuevos productos separados Realidad In-Memory OLTP es una característica totalmente integrada en SQL Server 2014
    • Mito # 4 Usted puede utilizar In-Memory OLTP en una aplicación SQL Server existente, sin cambios de ningún tipo Realidad Hay por lo menos algunos cambios, como mínimo cambio algunos esquemas
    • Mito # 5 Dado que las tablas están en la memoria, los datos no son duraderos o de alta disponibilidad - Voy a perder después de caída del servidor Realidad In-Memory OLTP es totalmente duradero, e incluye varias características de HA, incluyendo AlwaysOn Los datos se conserva en el disco, y sobrevivirá caída del servidor
    • 80 70 60 50 40 30 20 10 0 69 53 55 53 43 28 16 0 5 2006 25 16 11 9 2 2007 34 29 8 2008 SQL Server 29 21 8 2009 Oracle 6 0 43 2010 MySQL 22 6 1 2011 DB2 4 12 20 18 0 2012 0 2013
    • T-SQL BACKUP / RESTORE BACKUP DATABASE <dbname> TO <device> = <path to device> WITH ENCRYPTION ( ALGORITHM = <Algorithm_name> , { SERVER CERTIFICATE = <Encryptor_Name> | SERVER ASYMMETRIC KEY = <Encryptor_Name> } ); No changes to RESTORE
    • T-SQL views backup_set_id name key_algorithm encryptor_thumbprint encryptor_type 3 Full Backup NULL NULL NULL 4 Full Backup aes_256 0x00B1BD62DAA0196 CERTIFICATE media_set_id is_password_protected is_compressed is_encrypted 3 0 1 0 4 0 1 1
    • • ¿Qué se está liberado • Tres nuevos permisos (CONNECT ANY DATABASE, IMPERSONATE ANY LOGIN, and SELECT ALL USER SECURABLES) • Principales beneficios • Una mayor separación de funciones • Capacidad de crear nuevas funciones para los administradores de bases de datos que no son sysadmin (superusuario) • Capacidad de crear nuevas funciones para los usuarios o aplicaciones con fines específicos Ejemplos: 1. Administradores de bases de datos, pero no pueden ver los datos de usuario 2. Administradores de bases de datos, pero no puede modificar los inicios de sesión 3. Administradores de bases de datos, pero no pueden suplantar a los inicios de sesión 4. Nuevos roles (Por ejemplo, los auditores) para leer todos los datos, pero no son administradores de bases de datos 5. Nuevas funciones para leer todos los metadatos para propósitos de monitoreo (Por ejemplo, SCOM) pero no puede ver los datos de usuario 6. Nuevas funciones para aplicaciones de nivel medio para impersonalizar a cualquier sesión excepto sa, sysadmin, or other high privilege logins
    • • ¿Qué se está entregado • Utilizar de unidades no volátiles (SSD) para extender buffer pool • NUMA-Aware manejo de páginas • Principal beneficios • BP extensión para SSDs • Mejorar el rendimiento de las consultas OLTP sin cambios en las aplicaciones • No hay riesgo de pérdida de datos (utilizando las páginas limpias solamente) • Fácil configuración optimizada para cargas de trabajo OLTP en los servidores communes (32 GB RAM)
    • • ¿Qué se está entregado • Reconstrucción en línea de índices para particiones individuales • Administración del Lock Priority para los table SWITCH y reconstrucción de índice en línea • Diagnóstico incorporado • Principales beneficios • El aumento de la concurrencia y la disponibilidad de las aplicaciones • Nueva granularidad a nivel de particiones para reconstrucción de índices en línea permite uso de recursos inferior (CPU / memoria) para los clientes que necesitan acceso ininterrumpido • Proporcionar a los clientes mayor control sobre el impacto de las transacciones en ejecución si se utiliza switch partition o comandos de reconstrucción de índice en línea
    • sys.fn_hadr_is_primary_replica (Transact-SQL)
    • Buffer Pool Manager Query Plan Optimizer Cmd Parser Query Executo r Results Relational Engine Command Data Query Tree TDS TDS Result Sets SNI Protocol Layer Plan Cache Transaction Log GetPage Access Methods D Data Cache Cached Pages Transaction Manager Data Files Write I/O Storage Engine Buffer Manager Buffer Pool Read I/O
    • IOPS offload usando Storage Class Memory (SCM)
    • - Ver Buffer Pool Detalles de la extensión para ver si está habilitado o no SELECT * FROM sys.dm_os_buffer_pool_extension_configuration GO - Monitor de Buffer Pool extensión de uso para ver si alguno de los datos o la página (s) índice están en Buffer Pool o no (última columna del resultado de la consulta) SELECT * FROM sys.dm_os_buffer_descriptors GO - Desactivar Buffer Pool extensión es muy fácil ALTER CONFIGURACIÓN DEL SERVIDOR SET BUFFER DE PISCINA DE EXTENSIÓN OFF GO
    • DMV XEvents
    • Metas del regulador de recursos
    • CREATE RESOURCE POOL pool_name [ WITH ( [ MIN_CPU_PERCENT = value ] [ [ , ] MAX_CPU_PERCENT = value ] [ [ , ] CAP_CPU_PERCENT = value ] [ [ , ] AFFINITY {SCHEDULER = AUTO | (Scheduler_range_spec) | NUMANODE = (NUMA_node_range_spec)} ] [ [ , ] MIN_MEMORY_PERCENT = value ] [ [ , ] MAX_MEMORY_PERCENT = value ] [ [ , ] MIN_IOPS_PER_VOLUME = value ] [ [ , ] MAX_IOPS_PER_VOLUME = value ]) ]
    • Escenario 1: Escenario 2 (basado en el escenario 1): Escenario 3 (basado en el escenario 2):
    • Supervisión del regulador de recursos
    • Opciones prioritarias bloqueo administrado Mata a todos los bloqueadores Cancelar las transacciones de usuario que bloquean Espere a que los bloqueadores terminen Inmediatamente o especificado esperar tiempo MAX_DURATION * Salir DDL después de esperar Cambie a la cola de la normalidad MAX_DURATION * =n minutos] Regular cerrar cola Esperar bloqueadores MAX_DURATION * Termina DDL (SWITCH / OIR) Cola de bloqueo de baja prioridad * Si no hay bloqueadores, otorga el bloqueo inmediato y la sentencia DDL se completar con éxito
    • Managed lock priority syntax Nuevo estatuto T-SQL DDL para ALTER TABLE y para ALTER INDEX <low_priority_lock_wait>::= { WAIT_AT_LOW_PRIORITY ( MAX_DURATION = <time>[MINUTES], ABORT_AFTER_WAIT = { NONE | SELF | BLOCKERS } ) } NONE - current behavior SELF - abort DDL BLOCKERS – abort user blockers Syntax ALTER TABLE stgtab SWITCH PARTITION 1 TO parttab PARTITION 1 WITH (WAIT_AT_LOW_PRIORITY MAX_DURATION= 60 minutes, ABORT_AFTER_WAIT=BLOCKERS)) ALTER INDEX clidx ON parttable REBUILD WITH ( ONLINE=ON WAIT_AT_LOW_PRIORITY (MAX_DURATION= 300, ABORT_AFTER_WAIT=SELF)) ) Examples
    • Diagnóstico Errorlog Diagnóstico de sesiones abortadas Deadlock diagnostics mediante el deadlock graph DMV extensions sys.dm_tran_locks “request_status” extensions LOW_PRIORITY_CONVERT, LOW_PRIORITY_WAIT, or ABORT_BLOCKERS sys.dm_os_wait_stats “wait_type” extensions …LOW_PRIORITY and ..ABORT_BLOCKERS Extended Events lock_request_priority_state process_killed_by_abort_blocke rs ddl_with_wait_at_low_priority
    • Syntax <single_partition_rebuild_index_option> ::= { …. | ONLINE = { ON [ ( <low_priority_lock_wait> ) ] | OFF } } <low_priority_lock_wait>::= { WAIT_AT_LOW_PRIORITY ( MAX_DURATION = <time>[MINUTES], ABORT_AFTER_WAIT = { NONE | SELF | BLOCKERS } ) } Syntax ALTER INDEX clidx ON part_table REBUILD PARTITION= 3 WITH ( ONLINE=ON (WAIT_AT_LOW_PRIORITY (MAX_DURATION= 300, ABORT_AFTER_WAIT=NONE)) ) Example