SQL Server 2005 - PowerPoint PPT Presentation

1 / 50
About This Presentation
Title:

SQL Server 2005

Description:

Fail-over Clustering (up to 8 node) Enhanced Multi-instance ... Full Data Flow Designer. Full DTS Control Flow Designer. Graphical Presentation of Pkg Execution ... – PowerPoint PPT presentation

Number of Views:147
Avg rating:3.0/5.0
Slides: 51
Provided by: downloadM
Category:
Tags: sql | dataflow | server

less

Transcript and Presenter's Notes

Title: SQL Server 2005


1
SQL Server 2005
David Carmona Development Advisor Microsoft
Ibérica davidcsa_at_microsoft.com www.gruposdeusuario
s.net
2
Agenda
  • QuĂ© hay de nuevo?
  • IntegraciĂłn con .NET
  • XML y SQL Server 2005
  • Service Broker
  • Mejoras en ADO.NET
  • Mejoras en T-SQL

3
  • QuĂ© hay de nuevo?

4
Qué hay de nuevo?
  • .NET Framework
  • Common Language Runtime Integration
  • User-defined Aggregates
  • User-defined Data Types
  • User-defined Functions
  • SQL Server .NET Data Provider
  • Extended Triggers
  • Data Types
  • FileStream Storage Attribute
  • Managed SQL Types
  • New XML Datatype
  • SQL Server Engine
  • New Message Service Broker
  • HTTP Support (Native HTTP)
  • Database Tuning Advisor
  • Enhanced Read ahead scan
  • Extended Indexes
  • Multiple Active Result Sets
  • Persisted Computed Columns
  • Database Maintenance
  • Backup and Restore Enhancements
  • Checksum Integrity Checks
  • Dedicated Administrator Connection
  • Dynamic AWE
  • Fast Recovery
  • Highly-available Upgrade
  • Online Index Operations
  • Online Restore
  • Parallel DBCC
  • Parallel Index Operations
  • Management Tools
  • MDX Query Editor
  • MDX Intellisense
  • T-SQL Intellisense
  • Version Control Support
  • XML/A
  • SQLCMD Command Line Tool
  • Performance Tuning
  • Replication
  • Auto-tuning Replication Agents
  • Oracle Publication
  • Improved Blob Change Tracking
  • OLAP and Data Mining
  • Analysis Management Objects
  • Windows Integrated Backup and Restore
  • Web Service/XML for Analysis
  • DTS and DM Integration
  • Eight new DM algorithms
  • Auto Packaging and Deployment
  • Data Transformation Services
  • New Architecture (DTR DTP)
  • Complex Control Flows
  • Control Flow Debugging
  • For Each Enumerations
  • Property Mappings
  • Full Data Flow Designer
  • Full DTS Control Flow Designer

5
Qué hay de nuevo?Contexto
Otros servicios
Otros servicios
XML
Servicios Web
Formularios Web
XML
Browsers estándar
LĂłgica aplicaciĂłn
Clientes inteligentes
Servicios SO
Servicios building blocks
XML
Dispositivos mĂłviles
6
Qué hay de nuevo?Contexto
Otros servicios
Otros servicios
XML
Servicios Web
Formularios Web
XML
Browsers estándar
LĂłgica aplicaciĂłn
Clientes inteligentes
Servicios SO
Servicios building blocks
XML
Dispositivos mĂłviles
7
  • IntegraciĂłn con .NET

8
IntegraciĂłn con .NETAlternativa a T-SQL
T-SQL
Lenguajes .NET
Funciones definidas por el usuario
Procedimientos almacenados
Triggers
Tipos definidos por el usuario
Aggregates
9
IntegraciĂłn con .NETCreaciĂłn
  • Registro de assemblies
  • Almacenados en la base de datos

CREATE ASSEMBLY NombreAssembly FROM
c\assembly.dll
  • Referencias
  • Se almacenan automáticamente
  • SĂłlo dependencias que no estĂ©n en la GAC

10
IntegraciĂłn con .NETCreaciĂłn (II)
  • DefiniciĂłn de
  • UDFs, procedimientos almacenados, triggers
  • Enlazando a funciĂłn estática y pĂşblica
  • UDTs, aggregates
  • Enlazando a clase

CREATE FUNCTION NombreFuncion () RETURNS int AS
EXTERNAL NAME NombreAssembly.clasefuncion
11
FunciĂłn de usuario
12
IntegraciĂłn con .NETAcceso a datos
  • Proveedor ADO.NET inprocess
  • Cadena de conexiĂłn
  • context connection true
  • Acceso al contexto con SqlContext
  • Pipe
  • Estado servidor
  • Tablas triggers
  • PeticiĂłn
  • Cursores de servidor
  • CreaciĂłn de metadatos en tiempo de ejecuciĂłn

13
Procedimiento almacenado
14
IntegraciĂłn con .NETCĂłmo funciona?
  • SQL Server hospeda al CLR
  • CĂłdigo .NET corriendo en el mismo proceso
  • Bueno, esto es fácil
  • Todos lo hemos visto desde VB6
  • y quĂ© pasa con?
  • Carga de assemblies
  • GestiĂłn de la memoria
  • Condiciones excepcionales
  • Hilos
  • Seguridad

15
IntegraciĂłn con .NETImplementaciĂłn
  • Dos interfaces en CLR
  • ICorRuntimeHost
  • ICLRRuntimeHost (nuevo)
  • ICLRRuntimeHost es más potente
  • GetHostManager devuelve array de punteros a
    funciĂłn
  • Permite interceptar casi todo
  • Carga de assemblies, locks, hilos, memoria,
    completion ports

16
IntegraciĂłn con .NETSeguridad
  • CAS deja de tener validez
  • Tres nuevos niveles gestionados por SQL
  • Safe
  • External
  • Unsafe
  • Validados al dar de alta el assembly
  • Ej. Referencias, type safe, mutable statics
  • Llamadas al BCL restringidas en runtime
  • Nuevo atributo HostProtectionAttribute

17
La prueba
18
  • XML y SQL Server 2005

19
XML y SQL Server 2005Nuevo tipo XML
  • Almacena documentos XML
  • ValidaciĂłn well-formed y XSD
  • Escenarios
  • InformaciĂłn compleja
  • Datos semiestructurados
  • GestiĂłn documental (ej. email)
  • Intercambio de documentos (B2B, B2C)
  • MensajerĂ­a (SOAP)

20
XML y SQL Server 2005Esquemas
  • Los campos XML pueden asociarse con esquemas

CREATE TABLE Invoices( id INT PRIMARY
KEY, factura XML(EsquemaFactura) ...
  • Esquemas almacenados en la base de datos

CREATE XML SCHEMA COLLECTION geocoll 'ltxsschema
... targetNamespaceurngeogt ... lt/xsschemagt'
21
XML y SQL Server 2005Acceso a campos XML
  • XQUERY
  • Standard W3C
  • Con extensiones para la actualizaciĂłn
  • Basado en XPath
  • Mucha mayor riqueza para bĂşsquedas complejas

for s in /doc_at_id 123//sec_at_num gt 3 return
lttopicgtdata(s/heading)lt/topicgt
22
XML y SQL Server 2005XQuery desde T-SQL
  • xml.query devuelve un tipo XML
  • xml.value devuelve un escalar
  • xml.exist devuelve un bool si hay resultado
  • xml.nodes devuelve una tabla con una columna
  • xml.modify modifica el XML

SELECT id, xDoc.query( 'for s in /doc_at_id
123//sec_at_num gt 3 return lttopicgtdata(s/headin
g)lt/topicgt') FROM docs
23
XML y SQL Server 2005T-SQL desde XQuery
  • sqlvariable
  • Acceso a variables T-SQL desde Xquery
  • sqlcolumn
  • Acceso a la columna a la que pertenece el XML

select CV.query( 'for elem in /CV/DatosPersonales
return ltNombregt sqlcolumn("Nombre")
lt/Nombregt ' ) from DatosPersonales
24
XML y SQL Server 2005Indices
  • Pueden definirse Ă­ndices en columnas XML
  • Aceleran las sentencias XQuery
  • Cuatro tipos
  • PRIMARY Indexa los nodos por path
  • /empleado_at_edad
  • PATH Indexa por (path, valor)
  • /empleado_at_edad 28
  • VALUE Indexa por (valor, path)
  • //direccion/ciudad Huelva
  • PROPERTY Indexa por (PK, path, valor)
  • SELECT xCol.value(/empleado_at_edad)

25
XML y SQL Server 2005
26
  • Service Broker

27
Service BrokerQué es?
  • Sistema de mensajerĂ­a asĂ­ncrona
  • Implementado 100 en SQL Server
  • Incluye
  • Nuevos objetos
  • Nuevas sentencias T-SQL
  • Usado internamente
  • Query Notifications
  • Event Notifications
  • Puede usarse por las aplicaciones

28
Service BrokerY con Ă©ste ya van 4
  • MSMQ
  • Necesita usar DTC para transaccionalidad con BD
  • No garantiza ordenamiento de mensajes
  • Complica las operaciones
  • No permite mensajes tipados en XML con XSD
  • Biztalk messaging
  • Incorpora orquestaciĂłn
  • Indigo messaging
  • Es interoperable

29
Service BrokerMensajes
  • Unidad de comunicaciĂłn
  • Tres tipos
  • Binarios
  • Cabecera
  • XML (tipados o sin tipar)

CREATE MESSAGE TYPE http//www.company.com/messag
es/Invoice VALIDATION VALID_XML WITH
SCHEMA COLLECTION invoice_xsd
30
Service BrokerContratos
  • Define los mensajes que se pueden intercambiar

CREATE CONTRACT //company.com/Expenses/ExpenseS
ubmission ( //company.com/Expenses/Submi
tExpense SENT BY INITIATOR,
//company.com/Expenses/ApprovedOrDenied
SENT BY TARGET, //company.com/Expenses/Expens
eReimbursed SENT BY ANY )
31
Service BrokerColas
  • Puntos de entrada a los servicios
  • Pueden leerse desde T-SQL
  • Pueden llamar a un procedimiento

CREATE QUEUE ExpenseQueueC WITH STATUS ON
ACTIVATION ( PROCEDURE_NAME
expense_activation, MAX_QUEUE_READERS 5,
EXECUTE_AS USER 'sa')
32
Service BrokerServicios
  • Funcionalidad expuesta en las colas
  • Compuesto por
  • Una cola
  • Varios contratos

CREATE SERVICE //develop.com/Expenses ON
ExpenseQueue (//develop.com/Expenses/ExpenseSu
bmission, //develop.com/Expenses/ExpenseProce
ssing)
33
Service BrokerEnvĂ­o de mensajes
  • 1.- CreaciĂłn del diálogo
  • Un diálogo ordena y correlaciona los mensajes
  • 2.- EnvĂ­o del mensaje
  • Mediante comando SEND

SET _at_ExpenseReport ltreportgtlt/reportgt BEGIN
DIALOG _at_dialog_handle FROM SERVICE
//Adventure-Works.com/Expenses/ExpenseClient TO
SERVICE '//Adventure-Works.com/Expenses' ON
CONTRACT //Adventure-Works.com/Expenses/ExpensePr
ocessing SEND ON CONVERSATION _at_dialog_handle
MESSAGE TYPE //Adventure-Works.com/Expenses/Su
bmitExpense (_at_ExpenseReport)
34
Service BrokerRecepciĂłn de mensajes
  • Comando RECEIVE
  • Especifica la cola y el diálogo
  • Es posible quedar a la espera con WAITFOR

WAITFOR ( RECEIVE FROM ExpenseQueue),
TIMEOUT 60000
35
  • Mejoras en ADO.NET
  • para SQL Server 2005

36
Mejoras en ADO.NETDependencias SQL
  • NotificaciĂłn cuando cambia un resultset
  • Ăštil para invalidar cachĂ© o vistas
  • Basado en Service Broker
  • SqlNotificationRequest
  • Recibe un objeto comando y un servicio
  • EnvĂ­a un mensaje al servicio cuando cambia el
    resultset
  • SqlDependency
  • Abstrae el Service Broker
  • Evento OnChanged

37
Notificaciones
38
Mejoras en ADO.NETMARS
  • MĂşltiples resultsets y transacciones simultáneas
    por conexiĂłn

SqlCommand cmd new SqlCommand("select from
authors",conn) SqlCommand cmd2 new
SqlCommand("select from jobs",conn) conn.Open()
SqlDataReader rdr cmd.ExecuteReader() SqlDat
aReader rdr2 cmd2.ExecuteReader() rdr2.Read()
rdr.Read()
39
Mejoras en ADO.NETTransacciones
  • System.Transactions
  • API manejada para definir transacciones
  • Sin COM!!!!!
  • Promotable
  • Comienza como local (10 ms)
  • Sigue local en accesos a SQL Server 2005
  • SĂłlo se promueve a DTC si
  • Se accede a SQL Server 2000, MSMQ, Oracle
  • Se acceden a dos SQL Server 2005

40
Mejoras en ADO.NETTransacciones (2)
using (TransactionScope ts new
TransactionScope()) SqlConnection conn1 new
SqlConnection( "server.integrated
securitysspidatabasepubs")) // Local tx si
SQL 2005, si no distribuida conn1.Open()
SqlCommand cmd1 new SqlCommand( "INSERT
jobs 'job1', 10, 10", conn1)
cmd1.ExecuteNonQuery() SqlConnection conn2
new SqlConnection( "serverotherintegrated
securitysspidatabasepubs")) // prmueve a
distribuida conn2.Open() SqlCommand cmd2
new SqlCommand( "INSERT jobs 'job2', 10,
10", conn2) cmd2.ExecuteNonQuery()
ts.Consistent true // commit transaction
41
Transacciones
42
  • Mejoras en T-SQL

43
Mejoras en T-SQLControl de excepciones
  • Se acabĂł el acceso a _at__at_ERROR
  • Bloques TRYCATCH
  • Anidables
  • Nuevas funciones disponibles en el CATCH
  • ERROR_NUMBER, ERROR_MESSAGE

BEGIN TRY SELECT FROM authors END TRY
BEGIN CATCH SELECT ERROR_NUMBER() END CATCH
44
Mejoras en T-SQLCommon Table Expressions
  • Resultset temporal
  • SĂłlo vive en la sentencia actual

WITH mid AS ( SELECT (MAX(ListPrice)
MIN(ListPrice))/2 as midval from
production.product ) SELECT FROM
Production.Product, mid WHERE ListPrice gt midval
  • Mejor que las subqueries si hay varias iguales
  • Permite recursiĂłn

45
Mejoras en T-SQLRanking
  • Añade una columna basada en ratings
  • ROW_NUMBER
  • RANK
  • DENSE_RANK
  • NTILE (n)
  • Pueden agruparse en particiones
  • PARTITION BY

46
Mejoras en T-SQLRanking (2)
SELECT orderid, customerid, ROW_NUMBER()
OVER(ORDER BY customerid) AS num, RANK()
OVER(ORDER BY customerid) AS rank,
DENSE_RANK() OVER(ORDER BY customerid) AS
denserank, NTILE(5) OVER(ORDER BY
customerid) AS ntile5 FROM orders
orderid customerid num rank denserank
tile5 ----------- ---------- ------ ------
--------- ------ 10308 ANATR 1 1
1 1 10365 ANTON 2 2
2 1 10355 AROUT 3 3
3 2 10383 AROUT 4 3
3 2 10278 BERGS 5 5
4 3 10280 BERGS 6 5
4 3 10384 BERGS 7 5
4 4 10265 BLONP 8 8
5 4 10297 BLONP 9 8
5 5 10360 BLONP 10 8
5 5
47
Mejoras en T-SQLOtras
  • Pivot
  • Convierte filas a columnas
  • OUTPUT
  • Permite especificar una salida a sentencias de
    actualizaciĂłn distinta al nĂşmero de filas
  • Ej. Registros borrados, identities, etc.
  • Tipos varchar, nvarchar, binary (max)
  • Aislamiento snapshot
  • Escritores no bloquean a lectores

48
Mejoras en T-SQLOtras (2)
  • APPLY
  • VersiĂłn de JOIN pensada para UDFs
  • Los parámetros pueden ser otras columnas

SELECT FROM invoice CROSS APPLY
greater(amount, 1500)
  • TOP
  • Permite expresiones
  • TambiĂ©n para actualizaciones

49
Snapshot
50
(No Transcript)
Write a Comment
User Comments (0)
About PowerShow.com