SlideShare ist ein Scribd-Unternehmen logo
1 von 38
Mejores Prácticas de SQL Server. Gonzalo Sayago
Agenda ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
SQL ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
¿Qué es índice? ,[object Object]
Indices + Indices Branch Select Id, Name From Branch Where Id = @Id and Name = @Name Name+Id Select Id, Name From Branch Where Id = @Id and Name like @Name% Id+Name Select Id, Name From Branch Where Name = @Name Name Select Id, Name From Branch Where Id = @Id Id Consulta Indice
Indice (Arbol B+) ,[object Object],Seek >=2 http:// www.seanster.com/BplusTree/BplusTree.html Clustered Index
Bookmark Lookup ,[object Object]
Bookmark Lookup ,[object Object],http:// www.seanster.com/BplusTree/BplusTree.html Area
TIP Select Name From Branch Where (Id < 2) Or (Id > 2) Select Name From Branch Where (Id <> 2) Index Scan Index Seek
Cluster y Non Cluster Index ,[object Object],[object Object],[object Object]
¿Cuándo crear un índice?
Indices Select Name From Area Where Campo1 = @Param1 And Campo2 = @Param2 ,[object Object],[object Object],[object Object],[object Object]
Select
Campos de un Select ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Expresion as Alias Expresion Alias Alias = Expresion Expresion * Tabla.* Vista.* Alias.*
[object Object],[object Object],[object Object],Select Resultado Branch
[object Object],[object Object],[object Object],[object Object],Select Resultado Branch
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Branch Area Index Scan Index Scan Cuantos registros trae esta consulta? Los graficos son iguales Branch Area
Producto Cartesiano ,[object Object],[object Object],[object Object],A B AxB Select [Branch].[Id], [Branch].[Name], [Area].[BranchId], [Area].[Id], [Area].[Name]  From [Branch], [Area] Branch Area
[object Object],[object Object],[object Object],[object Object],O mas conocido como: Select [Branch].[Id], [Branch].[Name], [Area].[Id], [Area].[Name], [Area].[BranchId] From   [Branch] Inner Join [Area] On [Branch].[Id] = [Area].[BranchId] Branch Area Area Branch
[object Object],[object Object],[object Object],[object Object],Index Scan Index Seek Select [Branch].[Id], [Branch].[Name], [Area].[Id], [Area].[Name], [Area].[BranchId] From   [Branch] Inner Join [Area] On [Branch].[Id] = [Area].[BranchId] Los gráficos son diferentes. Area Branch
Muchos a Muchos ,[object Object],[object Object],[object Object],[object Object]
Muchos a Muchos ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Muchos a Muchos ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Constantes, Parametros y Valores
Constantes, Parametros y Valores ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Date y Time 4   bytes 1 minuto  Del 1 de enero de 1900 hasta el 6 de junio de 2079 smalldatetime 8   bytes 3,33 Milisegundos Del 1 de enero de 1753 hasta el 31 de diciembre de 9999 datetime Tamaño Precisión Intervalo Tipo de dato
Funciones DateAdd y DateDiff Select Nombre From Promocion Where VigenteDesde <= GetDate() And DateAdd(day,1,VigenteHasta)>=GetDate() Select Nombre From Promocion Where VigenteDesde <= GetDate() And VigenteHasta >= GetDate()-1
Funciones DateAdd y DateDiff Supongamos que las promociones duran 30 dias: Select Nombre From Promocion Where DateDiff(day, VigenteDesde, Getdate()) < 30 Select Nombre From Promocion Where GetDate() - 30 < VigenteDesde
Date y Time Create Procedure Fechas @date_from smalldatetime=null,   @date_to smalldatetime=null As Select Name From Area  Where (CreateDate > @date_from Or @date_from Is Null) And (CreateDate < @date_to Or @date_to Is Null) Create Procedure Fechas @date_from smalldatetime=‘19000101’,   @date_to smalldatetime=‘20790606’ As Select Name From Area  Where (CreateDate > @date_from) And (CreateDate < @date_to)
Date y Time Create Procedure Fechas @date_from smalldatetime=null,   @date_to smalldatetime=null As Select Name From Area  Where (CreateDate > @date_from Or @date_from Is Null) And (CreateDate < @date_to Or @date_to Is Null) Create Procedure Fechas @date_from smalldatetime=‘19000101’,   @date_to smalldatetime=‘20790606’ As Select Name From Area  Where (CreateDate > @date_from) And (CreateDate < @date_to)
Date y Time Create Procedure Fechas @date_from smalldatetime=null,   @date_to smalldatetime=null As Select Name From Area  Where (CreateDate > @date_from Or @date_from Is Null) And (CreateDate < @date_to Or @date_to Is Null) Create Procedure Fechas @date_from smalldatetime=‘19000101’, @date_to smalldatetime=‘20790606’ As Select Name From Area  Where (CreateDate between @date_from and @date_to)
Insert Statement
Insert Insert Into [Area] ([Name], [BranchId]) Values ('Plan', 1)
Union Statement
Union All Union La Union NO garantiza que los resultados estén ordenados. Para eso hay que usar un Order By.
Ultimo TIP ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Preguntas ,[object Object]
The End

Weitere ähnliche Inhalte

Ähnlich wie Sql Server

Precentacion de sql visual
Precentacion de sql visualPrecentacion de sql visual
Precentacion de sql visual
BryanChacon12
 
0138 gene xus_evoluciona_evolucionemos_nosotros
0138 gene xus_evoluciona_evolucionemos_nosotros0138 gene xus_evoluciona_evolucionemos_nosotros
0138 gene xus_evoluciona_evolucionemos_nosotros
GeneXus
 
UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)
UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)
UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)
Videoconferencias UTPL
 
Funciones store proc_triggers
Funciones store proc_triggersFunciones store proc_triggers
Funciones store proc_triggers
Luis Jherry
 

Ähnlich wie Sql Server (20)

CONSULTAS AVANZADAS SQL.pptx
CONSULTAS AVANZADAS SQL.pptxCONSULTAS AVANZADAS SQL.pptx
CONSULTAS AVANZADAS SQL.pptx
 
CONSULTAS_AVANZADAS_SQL.pptx
CONSULTAS_AVANZADAS_SQL.pptxCONSULTAS_AVANZADAS_SQL.pptx
CONSULTAS_AVANZADAS_SQL.pptx
 
Ti. Sql.Caso1al9.Consultas
Ti. Sql.Caso1al9.ConsultasTi. Sql.Caso1al9.Consultas
Ti. Sql.Caso1al9.Consultas
 
Transact SQL Fundamental
Transact SQL FundamentalTransact SQL Fundamental
Transact SQL Fundamental
 
Joins
Joins Joins
Joins
 
Consulta
ConsultaConsulta
Consulta
 
Precentacion de sql visual
Precentacion de sql visualPrecentacion de sql visual
Precentacion de sql visual
 
0138 gene xus_evoluciona_evolucionemos_nosotros
0138 gene xus_evoluciona_evolucionemos_nosotros0138 gene xus_evoluciona_evolucionemos_nosotros
0138 gene xus_evoluciona_evolucionemos_nosotros
 
Ejercicios sql
Ejercicios sqlEjercicios sql
Ejercicios sql
 
Presentacio Sql 1
Presentacio Sql 1Presentacio Sql 1
Presentacio Sql 1
 
Tutorial MIneria de datos en sql server
Tutorial  MIneria de datos en sql serverTutorial  MIneria de datos en sql server
Tutorial MIneria de datos en sql server
 
UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)
UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)
UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)
 
Funciones store proc_triggers
Funciones store proc_triggersFunciones store proc_triggers
Funciones store proc_triggers
 
Proyecto 2
Proyecto 2Proyecto 2
Proyecto 2
 
Ejercicios sql
Ejercicios sqlEjercicios sql
Ejercicios sql
 
Sql ejercicios resueltos
Sql ejercicios resueltosSql ejercicios resueltos
Sql ejercicios resueltos
 
Ejercicios sql
Ejercicios sqlEjercicios sql
Ejercicios sql
 
Programación con C/AL para Microsoft Business Solutions Navision
Programación con C/AL para Microsoft Business Solutions NavisionProgramación con C/AL para Microsoft Business Solutions Navision
Programación con C/AL para Microsoft Business Solutions Navision
 
1.Tipos de Datos.ppt
1.Tipos de Datos.ppt1.Tipos de Datos.ppt
1.Tipos de Datos.ppt
 
1.Tipos de Datos.ppt
1.Tipos de Datos.ppt1.Tipos de Datos.ppt
1.Tipos de Datos.ppt
 

Kürzlich hochgeladen

🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
EliaHernndez7
 
Criterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficiosCriterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficios
JonathanCovena1
 
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
RigoTito
 
Proyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfProyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdf
patriciaines1993
 

Kürzlich hochgeladen (20)

🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
 
Power Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptxPower Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptx
 
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfFeliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
 
Infografía EE con pie del 2023 (3)-1.pdf
Infografía EE con pie del 2023 (3)-1.pdfInfografía EE con pie del 2023 (3)-1.pdf
Infografía EE con pie del 2023 (3)-1.pdf
 
Criterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficiosCriterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficios
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDAD
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptx
 
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
 
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICABIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
 
Dinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dDinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes d
 
2024 KIT DE HABILIDADES SOCIOEMOCIONALES.pdf
2024 KIT DE HABILIDADES SOCIOEMOCIONALES.pdf2024 KIT DE HABILIDADES SOCIOEMOCIONALES.pdf
2024 KIT DE HABILIDADES SOCIOEMOCIONALES.pdf
 
Unidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la InvestigaciónUnidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la Investigación
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
 
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
 
Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024
 
PIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonablesPIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonables
 
origen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioorigen y desarrollo del ensayo literario
origen y desarrollo del ensayo literario
 
Sesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronósticoSesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronóstico
 
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptxLA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
 
Proyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfProyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdf
 

Sql Server

  • 1. Mejores Prácticas de SQL Server. Gonzalo Sayago
  • 2.
  • 3.
  • 4.
  • 5. Indices + Indices Branch Select Id, Name From Branch Where Id = @Id and Name = @Name Name+Id Select Id, Name From Branch Where Id = @Id and Name like @Name% Id+Name Select Id, Name From Branch Where Name = @Name Name Select Id, Name From Branch Where Id = @Id Id Consulta Indice
  • 6.
  • 7.
  • 8.
  • 9. TIP Select Name From Branch Where (Id < 2) Or (Id > 2) Select Name From Branch Where (Id <> 2) Index Scan Index Seek
  • 10.
  • 11. ¿Cuándo crear un índice?
  • 12.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 25.
  • 26. Date y Time 4 bytes 1 minuto Del 1 de enero de 1900 hasta el 6 de junio de 2079 smalldatetime 8 bytes 3,33 Milisegundos Del 1 de enero de 1753 hasta el 31 de diciembre de 9999 datetime Tamaño Precisión Intervalo Tipo de dato
  • 27. Funciones DateAdd y DateDiff Select Nombre From Promocion Where VigenteDesde <= GetDate() And DateAdd(day,1,VigenteHasta)>=GetDate() Select Nombre From Promocion Where VigenteDesde <= GetDate() And VigenteHasta >= GetDate()-1
  • 28. Funciones DateAdd y DateDiff Supongamos que las promociones duran 30 dias: Select Nombre From Promocion Where DateDiff(day, VigenteDesde, Getdate()) < 30 Select Nombre From Promocion Where GetDate() - 30 < VigenteDesde
  • 29. Date y Time Create Procedure Fechas @date_from smalldatetime=null, @date_to smalldatetime=null As Select Name From Area Where (CreateDate > @date_from Or @date_from Is Null) And (CreateDate < @date_to Or @date_to Is Null) Create Procedure Fechas @date_from smalldatetime=‘19000101’, @date_to smalldatetime=‘20790606’ As Select Name From Area Where (CreateDate > @date_from) And (CreateDate < @date_to)
  • 30. Date y Time Create Procedure Fechas @date_from smalldatetime=null, @date_to smalldatetime=null As Select Name From Area Where (CreateDate > @date_from Or @date_from Is Null) And (CreateDate < @date_to Or @date_to Is Null) Create Procedure Fechas @date_from smalldatetime=‘19000101’, @date_to smalldatetime=‘20790606’ As Select Name From Area Where (CreateDate > @date_from) And (CreateDate < @date_to)
  • 31. Date y Time Create Procedure Fechas @date_from smalldatetime=null, @date_to smalldatetime=null As Select Name From Area Where (CreateDate > @date_from Or @date_from Is Null) And (CreateDate < @date_to Or @date_to Is Null) Create Procedure Fechas @date_from smalldatetime=‘19000101’, @date_to smalldatetime=‘20790606’ As Select Name From Area Where (CreateDate between @date_from and @date_to)
  • 33. Insert Insert Into [Area] ([Name], [BranchId]) Values ('Plan', 1)
  • 35. Union All Union La Union NO garantiza que los resultados estén ordenados. Para eso hay que usar un Order By.
  • 36.
  • 37.