Download - 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