Buenas Practicas Ql

download Buenas Practicas Ql

of 21

Transcript of Buenas Practicas Ql

  • 8/16/2019 Buenas Practicas Ql

    1/21

     Alicante, Enero 2011

    Plataforma SaaS (software como servicio)

    BUENAS PRACTICAS SQL

  • 8/16/2019 Buenas Practicas Ql

    2/21

    2

    ínice

    1. Diseño de tablas

    2. Documentación de tablas y procedimientos

    3. Filtros y Joins en Queries

    1. Filtros de claes primarias

    2. !lo"ueos

    3. #onsultas $%A&'A!(E%)

    *. #ursores

    +. ablas temporales s. -ariables tipo tabla

    . raba/o con con/untos de datos y no reistro a reistro

    . ransacciones atómicas

  • 8/16/2019 Buenas Practicas Ql

    3/21

    3

    !ise"o e ta#las

    • #lae primaria autonumrico ndice clustered

    • #ampo obliatorio indicando códio de empresa 4company arc5ar 6+7

    #rear indice por este campo

    • De8aults DF9A!(A9#A:;9A!(A9#A:;

  • 8/16/2019 Buenas Practicas Ql

    4/21

    *

    ínice

    1. Diseño de tablas

    2. Documentación de tablas y procedimientos

    3. Filtros y Joins en Queries

    1. Filtros de claes primarias

    2. !lo"ueos

    3. #onsultas $%A&'A!(E%)

    *. #ursores

    +. ablas temporales s. -ariables tipo tabla

    . raba/o con con/untos de datos y no reistro a reistro

    . ransacciones atómicas

  • 8/16/2019 Buenas Practicas Ql

    5/21 +

    !oc$mentaci%n e ta#las & 'roceimientos

    • #A!E#E&A DE #?A(Q?=E& A!(A,;&

  • 8/16/2019 Buenas Practicas Ql

    6/21

    !oc$mentaci%n e ta#las & 'roceimientos

    • A!(A%

    E>E# sys.sp9addeHtendedproperty GnameB4I:%9DescriptionI,

    GalueB4I#ontains audit records o8 some application eentsI ,

    Gleel0typeB4I%#E:AI,Gleel0nameB4IdboI,

    Gleel1typeB4IA!(EI,Gleel1nameB4IA?D=

  • 8/16/2019 Buenas Practicas Ql

    7/21

    !oc$mentaci%n e ta#las & 'roceimientos

    • ;&

  • 8/16/2019 Buenas Practicas Ql

    8/21L

    ínice

    1. Diseño de tablas

    2. Documentación de tablas y procedimientos

    3. Filtros y Joins en Queries

    1. Filtros de claes primarias

    2. !lo"ueos

    3. #onsultas $%A&'A!(E%)

    *. #ursores

    +. ablas temporales s. -ariables tipo tabla

    . raba/o con con/untos de datos y no reistro a reistro

    . ransacciones atómicas

  • 8/16/2019 Buenas Practicas Ql

    9/21

    • (eibilidadC ?tiliMar =nner, outer, le8t

    • &educirC %iempre 8iltrar clae primaria (=@E K4E:;&E%AN SI C OP5ere n8actura lie session6$ncliente)7 R KN and 8ec5aOOO

    NCO P5ere n8acturaB)00012F#000L and n8actura lie session6$ncliente)7 RKN

    • !lo"ueosC able 5ints S= 64

  • 8/16/2019 Buenas Practicas Ql

    10/21

    10

    iltros & *oins en Q$eries

    • %arables 6%earc5 A&'ument Able7C ;ermiten cac5ear el plan de mantenimiento de la consulta.

    4o recompila códio :e/ora estadTsticas

    ?so Tndices e8ectio. 6indeH sees, not coerin indeHes7

  • 8/16/2019 Buenas Practicas Ql

    11/21

    11

    iltros & *oins en Q$eries

    • Funciones en Queries %e desaconse/a su uso 6%iempre "ue sea posible7

    %i un parXmetro es un campo ariable se in5abilita el uso de Tndices.

    E/emplosC

    NO: WHERE SUBSTRING(nombre,1,1) = ‘m’  SI : WHERE nombre like ‘m%’ 

    4

  • 8/16/2019 Buenas Practicas Ql

    12/21

    12

    ínice

    1. Diseño de tablas

    2. Documentación de tablas y procedimientos

    3. Filtros y Joins en Queries

    1. Filtros de claes primarias

    2. !lo"ueos

    3. #onsultas $%A&'A!(E%)

    *. #ursores

    +. ablas temporales s. -ariables tipo tabla

    . raba/o con con/untos de datos y no reistro a reistro

    . ransacciones atómicas

  • 8/16/2019 Buenas Practicas Ql

    13/21

    13

    C$rsores

    • :e/or cursor el "ue no se usa.• %

  • 8/16/2019 Buenas Practicas Ql

    14/21

    1*

    ínice

    1. Diseño de tablas

    2. Documentación de tablas y procedimientos

    3. Filtros y Joins en Queries

    1. Filtros de claes primarias

    2. !lo"ueos

    3. #onsultas $%A&'A!(E%)

    *. #ursores

    +. ablas temporales s. -ariables tipo tabla

    . raba/o con con/untos de datos y no reistro a reistro

    . ransacciones atómicas

  • 8/16/2019 Buenas Practicas Ql

    15/21

    1+

    Ta#las tem'orales vs- .aria#les ti'o ta#la

    • abla -ariable Declare Gtable as 6campo tipo..7

    -enta/as

    :Xs rXpidas con pocas 8ilas

    %e e/ecutan en memoria

    4o necesitamos eliminarlas

    Desenta/as 4o permite Tndices.

    4o utiliMar cuando incluyen mXs de +0 8ilas

    4o utiliMa planes de e/ecución cac5eados

  • 8/16/2019 Buenas Practicas Ql

    16/21

    1

    Ta#las tem'orales vs- .aria#les ti'o ta#la

    • abla temporal #reate table [table 6campo tipo,O7

    -enta/as ;ermite Tndices ;ermite istas %e borrar al 8inaliMar el bac5 de e/ecución %e pueden utiliMar en consultas dinXmicas

    Desenta/as Escritura en disco. 4o en memoria #ara de base de datos tempdb :as lentas "ue las ariables

  • 8/16/2019 Buenas Practicas Ql

    17/21

    1

    ínice

    1. Diseño de tablas

    2. Documentación de tablas y procedimientos

    3. Filtros y Joins en Queries

    1. Filtros de claes primarias

    2. !lo"ueos

    3. #onsultas $%A&'A!(E%)

    *. #ursores

    +. ablas temporales s. -ariables tipo tabla

    . raba/o con con/untos de datos y no reistro a reistro

    . ransacciones atómicas

  • 8/16/2019 Buenas Practicas Ql

    18/21

    1L

    Tra#a/o con con/$ntos e atos & no 'or re+istros

    • %Q( %erer es una 5erramienta DD!! orientada al uso decon/untos.

    • :enor consumo de recursos.

    • %i se deben realiMar arias inserciones combinar todas en un \nicoinsert por tabla. 6&educimos blo"ueos7

    • ?tiliMación optima de estadTsticas y planes de cac5.

  • 8/16/2019 Buenas Practicas Ql

    19/21

    1

    ínice

    1. Diseño de tablas

    2. Documentación de tablas y procedimientos

    3. Filtros y Joins en Queries

    1. Filtros de claes primarias

    2. !lo"ueos

    3. #onsultas $%A&'A!(E%)

    *. #ursores

    +. ablas temporales s. -ariables tipo tabla

    . raba/o con con/untos de datos y no reistro a reistro

    . ransacciones atómicas

  • 8/16/2019 Buenas Practicas Ql

    20/21

    20

    Transacciones at%micas

    • ?sar transacciones siempre

    • Eitan inconsistencia de datos en caso de error.

     Aseuran la inserción de todos los datos.• Eitan lecturas sucias 6datos incorrectos a mitad de la transacción

      !ein ry!ein tran

    =nserciones updates y deletes#ommit tran

    End try!ein catc5rollbac trandeolución de errores

    End catc5

  • 8/16/2019 Buenas Practicas Ql

    21/21

    21