SlideShare uma empresa Scribd logo
10 Dicas para Escrever
Códigos T-SQL Melhores
Rodrigo Crespi
Speaker Bio
2
Rodrigo Crespi
MCT, MCDBA, MCITP, MCSE e etc.
Especialista em Banco de Dados – UGF
Mestrando em Engenharia de Software - UEMC
PASS Chapter Leader – SQL Server RS
www.sqlcrespi.com
Picture Here
@SQLCrespi
rodrigocrespi
br.linkedin.com/in/rodrigocrespi
3
Agenda
 10 Dicas de como escrever códigos melhores:
1. Padrão;
2. Documentação;
3. Controle de transação;
4. Tratamento de erro/exceções;
5. Desenvolvedor .NET;
6. Eliminando dados;
7. Output;
8. Performance;
9. Planos de execução;
10. Estudo.
3
4
DICA 1 - Padrão
Adotar padrões para:
 Nomenclatura de objetos;
 Codificação de objetos;
 Sempre descrever as colunas;
 Sempre acessar as tabelas na mesma ordem;
 Usar sempre schema.tabela;
 Use sempre o padrão ANSI nas cláusulas JOIN;
4
5
DICA 2- Documentação
Por que documentar?
Documentação no cabeçalho das procs, views e funções.
5
6
Demo
6
7
DICA 3 - Controle de Transações
 O SQL Server mantém a consistência da gravação dos dados baseado no
transaction log;
 Todas as transações são compostas de um Begin Transaction que marca o
início do código;
 O final da transação pode ser um Commit transaction, commit work, ou um
rollback transaction, rollback work;
7
8
DICA 4 - Tratamento de Erro/Exceções
• Erros podem acontecer;
• Try...Catch...Throw;
• Begin Tran...Commit Tran.
8
Begin Try1
Begin Tran2
Código T-SQL3
Commit Tran4
End Try5
Begin Catch6
Rollback7
End Catch8
9
DICA 5 - Desenvolvedor .NET
• Incluir o nome da aplicação na string de conexão;
• Quando necessitarmos de um order by para uma consulta e for possível
utilizar a ordenação em componentes como o sort do dataview;
• Operações de manipulação;
• Quando enviar um comando de insert, update, delete ao banco de dados
utilizar o @parameter para enviar os parâmetros.
9
10
DICA 6 - Eliminando Dados
• Truncate table;
• Delete;
• Arquivando dados;
10
11
DICA 7 - Output
É a cláusula que retorna os dados que
foram alterados;
11
12
Demo
12
13
DICA 8 - Performance
• O identificador da linha;
• Não utilizar "Select *";
• Evitar cursor o máximo possível;
• Evite tabelas temporárias;
• Evite utilizar curingas no início da palavra pesquisada usando o Like;
• Teste algumas possibilidades na montagem da Query;
• Usar o Set NoCount On no início dos batches;
• Usar colunas CHAR somente quando a coluna for non-nullable;
• Não chamar funções repetidamente;
13
14
DICA 9 - Analisando Planos de execução
• São os melhores aliados na hora de aprimorar
uma query;
• SHOWPLAN_TEXT ou SHOWPLAN_ALL
• Procure sempre melhorar as queries para que
sejam index seek ao invés de index scan ou table
scan;
14
15
Demo
15
16
DICA 10 - Estudo
• Conhecer o negócio;
• Aprender outras linguagens ex.: PowerShell, C#, VB.NET;
• Estudar o SO;
• Compreender a terminologia para discutir com os termos corretos;
• Sempre participar dos eventos da comunidade SQL SERVER. ;)
16
Questions?
Thank You for Attending
Follow @pass24hop
Share your thoughts with hashtags
#pass24hop & #sqlpass

Mais conteúdo relacionado

Mais procurados

Aumente a performance de seu site de maneira disciplinada
Aumente a performance de seu site de maneira disciplinadaAumente a performance de seu site de maneira disciplinada
Aumente a performance de seu site de maneira disciplinada
Henrique Lima
 
Net Coders Ladies SQL
Net Coders Ladies SQL Net Coders Ladies SQL
Net Coders Ladies SQL
Aline Lavorato
 
[Campus code] Boas práticas em Rails
[Campus code] Boas práticas em Rails[Campus code] Boas práticas em Rails
[Campus code] Boas práticas em Rails
fabio perrella
 
Stored procedure
Stored procedureStored procedure
Stored procedure
julianaveregue
 
Servlets E Applet
Servlets E AppletServlets E Applet
Servlets E Applet
asiramage
 
Sap Inside Track Sao Paulo 09 Classes De Negócio Em Abap Orientado A Objetos
Sap Inside Track Sao Paulo 09 Classes De Negócio Em Abap Orientado A ObjetosSap Inside Track Sao Paulo 09 Classes De Negócio Em Abap Orientado A Objetos
Sap Inside Track Sao Paulo 09 Classes De Negócio Em Abap Orientado A Objetos
Marcelo Ramos
 
Webcast: 5 coisas que todo desenvolvedor deveria saber sobre sql server
Webcast: 5 coisas que todo desenvolvedor deveria saber sobre sql server Webcast: 5 coisas que todo desenvolvedor deveria saber sobre sql server
Webcast: 5 coisas que todo desenvolvedor deveria saber sobre sql server
Marcos Freccia
 
Refatoração
RefatoraçãoRefatoração
Refatoração
William "Kina"
 
T-SQL na prática com SQL SERVER Express 2012
T-SQL na prática com SQL SERVER Express 2012T-SQL na prática com SQL SERVER Express 2012
T-SQL na prática com SQL SERVER Express 2012
Rodrigo Ribeiro
 
Testes com JUnit
Testes com JUnitTestes com JUnit
Testes com JUnit
elliando dias
 
[Curso Java Basico] Aula 15: Controle de Decisao Switch-Case
[Curso Java Basico] Aula 15: Controle de Decisao Switch-Case[Curso Java Basico] Aula 15: Controle de Decisao Switch-Case
[Curso Java Basico] Aula 15: Controle de Decisao Switch-Case
Loiane Groner
 
Testes de Integração
Testes de IntegraçãoTestes de Integração
Testes de Integração
André Faria Gomes
 

Mais procurados (12)

Aumente a performance de seu site de maneira disciplinada
Aumente a performance de seu site de maneira disciplinadaAumente a performance de seu site de maneira disciplinada
Aumente a performance de seu site de maneira disciplinada
 
Net Coders Ladies SQL
Net Coders Ladies SQL Net Coders Ladies SQL
Net Coders Ladies SQL
 
[Campus code] Boas práticas em Rails
[Campus code] Boas práticas em Rails[Campus code] Boas práticas em Rails
[Campus code] Boas práticas em Rails
 
Stored procedure
Stored procedureStored procedure
Stored procedure
 
Servlets E Applet
Servlets E AppletServlets E Applet
Servlets E Applet
 
Sap Inside Track Sao Paulo 09 Classes De Negócio Em Abap Orientado A Objetos
Sap Inside Track Sao Paulo 09 Classes De Negócio Em Abap Orientado A ObjetosSap Inside Track Sao Paulo 09 Classes De Negócio Em Abap Orientado A Objetos
Sap Inside Track Sao Paulo 09 Classes De Negócio Em Abap Orientado A Objetos
 
Webcast: 5 coisas que todo desenvolvedor deveria saber sobre sql server
Webcast: 5 coisas que todo desenvolvedor deveria saber sobre sql server Webcast: 5 coisas que todo desenvolvedor deveria saber sobre sql server
Webcast: 5 coisas que todo desenvolvedor deveria saber sobre sql server
 
Refatoração
RefatoraçãoRefatoração
Refatoração
 
T-SQL na prática com SQL SERVER Express 2012
T-SQL na prática com SQL SERVER Express 2012T-SQL na prática com SQL SERVER Express 2012
T-SQL na prática com SQL SERVER Express 2012
 
Testes com JUnit
Testes com JUnitTestes com JUnit
Testes com JUnit
 
[Curso Java Basico] Aula 15: Controle de Decisao Switch-Case
[Curso Java Basico] Aula 15: Controle de Decisao Switch-Case[Curso Java Basico] Aula 15: Controle de Decisao Switch-Case
[Curso Java Basico] Aula 15: Controle de Decisao Switch-Case
 
Testes de Integração
Testes de IntegraçãoTestes de Integração
Testes de Integração
 

Destaque

Teste nr 10
Teste nr 10Teste nr 10
NR 10 - Riscos eletricos
NR 10 - Riscos eletricosNR 10 - Riscos eletricos
NR 10 - Riscos eletricos
Eduardo Mendes
 
Apostila para Treinamento no Curso de NR 10 - Autor Eng. José Reis Eletricis...
Apostila para Treinamento no Curso de NR 10  - Autor Eng. José Reis Eletricis...Apostila para Treinamento no Curso de NR 10  - Autor Eng. José Reis Eletricis...
Apostila para Treinamento no Curso de NR 10 - Autor Eng. José Reis Eletricis...
José Reis
 
Trabalho de segurança em eletricidade nr 10
Trabalho de segurança em eletricidade nr 10Trabalho de segurança em eletricidade nr 10
Trabalho de segurança em eletricidade nr 10
Markkinhos
 
Apresentação nr10 senac
Apresentação   nr10   senacApresentação   nr10   senac
Apresentação nr10 senac
Fernando Mendes
 
Nr 10
Nr 10Nr 10
Treinamento Segurança em eletricidade
Treinamento Segurança em eletricidade   Treinamento Segurança em eletricidade
Treinamento Segurança em eletricidade
Ane Costa
 
Curso de segurança com eletricidade pela NR 10
Curso de segurança com eletricidade pela NR 10Curso de segurança com eletricidade pela NR 10
Curso de segurança com eletricidade pela NR 10
Edgar Arana
 
Apresentação nr10
Apresentação nr10Apresentação nr10
Apresentação nr10
foxtray
 
NR-10
NR-10NR-10
NR-10
luizgraf
 

Destaque (10)

Teste nr 10
Teste nr 10Teste nr 10
Teste nr 10
 
NR 10 - Riscos eletricos
NR 10 - Riscos eletricosNR 10 - Riscos eletricos
NR 10 - Riscos eletricos
 
Apostila para Treinamento no Curso de NR 10 - Autor Eng. José Reis Eletricis...
Apostila para Treinamento no Curso de NR 10  - Autor Eng. José Reis Eletricis...Apostila para Treinamento no Curso de NR 10  - Autor Eng. José Reis Eletricis...
Apostila para Treinamento no Curso de NR 10 - Autor Eng. José Reis Eletricis...
 
Trabalho de segurança em eletricidade nr 10
Trabalho de segurança em eletricidade nr 10Trabalho de segurança em eletricidade nr 10
Trabalho de segurança em eletricidade nr 10
 
Apresentação nr10 senac
Apresentação   nr10   senacApresentação   nr10   senac
Apresentação nr10 senac
 
Nr 10
Nr 10Nr 10
Nr 10
 
Treinamento Segurança em eletricidade
Treinamento Segurança em eletricidade   Treinamento Segurança em eletricidade
Treinamento Segurança em eletricidade
 
Curso de segurança com eletricidade pela NR 10
Curso de segurança com eletricidade pela NR 10Curso de segurança com eletricidade pela NR 10
Curso de segurança com eletricidade pela NR 10
 
Apresentação nr10
Apresentação nr10Apresentação nr10
Apresentação nr10
 
NR-10
NR-10NR-10
NR-10
 

Semelhante a 24H PASS PT-BR 10 Dicas para escrever códigos t-sql melhores

SQL Server – Performance e Tunning
SQL Server – Performance e TunningSQL Server – Performance e Tunning
SQL Server – Performance e Tunning
pt_programar
 
Db2
Db2Db2
TDD com Código Legado - "Atualizado"
TDD com Código Legado - "Atualizado"TDD com Código Legado - "Atualizado"
TDD com Código Legado - "Atualizado"
Cesar Romero
 
T@rget Trust - Formação: Administrador e Desenvolvedor PostgreSQL
T@rget Trust - Formação: Administrador e Desenvolvedor PostgreSQLT@rget Trust - Formação: Administrador e Desenvolvedor PostgreSQL
T@rget Trust - Formação: Administrador e Desenvolvedor PostgreSQL
Targettrust
 
10 Dicas Para Otimizar Códigos T-SQL
10 Dicas Para Otimizar Códigos T-SQL10 Dicas Para Otimizar Códigos T-SQL
10 Dicas Para Otimizar Códigos T-SQL
Rodrigo Crespi
 
Design Patterns para Tuning Pentaho com Ctools
Design Patterns para Tuning Pentaho com CtoolsDesign Patterns para Tuning Pentaho com Ctools
Design Patterns para Tuning Pentaho com Ctools
e-Setorial
 
Novidades do Sql Server 2016
Novidades do Sql Server 2016Novidades do Sql Server 2016
Novidades do Sql Server 2016
Roberto Fonseca
 
ODI SERIES - Melhores Práticas
ODI SERIES - Melhores PráticasODI SERIES - Melhores Práticas
ODI SERIES - Melhores Práticas
Caio Lima
 
Dojo banco de dados
Dojo   banco de dadosDojo   banco de dados
Dojo banco de dados
Fernando Fagonde
 
Aprofundamento de DDL e DML
Aprofundamento de DDL e DMLAprofundamento de DDL e DML
Aprofundamento de DDL e DML
Nécio de Lima Veras
 
DB2 Express-C
DB2 Express-CDB2 Express-C
DB2 Express-C
Bruno Dadalt Zambiazi
 
Workshop Ruby on Rails dia 2 ruby-pt
Workshop Ruby on Rails dia 2  ruby-ptWorkshop Ruby on Rails dia 2  ruby-pt
Workshop Ruby on Rails dia 2 ruby-pt
Pedro Sousa
 
Performance no MongoDB - TDC 2017 | Florianópolis
Performance no MongoDB - TDC 2017 | FlorianópolisPerformance no MongoDB - TDC 2017 | Florianópolis
Performance no MongoDB - TDC 2017 | Florianópolis
Jefferson Martins de Andrade
 
SQLCLR - Transformando seu SQL Server em algo muito além de um banco de dados
SQLCLR - Transformando seu SQL Server em algo muito além de um banco de dadosSQLCLR - Transformando seu SQL Server em algo muito além de um banco de dados
SQLCLR - Transformando seu SQL Server em algo muito além de um banco de dados
Dirceu Resende
 
Fazendo Um Elefante Passar Debaixo da Porta - PGCon-BR
Fazendo Um Elefante Passar Debaixo da Porta - PGCon-BRFazendo Um Elefante Passar Debaixo da Porta - PGCon-BR
Fazendo Um Elefante Passar Debaixo da Porta - PGCon-BR
Fabio Telles Rodriguez
 
TDD com Código Legado
TDD com Código LegadoTDD com Código Legado
TDD com Código Legado
Cesar Romero
 
Boas praticas em um Projeto de Banco de Dados
Boas praticas em um Projeto de Banco de DadosBoas praticas em um Projeto de Banco de Dados
Boas praticas em um Projeto de Banco de Dados
Juliano Atanazio
 
Oracleplsql
OracleplsqlOracleplsql
Oracleplsql
Glauco Moraes
 
TechEd 2010: SQL Server com Foco em Diagnóstico de Desempenho
TechEd 2010: SQL Server com Foco em Diagnóstico de DesempenhoTechEd 2010: SQL Server com Foco em Diagnóstico de Desempenho
TechEd 2010: SQL Server com Foco em Diagnóstico de Desempenho
Fabrício Catae
 
SQL e Transações
SQL e TransaçõesSQL e Transações
SQL e Transações
Carlos Pampulim Caldeira
 

Semelhante a 24H PASS PT-BR 10 Dicas para escrever códigos t-sql melhores (20)

SQL Server – Performance e Tunning
SQL Server – Performance e TunningSQL Server – Performance e Tunning
SQL Server – Performance e Tunning
 
Db2
Db2Db2
Db2
 
TDD com Código Legado - "Atualizado"
TDD com Código Legado - "Atualizado"TDD com Código Legado - "Atualizado"
TDD com Código Legado - "Atualizado"
 
T@rget Trust - Formação: Administrador e Desenvolvedor PostgreSQL
T@rget Trust - Formação: Administrador e Desenvolvedor PostgreSQLT@rget Trust - Formação: Administrador e Desenvolvedor PostgreSQL
T@rget Trust - Formação: Administrador e Desenvolvedor PostgreSQL
 
10 Dicas Para Otimizar Códigos T-SQL
10 Dicas Para Otimizar Códigos T-SQL10 Dicas Para Otimizar Códigos T-SQL
10 Dicas Para Otimizar Códigos T-SQL
 
Design Patterns para Tuning Pentaho com Ctools
Design Patterns para Tuning Pentaho com CtoolsDesign Patterns para Tuning Pentaho com Ctools
Design Patterns para Tuning Pentaho com Ctools
 
Novidades do Sql Server 2016
Novidades do Sql Server 2016Novidades do Sql Server 2016
Novidades do Sql Server 2016
 
ODI SERIES - Melhores Práticas
ODI SERIES - Melhores PráticasODI SERIES - Melhores Práticas
ODI SERIES - Melhores Práticas
 
Dojo banco de dados
Dojo   banco de dadosDojo   banco de dados
Dojo banco de dados
 
Aprofundamento de DDL e DML
Aprofundamento de DDL e DMLAprofundamento de DDL e DML
Aprofundamento de DDL e DML
 
DB2 Express-C
DB2 Express-CDB2 Express-C
DB2 Express-C
 
Workshop Ruby on Rails dia 2 ruby-pt
Workshop Ruby on Rails dia 2  ruby-ptWorkshop Ruby on Rails dia 2  ruby-pt
Workshop Ruby on Rails dia 2 ruby-pt
 
Performance no MongoDB - TDC 2017 | Florianópolis
Performance no MongoDB - TDC 2017 | FlorianópolisPerformance no MongoDB - TDC 2017 | Florianópolis
Performance no MongoDB - TDC 2017 | Florianópolis
 
SQLCLR - Transformando seu SQL Server em algo muito além de um banco de dados
SQLCLR - Transformando seu SQL Server em algo muito além de um banco de dadosSQLCLR - Transformando seu SQL Server em algo muito além de um banco de dados
SQLCLR - Transformando seu SQL Server em algo muito além de um banco de dados
 
Fazendo Um Elefante Passar Debaixo da Porta - PGCon-BR
Fazendo Um Elefante Passar Debaixo da Porta - PGCon-BRFazendo Um Elefante Passar Debaixo da Porta - PGCon-BR
Fazendo Um Elefante Passar Debaixo da Porta - PGCon-BR
 
TDD com Código Legado
TDD com Código LegadoTDD com Código Legado
TDD com Código Legado
 
Boas praticas em um Projeto de Banco de Dados
Boas praticas em um Projeto de Banco de DadosBoas praticas em um Projeto de Banco de Dados
Boas praticas em um Projeto de Banco de Dados
 
Oracleplsql
OracleplsqlOracleplsql
Oracleplsql
 
TechEd 2010: SQL Server com Foco em Diagnóstico de Desempenho
TechEd 2010: SQL Server com Foco em Diagnóstico de DesempenhoTechEd 2010: SQL Server com Foco em Diagnóstico de Desempenho
TechEd 2010: SQL Server com Foco em Diagnóstico de Desempenho
 
SQL e Transações
SQL e TransaçõesSQL e Transações
SQL e Transações
 

24H PASS PT-BR 10 Dicas para escrever códigos t-sql melhores

  • 1. 10 Dicas para Escrever Códigos T-SQL Melhores Rodrigo Crespi
  • 2. Speaker Bio 2 Rodrigo Crespi MCT, MCDBA, MCITP, MCSE e etc. Especialista em Banco de Dados – UGF Mestrando em Engenharia de Software - UEMC PASS Chapter Leader – SQL Server RS www.sqlcrespi.com Picture Here @SQLCrespi rodrigocrespi br.linkedin.com/in/rodrigocrespi
  • 3. 3 Agenda  10 Dicas de como escrever códigos melhores: 1. Padrão; 2. Documentação; 3. Controle de transação; 4. Tratamento de erro/exceções; 5. Desenvolvedor .NET; 6. Eliminando dados; 7. Output; 8. Performance; 9. Planos de execução; 10. Estudo. 3
  • 4. 4 DICA 1 - Padrão Adotar padrões para:  Nomenclatura de objetos;  Codificação de objetos;  Sempre descrever as colunas;  Sempre acessar as tabelas na mesma ordem;  Usar sempre schema.tabela;  Use sempre o padrão ANSI nas cláusulas JOIN; 4
  • 5. 5 DICA 2- Documentação Por que documentar? Documentação no cabeçalho das procs, views e funções. 5
  • 7. 7 DICA 3 - Controle de Transações  O SQL Server mantém a consistência da gravação dos dados baseado no transaction log;  Todas as transações são compostas de um Begin Transaction que marca o início do código;  O final da transação pode ser um Commit transaction, commit work, ou um rollback transaction, rollback work; 7
  • 8. 8 DICA 4 - Tratamento de Erro/Exceções • Erros podem acontecer; • Try...Catch...Throw; • Begin Tran...Commit Tran. 8 Begin Try1 Begin Tran2 Código T-SQL3 Commit Tran4 End Try5 Begin Catch6 Rollback7 End Catch8
  • 9. 9 DICA 5 - Desenvolvedor .NET • Incluir o nome da aplicação na string de conexão; • Quando necessitarmos de um order by para uma consulta e for possível utilizar a ordenação em componentes como o sort do dataview; • Operações de manipulação; • Quando enviar um comando de insert, update, delete ao banco de dados utilizar o @parameter para enviar os parâmetros. 9
  • 10. 10 DICA 6 - Eliminando Dados • Truncate table; • Delete; • Arquivando dados; 10
  • 11. 11 DICA 7 - Output É a cláusula que retorna os dados que foram alterados; 11
  • 13. 13 DICA 8 - Performance • O identificador da linha; • Não utilizar "Select *"; • Evitar cursor o máximo possível; • Evite tabelas temporárias; • Evite utilizar curingas no início da palavra pesquisada usando o Like; • Teste algumas possibilidades na montagem da Query; • Usar o Set NoCount On no início dos batches; • Usar colunas CHAR somente quando a coluna for non-nullable; • Não chamar funções repetidamente; 13
  • 14. 14 DICA 9 - Analisando Planos de execução • São os melhores aliados na hora de aprimorar uma query; • SHOWPLAN_TEXT ou SHOWPLAN_ALL • Procure sempre melhorar as queries para que sejam index seek ao invés de index scan ou table scan; 14
  • 16. 16 DICA 10 - Estudo • Conhecer o negócio; • Aprender outras linguagens ex.: PowerShell, C#, VB.NET; • Estudar o SO; • Compreender a terminologia para discutir com os termos corretos; • Sempre participar dos eventos da comunidade SQL SERVER. ;) 16
  • 18. Thank You for Attending Follow @pass24hop Share your thoughts with hashtags #pass24hop & #sqlpass