Sie sind auf Seite 1von 93

Adaptive Server Enterprise 15

Jos-Miguel Torres Ingeniero de Soporte Senior - Preventas Tech1Group Divisin Sybase

Sybase Confidential Propriety.

Sybase Confidential

ASE 15 - Por qu?


ASE 15 es la nueva generacin del RDBMS manteniendo costos y riesgos operativos a un bajo nivel

Mejorado Distintivo

Escalamiento Rendimiento Encriptacin Seguridad , en general sin cambios en las aplicaciones Transacciones Inteligentes Las nuevas aplicaciones pueden combinar inteligencia del negocio (DSS) con operaciones OLTP Mensajera Abierta Obtencin de eventos en tiempo real y XML sin overhead El ms bajo TCO EL RDBMS ms eficiente es ahora ms auto - administrable

MEJORAS
ASE 15 es la nueva generacin del RDBMS manteniendo costos y riesgos operativos a un bajo nivel

Mejorado Distintivo

Escalamiento parejo para los ms altos niveles de datos Rendimiento : un 80% mejor Encriptacin Seguridad , en general sin cambios en las aplicaciones Transacciones Inteligentes Las nuevas aplicaciones pueden combinar inteligencia del negocio (DSS) con operaciones OLTP Mensajera Abierta Obtencin de eventos en tiempo real y XML sin overhead El ms bajo TCO El RDBMS ms eficiente es ahora ms auto -administrable

DE GIGABYTES A TERABYTES
Escalable : Sobre 1 exabyte* prctico y ms de 2 billones de dispositivos (devices) Nuevas Caractersticas de Escalabilidad:
Particiones semnticas Indices de funcin Columnas calculadas Grid-ready ** y mucho ms Para el DBA, la mantencin se ve simplificada con las nuevas caractersticas de escalabilidad.

* 1Exabyte = 1024Pb = 1024 x 1024Tb = 1024 x 1024 x 1024Gb * *Efectivo en 15.1

MEJOR RENDIMIENTO
Transaciones (OLTP) mejoradas entre 10% - 80% Transacciones de consulta mejoradas hasta un 500%. Nuevas Caractersticas de Rendimiento:
Particiones inteligentes Nuevo Optimizador de querys Columnas Calculadas Indices de funcin

QUE ES LO DISTINTIVO
ASE 15 es la nueva generacin del RDBMS manteniendo costos y riesgos operativos a un bajo nivel.
Escalamiento parejo para lo ms altos niveles de datos Rendimeinto : un 80% mejor Encriptacin Seguridad sin cambios en las aplicaciones Transaciones Inteligentes Las nuevas aplicaciones pueden combinar inteligencia del negocio (DSS) con operaciones OLTP Mensajera Abierta Obtencin de eventos en tiempo real y XML sin overhead El ms bajo TCO EL RDBMS ms eficiente es ahora ms auto - administrable

Mejorado Distintivo

ENCRIPTACION

Proteccin de los datos ms crticos histricos y actuales sin cambios en las aplicaciones. Nuevas Caractersticas de seguridad:
Encriptacin de columnas patente pendiente Encriptacin de SSL optimizada Mejor autentificacin LDAP El hurto de datos no sirve, incluso si discos o cintas estn involucrados

TRANSACCIONES INTELIGENTES

Si el negocio lo requiere, ASE 15 est preparado para trabajar en ambientes mixtos de querys complejos con transacciones OLTP. Nuevas Caractersticas en DSS:
Nuevo optimizador Columnas calculadas Indices de funcin

MENSAJERIA ABIERTA

Construccin de aplicaciones usando Transact-SQL: alertas instantneas , mensajera e integracin . Nuevas Caractersticas de Conectividad: Integracin en tiempo real con populares buses de mensajera XML de alto rendimiento Web services definidos por el usuario

Retailers y cadenas de abastecimiento

UN HECHO: EL MAS BAJO TCO


Reduccin del costo de propiedad Como ? - Menos hardware requerido - Nuevas Facilidades para el DBA
Actualizacin de estadsticas automatizadas Visor de query plan grfico Nuevos wizards para trabajos (JS) Mediciones de rendimiento avanzadas

ASE 15 - Agenda
Encriptacin Particionamiento Semntico Optimizacin XML Futuros de ASE

ENCRIPTACION - Definicin
Encriptacin o cifrado es el proceso de cambiar datos , a una forma en la cual puedan ser accesados slo por un receptor especfico. Para descifrar el mensaje, este ltimo debe tener una llave para desencriptar o descifrar.

ENCRIPTACION Algoritmos y Llaves


Simtrico
Misma llave usada para encriptacin / desencriptacin Las partes comunicadas deben compartir la llave Ejemplos : DES, 3DES, AES

Asimtrico Usa par de llaves Llave pbica compartida, llave privada se mantiene oculta Ejemplo : RSA Largo de llaves Llaves del algoritmo asimtrico son ms largas que el simtrico para capacidades equivalentes Ejemplo : Llaves 1024-bit RSA son equivalentes en capacidad a llaves simtricas de 80-bit

ENCRIPTACION IMPLEMENTACION EN ASE


Modo de Uso Extensiones a la Sintxis de T-SQL Herramientas y Utilitarios

IMPLMENTACION EN ASE Modo de uso


sp_configure enable encrypted columns,1 Crear llave de encriptacin Encryption Key (CEK)

Almacenada y encriptada en <nombreBD>..sysencryptkeys Usa Security Builder API para todas las funciones criptogrficas

Create/Alter table para especificar CEK para la(s) columna(s) Grant decryption a usuarios y/o roles Continua usando el mismo T-SQL
Todas las funciones de encriptacin/desencriptacin son transparentes al usuario Automticamente encripta / desencripta columnas En INSERT, UPDATE, SELECT En clusulas WHERE

ENCRIPTACION IMPLEMENTACION EN ASE


Modo de Uso Extensiones a la Sintxis de T- SQL Herramientas y Utilitarios

IMPLEMENTACION EN ASE Extensiones al T-SQL


CREATE / ALTER ENCRYPTION KEY (CEK)
create encryption key keyname [as default] for algorithm

[with {[keylength num_bits] num_bits


[init_vector [NULL | random]] [pad [NULL | random]]}
algoritmo usado por Sybase : AES con largo de llave de 128, 192 y 256 bits init_vector ( random pad ) entrega ms seguridad System Security Officer puede crear llaves

alter encryption key [db.[owner].]keyname [as [not]default]

IMPLEMENTACION EN ASE Extensiones al T-SQL


CREATE / ALTER TABLE
create table tablename

(colname1 datatype [default_clause | NULL] [encrypt] , - usa llave CEK default colname2 datatype [default_clause | NULL] [ encrypt [with [db.[owner].]keyname ]

keyname identifica la llave recin creada si keyname se omite se usa un default de la base de datos alter table [db.[owner].]table_name modify colname

[encrypt [with [db.[owner].]keyname ] | decrypt ]

Nota: Una tabla creada por el usuario(sso) con columnas con encriptacin requiere permiso SELECT

IMPLEMENTACION EN ASE Extensiones al T-SQL


GRANT/REVOKE
grant / revoke create encryption key Dado por el SSO grant / revoke select en la llave grant decrypt table(columa,columna ...) Debe ser entregado por el dueo de la tabla (usualmente sso)

IMPLEMENTACION EN ASE Extensiones al T- SQL


sp_encryption system_encr_passwd [, _password]

Asigna password default de sistema para encriptar CEKs ASE almacena passwords en forma encriptada
sp_encryption help [, keyname [, display_cols]]

Entrega informacin acerca de CEKs del propietario (owner) Ejecutado por el SSO, entrega informacin acerca de todas las llaves en la BD

ENCRIPTACION IMPLEMENTACION EN ASE


Modo de Uso Extensiones a la Sintxis de T- SQL Herramientas y Utilitarios

IMPLEMENTACION EN ASE Herramientas y Utilitarios


Sybase Central ASE Plug-in
Habilitada para soportar columnas encriptadas

DDLGen
Utilitario para generar DDL para esquemas de replicacin Habiltado para generar DDL para extensiones al T-SQL

BCP
Habilitado para exportar/importar datos encriptados

Replication Server
Replicacin / disaster recovery habilitado para replicar datos encriptados

ASE Auditing
Habilitado para soportar auditora de encriptacin relacionada con comandos DDL

DEMO I - ENCRIPTACION

ASE 15 - Agenda
Encriptacin Particionamiento Semntico Optimizacin XML Futuros de ASE

QUE ES PARTICIONAMIENTO ?
Estrategia para dividir grandes volumenes de datos
Trozos ms pequeos y manejables

Cada trozo de datos individual se conoce como particin Los datos en cada particin son procesados en forma independiente de las otras particiones Beneficio para el DBA
Grandes tareas se dividen en sub tareas Las tareas ms lentas se pueden ejecutar en paralelo Comandos de reorganizacin acotados en tiempo

PARTICIONES : Tablas Monolticas vs Particionadas


Partition

Large Table
Partition

La rg e

DSS Query
Update statistics

Partition

Update statistics
OL TP ap ps

Partition
OL TP ap ps

Data load

Partition

Tabla no particionada

Data load

Tabla Particionada

DSS

De le te

e rg La e et el D

PARTICIONES - ESTRATEGIAS
Particionamiento no semntico (pre 15.0)
Distribucin de datos tipo round - robin Slo distribucin aleatoria de datos entre particiones No ayuda al optimizador en querys dado que no existen semnticas asociadas con la distribucin de los datos

ASE 15

Particionamiento semntico Particionamiento de ndices

PARTICIONES - ESTRATEGIAS
Particionamiento Semntico
La fila pertenece a una particin especfica basado en el valor de sta , dada por las columnas elegidas para particionar Tres tipos : Range, Hash, List Range : Conjunto de datos distribuido de acuerdo a los rangos de valores de la columna Hash : Conjunto de datos distribuido de acuerdo a funciones de hashing en la(s) columna(s) List : Conjunto de datos dividido en listas de valores que son nicos a travs de todas las listas especificadas
Cada conjunto de listas puede incluir hasta 250 valores distintos

PARTICIONES - Uso
Estrategias de particionamiento y optimizacin Extensiones DDL: create table, alter table, create index, truncate table Cambios en las tablas de sistema

PARTICIONES - Uso

Habilitar particionamiento :
sp_configure enable semantic partitioning, 1

RANGE PARTITION
Create table customer ( c_custkey int, c_name varchar(20), c_address varchar(40) ) partition by range (c_custkey) (cust_ptn1 values <= (20000) on segment1, cust_ptn2 values <= (40000) on segment2, cust_ptn3 values <= (60000) on segment3 )
cust_ptn1: values <=20000 cust_ptn2: values <=40000 cust_ptn3: values <=60000

Segment 1

Segment 2

Segment 3

RANGE PARTITION: Cuando ?


Tpicamente tablas voluminosas son candidatas Por ejemplo:
Datos basados en tiempo (por hora ,diario,semanales, mensuales,etc.) Datos que estn ordenados

Permite archivamiento, truncacin de data obsoleta


Operaciones con ventanas deslizantes Datos histricos

Es posible agregar nuevos rangos al final del lmite mayor sin reorganizar el resto de la tabla

HASH PARTITION
Create table lineitem ( l_orderkey int , l_partkey int , l_suppkey int , l_linenumber int , l_quantity double , l_extendedprice double ) partition by hash (l_orderkey, l_linenumber) (litem_hash1 on segment1, litem_hash2 on segment2, litem_hash3 on segment3, litem_hash4 on segment4 ) not null not null not null not null not null not null

litem_hash1:

litem_hash2:

litem_hash3:

litem_hash4:

Segment 1

Segment 2

Segment 3

Segment 4

HASH PARTITION - Cuando ?


Tablas voluminosas, sin un ordenamiento particular de valores en cualquier columna que comunmente sea usada para ordenar y agrupar Hash partition proporciona load balancing entre las particiones Evita fragmentacin entre particiones La mayora de los tipos de datos pueden ser usados como hash key columns Fcil crear n particiones dado que no es necesario un rango o lista para cada particin

LIST PARTITION
Create table nation ( n_nationkey int not null , n_name char(25) not null , n_regionkey varchar(30) not null , n_comment varchar(152) not null ) on segment 1 Restriccin de datos a un partition by list (n_regionkey) lista de ( region1 values (Americas), valores equivale a CHECK constraint region2 values (Asia), sobre una columna region3 values (Europe), region4 values (Australia, Other) )
region1: region2: region3: region4:

Segment 1

LIST PARTITION Cuando ?


Poca a mediana cantidad de particiones con baja a mediana cardinalidad Datos tpicamente accesados usando igualdades(=)

PARTICIONES - Indices
Indices Globales El ndice abarca todas las particiones de datos en la tabla Indices Locales Cada particin tiene su propio ndice Varios sub-ndices, uno para cada particin de datos.

Indices Clustered siempre son locales en tablas con particionamiento range, hash, list.

PARTICIONES Indice Clustered Local


Ejemplo : Tabla Customer tiene esquema range-partitionsobre c_custkey create unique clustered index ci_nkey_ckey on customer(c_custkey, c_nationkey)
La estructura del ndice se reparte en todas las particiones y segmentos asociados

Segment 1

Segment 2

Segment 3

PARTICIONES Indice Nonclustered Global


create unique nonclustered index ci_nkey_ckey on customer(c_nationkey, c_custkey) on segment4

Leaf pages apuntan a pginas de datos a travs de las particiones

Segment 1

Segment 2

Segment 4

Esrtructura del ndice en su propio segmento

Segment 3

PARTICIONES Indice NonClustered Local


Create unique nonclustered index ci_nkey_ckey on customer(c_nationkey, c_custkey) on segment4 local index
Una estructura de ndice para cada particin, pero todas las estructuras de los ndices residen en el mismo segmento Segment 4 Segment 1 Segment 2 Segment 3

DEMO II - PARTICIONAMIENTO
Create table partition & create index

PARTICIONES - Optimizacin
Joins Dirigidos con datos particionados Eliminacin de particiones Indices locales en particiones Estadsticas especficas a cada particin

PARTICIONES - Joins Dirigidos


En Tablas particionadas similarmente Beneficios
Los volumenes de datos accesados por el join son ms pequeos Permite la ejecucin paralela de joins con mlltiples threads Reduce el costo de procesamiento para querys Mejor throughput para las aplicaciones

Joins Dirigidos - Ejemplo


Tabla orders con 3 particiones por rango similares a la tabla customer
create table orders ( ) partition by range (o_custkey) (order_ptn1 values <= order_ptn2 values <= order_ptn3 values <=

20000, 40000, 60000) )

Query: clientes con rdenes de compra en una fecha , fuera de Chile


select * from customer, orders where c_custkey = o_custkey and o_orderdate = Jan 1 1992 and c_nationkey != 24 -- No Chile

Joins Dirigidos - Ejemplo


cust_ptn1: values <=20000 cust_ptn2: values <=40000 cust_ptn3: values <=60000

Segment 1

Segment 2

Segment 3

Solo las particiones correspondientes son accesadas en el JOIN de ambas tablas

order_ptn1: values <=20000

order_ptn2: values <=40000

order_ptn3: values <=60000

Segment 4

Segment 5

Segment 6

PARTICIONES Descartes en el Query


Query: Clientes con rdenes en una fecha particular, fuera de Chile, con un rango:
select * from customer, orders where c_custkey = o_custkey and o_orderdate = Jan 1 1992 and c_nationkey != 24 -- No Chile and c_custkey >= 30000

Descarte de particiones cust_ptn1 de la tabla customers y order_ptn1 de la tabla orders

PARTICIONES Descartes en el Query


cust_ptn1: values <=20000 cust_ptn2: values <=40000 cust_ptn3: values <=60000

Segment 1

Segment 2

Segment 3

order_ptn1: values <=20000

order_ptn2: values <=40000

order_ptn3: values <=60000

Segment 4

Segment 5

Segment 6

PARTICIONES Indices Locales en Particiones


Eficiente acceso a los datos dado a que el tamao del ndice se reduce Covered scans en ndices locales junto con descarte de particiones, mejora tiempos de querys.

PARTICIONES Indices Locales y Rendimiento


Mayor concurrencia , dados mltiples puntos de acceso a ndices. Reduccin de contencin en root page del ndice
Query C Query B Query A Query B

Query A

Query C

Unpartitioned Index Unpartitioned Table

Partitioned Index Partitioned Table

Tamao del ndice ajustado ad-hoc al N de filas en cada particin

Pre-ASE15

Indice Particionado

Shorter traversal path

PARTICIONES Indices Locales y Disponibilidad


Con ndices locales, las operaciones en cada particin son independientes entre ellas

Online

Rebuilt/ Repair

Update statistics

PARTICIONES Estadsticas especficas


Estadsticas de la distribucin de datos seguida por particin Estadsticas pueden actualizarse en una particin mejorando el tiempo total de actualizacin de estas Ejecucin en forma peridica de actualizacin de estadsticas por particin

PARTICIONES - Optimizacin
Joins Dirigidos con datos particionados Eliminacin de particiones Indices locales en particiones Estadsticas especficas a cada particin

PARTICIONES - Uso
Estrategias de particionamiento y optimizacin Extensiones DDL: create table, alter table, create index, truncate table Cambios en las tablas de sistema

PARTICIONES Extensiones DDL Create table / index


create table [database.[owner ].]table_name(column_name datatype)... [ { partition by range (column_name[,column_name ]...)

( [ partition_name ] values <= ( { constant | MAX } [, { constant | MAX } ] ...) [ on segment_name ] [] | partition by hash (column_name[, column_name ]...) { ( partition_name [ on segment_name ] [, partition_name [ on segment_name ] ]...) | number_of_partitions [ on (segment_name[, segment_name ]...)]} | partition by list (column_name) { ( [ partition_name ] values (constant [, constant ])[ on segment_name ] [, [ partition_name ] values (constant [, constant ])[ on segment_name ] ]...)[on (segment_name[,segment_name ]...)]} | partition by roundrobin { ( partition_name [ on segment_name ] [, partition_name [ on segment_name ] ]...) | number_of_partitions [on( segment_name[,segment_name ]...)]}]

create [unique] [ clustered | nonclustered ] index index_name


on [ [ database .] owner .] table_name ( column_name [asc | desc] [, column_name [asc | desc]]...) . [ local index [ partition_name [on segment_name ] [,[ partition_name [ on segment_name ] ]... ] ]

PARTICIONES Extensiones DDL Alter Table


alter table [[database.][owner].table_name ... [ add partition ( [ partition_name ] values <= ( {constant | MAX } [, {constant | MAX } ]...) [ on segment_name ] [, [partition_name] values <= ( {constant | MAX } [, {constant | MAX } ] ...) [ on segment_name ] ]... ) ] [ { partition by range ( column_name[, column_name ]...) ( [ partition_name ] values <= ( { constant | MAX } [, { constant | MAX } ] ...) [ on segment_name ] [] | partition by hash | partition by list | partition by roundrobin }] | unpartition

PARTICIONES Tablas de sistema


SYSPARTITIONS renombrada a SYSSLICES Nueva SYSPARTITIONS Otras tablas con nuevas columnas relacionadas a particiones
SYSINDEXES SYSCOLUMNS SYSCOMMENTS SYSLOCKS SYSTABSTATS SYSSTATISTICS

DEMO III - PARTICIONES


Query join customer = orders, partition elimination, showplan

ASE 15 - Agenda
Encriptacin Particionamiento Semntico Optimizacin XML Futuros de ASE

OPTIMIZACION
Optimizador de Carga Mixta (mixed workload optimizer) Query Plans Columnas Calculadas Indices de Funcin

Optimizador de Carga Mixta Tres configuraciones


Nueva opcin : optimization goals goals
allrows_mix : default Balance entre OLTP y DSS allrows_oltp Para ambientes mayormente OLTP allrows_dss Para ambientes DSS puros con queries de complejidad mediana - alta

Ajustes y sintxis
Server sp_configure optimization goal,0,option_name goal option_name Sesin set plan optgoal option_name Query select * from <tablename> ...plan (use optgoal option_name) option_name

Optimizador de Carga Mixta Mejoras y Control


Paralelismo
Vertical : Bushy Joins (mltiples tablas) Horizontal : Optimizacin paralela para particionamiento

Algortimos de seleccin de ndices


SARGs con tipos de datos compatibles pero no iguales

Estimacin mejorada de costos ( skew ) Seleccin de query plan


Nuevas estrategias para multi-joins (DSS) con modelos snowflake y star. Mecanismos de timeouts para tiempo procesamiento de query en permutaciones de joins mltiples.

Optimizador de Carga Mixta Criterios de optimizacin


Habilitacin / Deshabilitacin selectiva de tcnicas
Joins Union / Union All Reformateo Distintct , Group By Paralelismo
Planes abstractos:
nl_join, append_union(), store_index(), group_hashing, etc..

Estrategias de Joins configurables ( sesin / server ) set hash_join on, set merge_join_off sp_configure enable sort-merge join and JTC,1

Optimizador de Carga Mixta Optimizacin y control en Joins


Pre ASE 15 : set table count
Adecuado para Joins pequeos No tan adecuado para mltiples Joins ( set table count >> 4)

ASE 15
Bushy Joins vertical, Parallel join - horizontal Nuevo timeout para la optimizacin del procesamiento de la query ( plan ptimo ) sp_configure optimization timeout limit,[value%] default = 5%

Query Plans Mtricas


Pre 15 : set statistics [io,time] on
Limitada a la sesin

Mtricas para Query Plans ASE 15


cpu execution time , elapsed time , logical I/O, physical I/O count : # de veces que el query se ejecut

Sintxis
Server - sp_configure enable metrics capture,1 Sesin - set metrics_capture [on,off]

Acceso a Mtricas
Visualizacin en la vista sysquerymetrics en BD..queryplans

OPTIMIZACION Columnas Calculadas ( CPC )


Columnas definidas como expresiones
Create table inventory ( part_id int, price money, quantity int, stock_date as getdate() age as datediff(dd,stock_date, getdate()) )

CPC Virtual CPC Materializada

Columnas Calculadas ( CPC )


Expresiones en CPC
La expresin puede ser cualquier expresin T-SQL excepto Variables locales, sub-queries La expresin puede ser determinstica o no-determinstica Expresiones Determinsticas
siempre retorna el mismo resultado para un conjunto de entrada determinado Ejemplo : col1 + 10

Expresiones No-Determinsticas
Pueden entregar resultados variables para un conjutno de entrada determinado Ejemplo : getdate()

Columnas Calculadas CPC Virtuales(VCPC)

Su valor no se almacena en la fila. Slo es evaluada cuando est siendo accesada Menos espacio en disco; Menos overhead en INSERT/UPDATE; Adecuadas para obtener valores variantes de tiempo va expresiones no-determinsticas Ejemplo:
create table inventory (part_id int, price money, quantity int, stock_date as getdate() age as datediff(dd,stock_date, getdate()) )

select * from inventory where age > 100

COLUMNAS CALCULADAS
CPC Materializadas (MCPC)

Evaluadas al instante de INSERT/UPDATE Valores se almacenan en la fila No se re-evalua cuando est siendo accesada Rendimiento de acceso rpido justifica un poco de overhead de almacenamiento Ejemplo
create table inventory ( part_id int, price money, quantity int, stock_date as getdate() materialized , age as datediff(dd,stock_date, getdate()) )

select * from inventory where stock_date = 01/01/2005

Alter table soporta DDL de CPCs

OPTMIZACION Indices Basados en Funcin (FI)


Caracterstica independiente pero ofrece similar funcionalidad a la de tener un ndice sobre una CPC Create index directamente en expresiones Las expresiones deben ser determinsticas La llave del FI (expresin) no es re-evaluada cuando se ejecuta una query Ejemplo:
Create table inventory (part_id int, price money, quantity int, stock_date as getdate() materialized, age as datediff(dd,stock_date, getdate()) ) create index fi_total_cost_inventory on inventory( price * quantity ) select * from inventory where price * quantity > 1000

OPTIMIZACION Beneficios de CPCs y FIs


Beneficios de las CPCs
Facilita el desarrollo de aplicaciones y la eficiencia en la mantencin Rendimiento Flexiblidad

Beneficios FIs
Rendimiento Fcil de usar y adecuado para las aplicaciones existentes

DEMO IV - OPTIMIZACION
SARGs, FI & DBISQL

ASE 15 - Agenda
Encriptacin Optimizacin Particionamiento Semntico XML Futuros de ASE

XML EN ASE 15
ALMACENAMIENTO

Almacenar y Recuperar XML bien formado o vlido tal como es


INDICES

Solucin en ASE ALMACENAR INDICES

Indices XML rpidos para querys de alto rendimiento


QUERY

Soporte a XPATH y SQLX Resultados Retorna documentos, fragmentos de documentos (elementos)


GENERACION

INTEGRACION

XML EN ASE

QUERY

Fcil transformacin SQL XML Generacin jerrquica de resultados XML


SHRED (MAPEO)

SHRED

GENERACION

Beneficios

Mapping XML SQL para llevar XML a datos relacionales


INTEGRACION

Elimina la necesidad de engines XML customizados Elimina repositorios XML externos ; Reduce costo de desarrollo Alto rendimiento

Exponer ASE como Web Services e integrar datos desde Web Services externos Integrar datos desde buses de mensajera

SINTAXIS XML EN ASE : EN RESUMEN


ALMACENAR INDICES VALIDAR QUERY SHRED
como cualquier sentencia insert xmlparse() function xmlvalidate() function xmlextract() function y operador xmltest xmlextract() function con clusulas returns y text() Java based mapping: forsqlscriptj for xml agregada al T-SQL query Mapping para Java: forxmlj, forxmlschemaj, forxmldtdj and forxmlallj ForXmlTree

GENERACION

FOR XML
for xml mapea un resultado SQL a un documento SQLX
select 11 as a, 12 as b union select 21, 22 for xml

El documento SQLX-XML resultante para este query es :

<resultset> <row> <a>11</a> <b>12</b> </row> <row> <a>21</a> <b>22</b> </row> </resultset>

ROOT TAG

ROW TAG

COLUMN TAG COLUMN VALUE

FOR XML ASE 15 - Mejoras


Resultados de FOR XML pueden ser almacenados en un variable o tabla FOR XML puede ser usado en SQL sub queries Generacin del XML Schema DTD para el documento XML generado
create table docs_xml(id integer, doc_xml text) insert into docs_xml select 1, update docs_xml where id = 1 (select * from systypes for xml)

set doc_xml = (select * from sysobjects for xml)

FOR XML SUBQUERY

EJEMPLO 1:
1> declare @doc varchar(16383) 2> set @doc = (select * from systypes for xml returns varchar(16383))

EJEMPLO 2:
1> select xmlextract(//row[usertype=18], (select * from systypes for xml))

FOR XML SCHEMA


Retorna xml schema describiendo el result set

1> select pub_id, pub_name from pubs2.dbo.publishers for xml schema 2> go
-----------------------------------------------------------------------------------------------------------------<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:complexType name="RowType.resultset"> <xsd:sequence> <xsd:element name="pub_id" type="CHAR_4"/> <xsd:element name="pub_name" type="VARCHAR_40" minOccurs="0" maxOccurs="1"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="TableType.resultset">

<xsd:element name="resultset" type="TableType.resultset"/> </xsd:schema> (1 row affected)

FOR XML ALL


Una sentencia SQL con FOR XML ALL, produce un schema, DTD, y los datos como un resultado.

1> select pub_id, pub_name from pubs2.dbo.publishers for xml all 2> go
---------<multiple results> <multiple-results-item type=result-set> <multiple-results-item-dtd> <!DOCTYPE resultset[ ]> </multiple-results-item-dtd> <multiple-results-item-schema> </multiple-results-item-schema> <multiple-results-item-data> </multiple-results-item-data>

DEMO V - XML

ASE 15 EN RESUMEN

Higher Availability

Easier Manageability

High Performance

Operational DSS App

Mixed Workload
Complex Data

OLTP APP

Row Locked System Tables

Intelligent Query Processing Parallel Processing


Data Partition Data Partition Index Partition Data Partition

Partition Aware Clustering

ASE 15 - Agenda
Encriptacin Particionamiento Semntico Optimizacin XML Futuros de ASE

ASE: Roadmap

12.5.2*

ASE 12.5.3 12.5.3.a


RTDS MQ

ASE 12.5.4
Encrypted columns RTDS MQ

beta 1

beta 2

ASE 15.0
Enhanced Encryption Partitions New optimizer Functional columns/indexes

15.1

Q304

Q404

Q105

Q205

Q405

Clusters 2006

SYBASE FUTUROS EN LA ADMINISTRACION DE DATOS

Transaction Processing
Managing Terabytes Capture/Store
Partitions

Operational Intelligence Partition

Managing Petabytes
Offline Import and Export with indexing Partition Aware Clusters

Aware Managing Terabyte Clusters


Compression LOB Support Any Schema Self Managed Views

Managing Petabytes
Extended LOBs Sizing predictors OLAP Cubes Performance predictors Context Search Faster Loads Fine grained archival and restore

Query/Access/ Search

Pipelined Parallelism Logical Process Management Unlimited Striping Offline maintenance Backup compression

Maintenance & Administration

Archive as virtual database Offline maintenance

Real-time Transactional

Incluido en el producto actualmente Incluido en el roadmap

Activo-Activo Configuracin Simtrica ASE 12.5.x

ASE #1

ASE #2

Two node failover cluster with two database stores

HA System
SAN ASE #1 Quorum ASE #2

Both ASE servers are active servicing disjoint applications Both ASE servers are companions of each other for availability

Disk Storage

Shared Disk Clusters - ASE 15.1

All servers provide service to single database store S1 S2 S3 S4 Applications run on multiple nodes with shared data Connections are directed to least loaded servers Private Interconnect SAN

Shared Disk Storage


Quorum

Cluster DB

ASE 15.1 - Cluster Virtual Particionamiento de Aplicaciones

Finance Application

Sales Application Client connections are transparently redirected to a logical cluster

S1 Finance Logical Finance Cluster Cluster

S2

S3 Sales Sales Logical Cluster Cluster

S4

Cluster-aware application partitioning improves scalability Easy to implement Service Level Agreement

Private Interconnect SAN

Shared Disk Storage


Quorum Finance DB Shared

Cluster DB

Sales DB

PARTNERS MUNDIALES

ASE 15 - GRACIAS !

?
Encuestas !

Das könnte Ihnen auch gefallen