SlideShare uma empresa Scribd logo
1 de 16
SQLCLR: Transformando o SQL Server em algo muito além de um banco de dados
DIRCEU RESENDE
PATROCINADORES
2
Dirceu Resende
3
• Consultor SQL Server e BI no
#TeamFabricioLima
• Instrutor de Power BI no Planilheiros
• Microsoft MVP Data Platform
• Microsoft MCP, MTA, MCSA e MCSE
• Organizador do PASS Local Group SQL
Server ES
• Escritor do iMasters
• Instrutor do
https://cursos.fabriciolima.net
• Autor do
https://www.dirceuresende.com/
AGENDA
4
• O que é o SQLCLR
• Vantagens
• Desvantagens e Restrições
• Como programar e publicar o SQLCLR
• Performance
• Segurança
• Exemplos
O QUE É O SQLCLR?
5
• CLR: O coração do .NET Framework
• SQLCLR: .NET Framework no SQL Server
• Criação de objetos no banco de dados utilizando C# e VB.NET
• Codifica no Visual Studio, utiliza no SQL Server Management
Studio
VANTAGENS
6
• Consulta a Webservices
• Utilização de tipos de dados geo-espaciais
• Expressão regular (Regexp)
• Performance
• Segurança (Substituição de xp_cmdshell e OLE Automation)
• Visual Studio + GitHub/TFS
• Conectividade
VANTAGENS
7
• Integrações com Webservices
• Manipulação de arquivos
• Execução de executáveis parametrizáveis
• Execução de scripts Powershell, DOS, VBScript, etc
• Funções de agregação de resultados
• Manipulação de ResultSets
• Conexão de contexto
DESVANTAGENS
8
DESVANTAGENS
9
• DBA com conhecimentos em desenvolvimento
• Falta de cultura DevOps nas empresas
• Pouca documentação sobre o assunto
• SQLCLR mal codificado pode deixar sua instância instável
• Não existem parâmetros opcionais em SP’s do SQLCLR
• Processo de deploy apaga e recria os objetos do SQLCLR no
banco
RESTRIÇÕES
10
• Assembly suportados (http://bit.ly/2AhuANo)
• SAFE, EXTERNAL_ACCESS e UNSAFE
• Conexão de contexto
COMO PROGRAMAR E PUBLICAR O SQLCLR
11
• Visual Studio > SQL Server Database Project
• Class Library para organizar o código
• Definir versão do .NET Framework de acordo com a versão do
SQL Server
• Definir nível de permissão
• Codificação
• Deploy
PERFORMANCE
12
• Substituir função T-SQL UDF por CLR UDF geralmente é um bom
negócio
• Funções nativas geralmente são melhores que funções CLR
• Código otimizado para tratamento de strings e cálculos
matemáticos
• Performance melhor que aplicação .NET (mais perto dos dados)
• Consultas remotas sem utilizar Linked Server
• Classe SqlBulkCopy
SEGURANÇA
13
• Substituir xp_cmdshell e OLE Automation
• Auditoria e Logs
• Personificação de usuários
• Código gerenciado
• Código-fonte ofuscado
DÚVIDAS
14
SE INTERESSOU? SAIBA MAIS!
15
• https://www.dirceuresende.com/blog/introducao-sql-clr-common-language-runtime-sql-server/
• https://www.dirceuresende.com/banco-de-dados/sql-server/clr/
• https://sqlsharp.com/
• http://www.linhadecodigo.com.br/artigo/2956/trabalhando-com-sql-clr-inicio.aspx
• https://docs.microsoft.com/en-us/dotnet/framework/data/adonet/sql/introduction-to-sql-
server-clr-integration
• http://www.sqlservercentral.com/stairway/105855/
• https://sqlfromhell.wordpress.com/category/trabalhando-com-sql-clr/
• https://www.codeproject.com/Tips/841439/Create-Run-Debug-and-Deploy-SQL-CLR-Function-
with
• http://www.intstrings.com/ramivemula/articles/step-by-step-process-in-sql-clr-implementation/
• http://www.c-sharpcorner.com/blogs/calling-web-service-from-sql-server-using-sql-clr
PATROCINADORES
16

Mais conteúdo relacionado

Mais procurados

Drupal 7 - Nova Versão para Novos Desafios
Drupal 7 - Nova Versão para Novos DesafiosDrupal 7 - Nova Versão para Novos Desafios
Drupal 7 - Nova Versão para Novos DesafiosPaulino Michelazzo
 
WildFly Avançado - TDC Floripa 2015
WildFly Avançado - TDC Floripa 2015WildFly Avançado - TDC Floripa 2015
WildFly Avançado - TDC Floripa 2015Adriano Schmidt
 
Como escolher o Framework Java para web?
Como escolher o Framework Java para web?Como escolher o Framework Java para web?
Como escolher o Framework Java para web?Anderson Araújo
 
Escalabilidade e alta disponibilidade no php com nginx
Escalabilidade e alta disponibilidade no php com nginxEscalabilidade e alta disponibilidade no php com nginx
Escalabilidade e alta disponibilidade no php com nginxSaveincloud
 
Cloud Mysql e MariaDB em alta performance
Cloud Mysql e MariaDB em alta performanceCloud Mysql e MariaDB em alta performance
Cloud Mysql e MariaDB em alta performanceSaveincloud
 
Por que Cloud Services é o melhor dos mundos?
Por que Cloud Services é o melhor dos mundos? Por que Cloud Services é o melhor dos mundos?
Por que Cloud Services é o melhor dos mundos? Fabrício Lopes Sanchez
 
Performance Codificando Night Week 2016
Performance Codificando Night Week 2016Performance Codificando Night Week 2016
Performance Codificando Night Week 2016Rodolfo Fadino Junior
 
Lampada Php Conference Brasil 2007 Palestra
Lampada Php Conference Brasil 2007 PalestraLampada Php Conference Brasil 2007 Palestra
Lampada Php Conference Brasil 2007 PalestraDavid O'Keefe
 
FrontInVale 2016: Webpack - A evolução do asset pipeline (Lightning Talk)
FrontInVale 2016: Webpack - A evolução do asset pipeline (Lightning Talk)FrontInVale 2016: Webpack - A evolução do asset pipeline (Lightning Talk)
FrontInVale 2016: Webpack - A evolução do asset pipeline (Lightning Talk)Aryel Tupinambá
 
Desenvolvendo uma Aplicação Javascript Fulll
Desenvolvendo uma Aplicação Javascript FulllDesenvolvendo uma Aplicação Javascript Fulll
Desenvolvendo uma Aplicação Javascript FulllDjanilson Alves
 
PHP Conference 2014: Uma string em dez milhões de documentos em menos de um s...
PHP Conference 2014: Uma string em dez milhões de documentos em menos de um s...PHP Conference 2014: Uma string em dez milhões de documentos em menos de um s...
PHP Conference 2014: Uma string em dez milhões de documentos em menos de um s...Aryel Tupinambá
 
Cloud PostgreSQL em alta performance
Cloud PostgreSQL em alta performanceCloud PostgreSQL em alta performance
Cloud PostgreSQL em alta performanceSaveincloud
 
Desenvolvimento web com .NET Core - Meetup São Carlos
Desenvolvimento web com .NET Core - Meetup São CarlosDesenvolvimento web com .NET Core - Meetup São Carlos
Desenvolvimento web com .NET Core - Meetup São CarlosRodolfo Fadino Junior
 
Java Escalável e com Alta Disponibilidade na Nuvem
Java Escalável e com Alta Disponibilidade na NuvemJava Escalável e com Alta Disponibilidade na Nuvem
Java Escalável e com Alta Disponibilidade na NuvemSaveincloud
 
Primeiros passos com a API do Zabbix - 3º Zabbix Meetup do Interior
Primeiros passos com a API do Zabbix - 3º Zabbix Meetup do InteriorPrimeiros passos com a API do Zabbix - 3º Zabbix Meetup do Interior
Primeiros passos com a API do Zabbix - 3º Zabbix Meetup do InteriorZabbix BR
 

Mais procurados (20)

Sass - Syntactically Awesome Style Sheets
Sass - Syntactically Awesome Style SheetsSass - Syntactically Awesome Style Sheets
Sass - Syntactically Awesome Style Sheets
 
Drupal 7 - Nova Versão para Novos Desafios
Drupal 7 - Nova Versão para Novos DesafiosDrupal 7 - Nova Versão para Novos Desafios
Drupal 7 - Nova Versão para Novos Desafios
 
Java web
Java webJava web
Java web
 
WildFly Avançado - TDC Floripa 2015
WildFly Avançado - TDC Floripa 2015WildFly Avançado - TDC Floripa 2015
WildFly Avançado - TDC Floripa 2015
 
Como escolher o Framework Java para web?
Como escolher o Framework Java para web?Como escolher o Framework Java para web?
Como escolher o Framework Java para web?
 
Escalabilidade e alta disponibilidade no php com nginx
Escalabilidade e alta disponibilidade no php com nginxEscalabilidade e alta disponibilidade no php com nginx
Escalabilidade e alta disponibilidade no php com nginx
 
Cloud Mysql e MariaDB em alta performance
Cloud Mysql e MariaDB em alta performanceCloud Mysql e MariaDB em alta performance
Cloud Mysql e MariaDB em alta performance
 
Performance Web com ASP.NET MVC
Performance Web com ASP.NET MVCPerformance Web com ASP.NET MVC
Performance Web com ASP.NET MVC
 
Angularjs
AngularjsAngularjs
Angularjs
 
Por que Cloud Services é o melhor dos mundos?
Por que Cloud Services é o melhor dos mundos? Por que Cloud Services é o melhor dos mundos?
Por que Cloud Services é o melhor dos mundos?
 
Performance Codificando Night Week 2016
Performance Codificando Night Week 2016Performance Codificando Night Week 2016
Performance Codificando Night Week 2016
 
Lampada Php Conference Brasil 2007 Palestra
Lampada Php Conference Brasil 2007 PalestraLampada Php Conference Brasil 2007 Palestra
Lampada Php Conference Brasil 2007 Palestra
 
FrontInVale 2016: Webpack - A evolução do asset pipeline (Lightning Talk)
FrontInVale 2016: Webpack - A evolução do asset pipeline (Lightning Talk)FrontInVale 2016: Webpack - A evolução do asset pipeline (Lightning Talk)
FrontInVale 2016: Webpack - A evolução do asset pipeline (Lightning Talk)
 
SQL e Transações
SQL e TransaçõesSQL e Transações
SQL e Transações
 
Desenvolvendo uma Aplicação Javascript Fulll
Desenvolvendo uma Aplicação Javascript FulllDesenvolvendo uma Aplicação Javascript Fulll
Desenvolvendo uma Aplicação Javascript Fulll
 
PHP Conference 2014: Uma string em dez milhões de documentos em menos de um s...
PHP Conference 2014: Uma string em dez milhões de documentos em menos de um s...PHP Conference 2014: Uma string em dez milhões de documentos em menos de um s...
PHP Conference 2014: Uma string em dez milhões de documentos em menos de um s...
 
Cloud PostgreSQL em alta performance
Cloud PostgreSQL em alta performanceCloud PostgreSQL em alta performance
Cloud PostgreSQL em alta performance
 
Desenvolvimento web com .NET Core - Meetup São Carlos
Desenvolvimento web com .NET Core - Meetup São CarlosDesenvolvimento web com .NET Core - Meetup São Carlos
Desenvolvimento web com .NET Core - Meetup São Carlos
 
Java Escalável e com Alta Disponibilidade na Nuvem
Java Escalável e com Alta Disponibilidade na NuvemJava Escalável e com Alta Disponibilidade na Nuvem
Java Escalável e com Alta Disponibilidade na Nuvem
 
Primeiros passos com a API do Zabbix - 3º Zabbix Meetup do Interior
Primeiros passos com a API do Zabbix - 3º Zabbix Meetup do InteriorPrimeiros passos com a API do Zabbix - 3º Zabbix Meetup do Interior
Primeiros passos com a API do Zabbix - 3º Zabbix Meetup do Interior
 

Semelhante a SQLCLR - Transformando seu SQL Server em algo muito além de um banco de dados

2019 - GUOB MeetUp - Journey to Cloud and DBA Career
2019 - GUOB MeetUp - Journey to Cloud and DBA Career2019 - GUOB MeetUp - Journey to Cloud and DBA Career
2019 - GUOB MeetUp - Journey to Cloud and DBA CareerMarcus Vinicius Miguel Pedro
 
Implementando APIs seguras na nuvem - Outubro-2018 - Azure Brasil
Implementando APIs seguras na nuvem - Outubro-2018 - Azure BrasilImplementando APIs seguras na nuvem - Outubro-2018 - Azure Brasil
Implementando APIs seguras na nuvem - Outubro-2018 - Azure BrasilRenato Groff
 
Interoperabilidade entre bancos de dados
Interoperabilidade entre bancos de dadosInteroperabilidade entre bancos de dados
Interoperabilidade entre bancos de dadospichiliani
 
Interoperabilidade entre bancos de dados
Interoperabilidade entre bancos de dadosInteroperabilidade entre bancos de dados
Interoperabilidade entre bancos de dadospichiliani
 
Meetup ScalaCamp Curitiba, Fevereiro de 2017, Parte II
Meetup ScalaCamp Curitiba, Fevereiro de 2017, Parte IIMeetup ScalaCamp Curitiba, Fevereiro de 2017, Parte II
Meetup ScalaCamp Curitiba, Fevereiro de 2017, Parte IIMauricio Fernandes de Castro
 
Arquitetando Soluções de Dados com PostgreSQL
Arquitetando Soluções de Dados com PostgreSQLArquitetando Soluções de Dados com PostgreSQL
Arquitetando Soluções de Dados com PostgreSQLRaul Oliveira
 
Desenvolvendo Sistema Cloud e Web Full-stack Developer
Desenvolvendo Sistema Cloud e Web Full-stack DeveloperDesenvolvendo Sistema Cloud e Web Full-stack Developer
Desenvolvendo Sistema Cloud e Web Full-stack DeveloperCesar Romero
 
SQL Day 2016 - SQL Server x Oracle
SQL Day 2016 - SQL Server x OracleSQL Day 2016 - SQL Server x Oracle
SQL Day 2016 - SQL Server x OracleFlávio Farias
 
Sobrevoando o Azure: uma introdução à nuvem Microsoft | WTT2021 - Mackenzie
Sobrevoando o Azure: uma introdução à nuvem Microsoft | WTT2021 - MackenzieSobrevoando o Azure: uma introdução à nuvem Microsoft | WTT2021 - Mackenzie
Sobrevoando o Azure: uma introdução à nuvem Microsoft | WTT2021 - MackenzieRenato Groffe
 
2019 - Natura MeetUp - Journey to Cloud and Relational Databases
2019 - Natura MeetUp - Journey to Cloud and Relational Databases2019 - Natura MeetUp - Journey to Cloud and Relational Databases
2019 - Natura MeetUp - Journey to Cloud and Relational DatabasesMarcus Vinicius Miguel Pedro
 
O Futuro do Data Dude (VS DBPro)
O Futuro do Data Dude (VS DBPro)O Futuro do Data Dude (VS DBPro)
O Futuro do Data Dude (VS DBPro)Igor Abade
 
Flask e Docker - rumo a AWS!
Flask e Docker - rumo a AWS!Flask e Docker - rumo a AWS!
Flask e Docker - rumo a AWS!Ryan Padilha
 
SQL Server – Performance e Tunning
SQL Server – Performance e TunningSQL Server – Performance e Tunning
SQL Server – Performance e Tunningpt_programar
 
Docker | Minicurso Gratuito - Azure na Prática
Docker | Minicurso Gratuito - Azure na PráticaDocker | Minicurso Gratuito - Azure na Prática
Docker | Minicurso Gratuito - Azure na PráticaRenato Groff
 
Docker de ponta a ponta: do Desenvolvimento à Nuvem - Azure Talks - Agosto-2018
Docker de ponta a ponta: do Desenvolvimento à Nuvem - Azure Talks - Agosto-2018Docker de ponta a ponta: do Desenvolvimento à Nuvem - Azure Talks - Agosto-2018
Docker de ponta a ponta: do Desenvolvimento à Nuvem - Azure Talks - Agosto-2018Renato Groff
 
Ruby on Rails - Introdução ao Framework
Ruby on Rails - Introdução ao FrameworkRuby on Rails - Introdução ao Framework
Ruby on Rails - Introdução ao FrameworkGuilherme Carlos
 

Semelhante a SQLCLR - Transformando seu SQL Server em algo muito além de um banco de dados (20)

2019 - GUOB MeetUp - Journey to Cloud and DBA Career
2019 - GUOB MeetUp - Journey to Cloud and DBA Career2019 - GUOB MeetUp - Journey to Cloud and DBA Career
2019 - GUOB MeetUp - Journey to Cloud and DBA Career
 
2014 - IFSP Votuporanga - DBA Career
2014 - IFSP Votuporanga - DBA Career2014 - IFSP Votuporanga - DBA Career
2014 - IFSP Votuporanga - DBA Career
 
Implementando APIs seguras na nuvem - Outubro-2018 - Azure Brasil
Implementando APIs seguras na nuvem - Outubro-2018 - Azure BrasilImplementando APIs seguras na nuvem - Outubro-2018 - Azure Brasil
Implementando APIs seguras na nuvem - Outubro-2018 - Azure Brasil
 
Interoperabilidade entre bancos de dados
Interoperabilidade entre bancos de dadosInteroperabilidade entre bancos de dados
Interoperabilidade entre bancos de dados
 
Interoperabilidade entre bancos de dados
Interoperabilidade entre bancos de dadosInteroperabilidade entre bancos de dados
Interoperabilidade entre bancos de dados
 
Meetup ScalaCamp Curitiba, Fevereiro de 2017, Parte II
Meetup ScalaCamp Curitiba, Fevereiro de 2017, Parte IIMeetup ScalaCamp Curitiba, Fevereiro de 2017, Parte II
Meetup ScalaCamp Curitiba, Fevereiro de 2017, Parte II
 
Arquitetando Soluções de Dados com PostgreSQL
Arquitetando Soluções de Dados com PostgreSQLArquitetando Soluções de Dados com PostgreSQL
Arquitetando Soluções de Dados com PostgreSQL
 
Desenvolvendo Sistema Cloud e Web Full-stack Developer
Desenvolvendo Sistema Cloud e Web Full-stack DeveloperDesenvolvendo Sistema Cloud e Web Full-stack Developer
Desenvolvendo Sistema Cloud e Web Full-stack Developer
 
SQL Day 2016 - SQL Server x Oracle
SQL Day 2016 - SQL Server x OracleSQL Day 2016 - SQL Server x Oracle
SQL Day 2016 - SQL Server x Oracle
 
Sobrevoando o Azure: uma introdução à nuvem Microsoft | WTT2021 - Mackenzie
Sobrevoando o Azure: uma introdução à nuvem Microsoft | WTT2021 - MackenzieSobrevoando o Azure: uma introdução à nuvem Microsoft | WTT2021 - Mackenzie
Sobrevoando o Azure: uma introdução à nuvem Microsoft | WTT2021 - Mackenzie
 
FLISOL 2017 - SQL Server no Linux
FLISOL 2017 - SQL Server no LinuxFLISOL 2017 - SQL Server no Linux
FLISOL 2017 - SQL Server no Linux
 
2019 - Natura MeetUp - Journey to Cloud and Relational Databases
2019 - Natura MeetUp - Journey to Cloud and Relational Databases2019 - Natura MeetUp - Journey to Cloud and Relational Databases
2019 - Natura MeetUp - Journey to Cloud and Relational Databases
 
O Futuro do Data Dude (VS DBPro)
O Futuro do Data Dude (VS DBPro)O Futuro do Data Dude (VS DBPro)
O Futuro do Data Dude (VS DBPro)
 
Flask e Docker - rumo a AWS!
Flask e Docker - rumo a AWS!Flask e Docker - rumo a AWS!
Flask e Docker - rumo a AWS!
 
SQL Server – Performance e Tunning
SQL Server – Performance e TunningSQL Server – Performance e Tunning
SQL Server – Performance e Tunning
 
Midgard's final presentation
Midgard's final presentationMidgard's final presentation
Midgard's final presentation
 
Docker | Minicurso Gratuito - Azure na Prática
Docker | Minicurso Gratuito - Azure na PráticaDocker | Minicurso Gratuito - Azure na Prática
Docker | Minicurso Gratuito - Azure na Prática
 
2012 - Veris - DBA Career and Oracle Database
2012 - Veris - DBA Career and Oracle Database2012 - Veris - DBA Career and Oracle Database
2012 - Veris - DBA Career and Oracle Database
 
Docker de ponta a ponta: do Desenvolvimento à Nuvem - Azure Talks - Agosto-2018
Docker de ponta a ponta: do Desenvolvimento à Nuvem - Azure Talks - Agosto-2018Docker de ponta a ponta: do Desenvolvimento à Nuvem - Azure Talks - Agosto-2018
Docker de ponta a ponta: do Desenvolvimento à Nuvem - Azure Talks - Agosto-2018
 
Ruby on Rails - Introdução ao Framework
Ruby on Rails - Introdução ao FrameworkRuby on Rails - Introdução ao Framework
Ruby on Rails - Introdução ao Framework
 

Mais de Dirceu Resende

Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...Dirceu Resende
 
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...Dirceu Resende
 
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...Dirceu Resende
 
Tipos de licenciamento do Power BI - Como o Power BI Embedded e o Microsoft F...
Tipos de licenciamento do Power BI - Como o Power BI Embedded e o Microsoft F...Tipos de licenciamento do Power BI - Como o Power BI Embedded e o Microsoft F...
Tipos de licenciamento do Power BI - Como o Power BI Embedded e o Microsoft F...Dirceu Resende
 
Power Tuning - Portfolio de BI
Power Tuning - Portfolio de BIPower Tuning - Portfolio de BI
Power Tuning - Portfolio de BIDirceu Resende
 
Quero trabalhar na área de dados. Por onde começar?
Quero trabalhar na área de dados. Por onde começar?Quero trabalhar na área de dados. Por onde começar?
Quero trabalhar na área de dados. Por onde começar?Dirceu Resende
 
Analisando grandes volumes de dados com o Power BI
Analisando grandes volumes de dados com o Power BIAnalisando grandes volumes de dados com o Power BI
Analisando grandes volumes de dados com o Power BIDirceu Resende
 
Power BI + Analysis Services - Analisando grandes volumes de dados
Power BI + Analysis Services - Analisando grandes volumes de dadosPower BI + Analysis Services - Analisando grandes volumes de dados
Power BI + Analysis Services - Analisando grandes volumes de dadosDirceu Resende
 
Power BI: DirectQuery, Live Connection e Import
Power BI: DirectQuery, Live Connection e ImportPower BI: DirectQuery, Live Connection e Import
Power BI: DirectQuery, Live Connection e ImportDirceu Resende
 
Power BI Report Server - A solução definitiva de BI e visualização de dados p...
Power BI Report Server - A solução definitiva de BI e visualização de dados p...Power BI Report Server - A solução definitiva de BI e visualização de dados p...
Power BI Report Server - A solução definitiva de BI e visualização de dados p...Dirceu Resende
 
Monitorando seu ambiente SQL server com o Power BI
Monitorando seu ambiente SQL server com o Power BIMonitorando seu ambiente SQL server com o Power BI
Monitorando seu ambiente SQL server com o Power BIDirceu Resende
 
SQL Saturday #844 - Belo Horizonte - Segurança no SQL Server: Você está deixa...
SQL Saturday #844 - Belo Horizonte - Segurança no SQL Server: Você está deixa...SQL Saturday #844 - Belo Horizonte - Segurança no SQL Server: Você está deixa...
SQL Saturday #844 - Belo Horizonte - Segurança no SQL Server: Você está deixa...Dirceu Resende
 
Power BI e Azure = Analisando dados em tempo real
Power BI e Azure = Analisando dados em tempo realPower BI e Azure = Analisando dados em tempo real
Power BI e Azure = Analisando dados em tempo realDirceu Resende
 
Power BI RoadShow #5 - Vila Velha/ES - Azure e Power BI
Power BI RoadShow #5 - Vila Velha/ES - Azure e Power BIPower BI RoadShow #5 - Vila Velha/ES - Azure e Power BI
Power BI RoadShow #5 - Vila Velha/ES - Azure e Power BIDirceu Resende
 
Webinar - Certificações Microsoft na área de dados (Data Platform)
Webinar - Certificações Microsoft na área de dados (Data Platform)Webinar - Certificações Microsoft na área de dados (Data Platform)
Webinar - Certificações Microsoft na área de dados (Data Platform)Dirceu Resende
 
1º Meetup SQL Server na Microsoft - O DBA moderno e automatizado
1º Meetup SQL Server na Microsoft - O DBA moderno e automatizado1º Meetup SQL Server na Microsoft - O DBA moderno e automatizado
1º Meetup SQL Server na Microsoft - O DBA moderno e automatizadoDirceu Resende
 
SQL Server 2017 - Novos recursos e funcionalidades
SQL Server 2017 - Novos recursos e funcionalidadesSQL Server 2017 - Novos recursos e funcionalidades
SQL Server 2017 - Novos recursos e funcionalidadesDirceu Resende
 
SQL Server ES - Visão geral sobre segurança
SQL Server ES - Visão geral sobre segurançaSQL Server ES - Visão geral sobre segurança
SQL Server ES - Visão geral sobre segurançaDirceu Resende
 
SQL Server ES - Escrevendo queries rápidas (Performance/Query Tuning)
SQL Server ES - Escrevendo queries rápidas (Performance/Query Tuning)SQL Server ES - Escrevendo queries rápidas (Performance/Query Tuning)
SQL Server ES - Escrevendo queries rápidas (Performance/Query Tuning)Dirceu Resende
 

Mais de Dirceu Resende (20)

Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
 
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
 
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
 
Tipos de licenciamento do Power BI - Como o Power BI Embedded e o Microsoft F...
Tipos de licenciamento do Power BI - Como o Power BI Embedded e o Microsoft F...Tipos de licenciamento do Power BI - Como o Power BI Embedded e o Microsoft F...
Tipos de licenciamento do Power BI - Como o Power BI Embedded e o Microsoft F...
 
Power Tuning - Portfolio de BI
Power Tuning - Portfolio de BIPower Tuning - Portfolio de BI
Power Tuning - Portfolio de BI
 
REVISAO-DP-900-V2
REVISAO-DP-900-V2REVISAO-DP-900-V2
REVISAO-DP-900-V2
 
Quero trabalhar na área de dados. Por onde começar?
Quero trabalhar na área de dados. Por onde começar?Quero trabalhar na área de dados. Por onde começar?
Quero trabalhar na área de dados. Por onde começar?
 
Analisando grandes volumes de dados com o Power BI
Analisando grandes volumes de dados com o Power BIAnalisando grandes volumes de dados com o Power BI
Analisando grandes volumes de dados com o Power BI
 
Power BI + Analysis Services - Analisando grandes volumes de dados
Power BI + Analysis Services - Analisando grandes volumes de dadosPower BI + Analysis Services - Analisando grandes volumes de dados
Power BI + Analysis Services - Analisando grandes volumes de dados
 
Power BI: DirectQuery, Live Connection e Import
Power BI: DirectQuery, Live Connection e ImportPower BI: DirectQuery, Live Connection e Import
Power BI: DirectQuery, Live Connection e Import
 
Power BI Report Server - A solução definitiva de BI e visualização de dados p...
Power BI Report Server - A solução definitiva de BI e visualização de dados p...Power BI Report Server - A solução definitiva de BI e visualização de dados p...
Power BI Report Server - A solução definitiva de BI e visualização de dados p...
 
Monitorando seu ambiente SQL server com o Power BI
Monitorando seu ambiente SQL server com o Power BIMonitorando seu ambiente SQL server com o Power BI
Monitorando seu ambiente SQL server com o Power BI
 
SQL Saturday #844 - Belo Horizonte - Segurança no SQL Server: Você está deixa...
SQL Saturday #844 - Belo Horizonte - Segurança no SQL Server: Você está deixa...SQL Saturday #844 - Belo Horizonte - Segurança no SQL Server: Você está deixa...
SQL Saturday #844 - Belo Horizonte - Segurança no SQL Server: Você está deixa...
 
Power BI e Azure = Analisando dados em tempo real
Power BI e Azure = Analisando dados em tempo realPower BI e Azure = Analisando dados em tempo real
Power BI e Azure = Analisando dados em tempo real
 
Power BI RoadShow #5 - Vila Velha/ES - Azure e Power BI
Power BI RoadShow #5 - Vila Velha/ES - Azure e Power BIPower BI RoadShow #5 - Vila Velha/ES - Azure e Power BI
Power BI RoadShow #5 - Vila Velha/ES - Azure e Power BI
 
Webinar - Certificações Microsoft na área de dados (Data Platform)
Webinar - Certificações Microsoft na área de dados (Data Platform)Webinar - Certificações Microsoft na área de dados (Data Platform)
Webinar - Certificações Microsoft na área de dados (Data Platform)
 
1º Meetup SQL Server na Microsoft - O DBA moderno e automatizado
1º Meetup SQL Server na Microsoft - O DBA moderno e automatizado1º Meetup SQL Server na Microsoft - O DBA moderno e automatizado
1º Meetup SQL Server na Microsoft - O DBA moderno e automatizado
 
SQL Server 2017 - Novos recursos e funcionalidades
SQL Server 2017 - Novos recursos e funcionalidadesSQL Server 2017 - Novos recursos e funcionalidades
SQL Server 2017 - Novos recursos e funcionalidades
 
SQL Server ES - Visão geral sobre segurança
SQL Server ES - Visão geral sobre segurançaSQL Server ES - Visão geral sobre segurança
SQL Server ES - Visão geral sobre segurança
 
SQL Server ES - Escrevendo queries rápidas (Performance/Query Tuning)
SQL Server ES - Escrevendo queries rápidas (Performance/Query Tuning)SQL Server ES - Escrevendo queries rápidas (Performance/Query Tuning)
SQL Server ES - Escrevendo queries rápidas (Performance/Query Tuning)
 

SQLCLR - Transformando seu SQL Server em algo muito além de um banco de dados

  • 1. SQLCLR: Transformando o SQL Server em algo muito além de um banco de dados DIRCEU RESENDE
  • 3. Dirceu Resende 3 • Consultor SQL Server e BI no #TeamFabricioLima • Instrutor de Power BI no Planilheiros • Microsoft MVP Data Platform • Microsoft MCP, MTA, MCSA e MCSE • Organizador do PASS Local Group SQL Server ES • Escritor do iMasters • Instrutor do https://cursos.fabriciolima.net • Autor do https://www.dirceuresende.com/
  • 4. AGENDA 4 • O que é o SQLCLR • Vantagens • Desvantagens e Restrições • Como programar e publicar o SQLCLR • Performance • Segurança • Exemplos
  • 5. O QUE É O SQLCLR? 5 • CLR: O coração do .NET Framework • SQLCLR: .NET Framework no SQL Server • Criação de objetos no banco de dados utilizando C# e VB.NET • Codifica no Visual Studio, utiliza no SQL Server Management Studio
  • 6. VANTAGENS 6 • Consulta a Webservices • Utilização de tipos de dados geo-espaciais • Expressão regular (Regexp) • Performance • Segurança (Substituição de xp_cmdshell e OLE Automation) • Visual Studio + GitHub/TFS • Conectividade
  • 7. VANTAGENS 7 • Integrações com Webservices • Manipulação de arquivos • Execução de executáveis parametrizáveis • Execução de scripts Powershell, DOS, VBScript, etc • Funções de agregação de resultados • Manipulação de ResultSets • Conexão de contexto
  • 9. DESVANTAGENS 9 • DBA com conhecimentos em desenvolvimento • Falta de cultura DevOps nas empresas • Pouca documentação sobre o assunto • SQLCLR mal codificado pode deixar sua instância instável • Não existem parâmetros opcionais em SP’s do SQLCLR • Processo de deploy apaga e recria os objetos do SQLCLR no banco
  • 10. RESTRIÇÕES 10 • Assembly suportados (http://bit.ly/2AhuANo) • SAFE, EXTERNAL_ACCESS e UNSAFE • Conexão de contexto
  • 11. COMO PROGRAMAR E PUBLICAR O SQLCLR 11 • Visual Studio > SQL Server Database Project • Class Library para organizar o código • Definir versão do .NET Framework de acordo com a versão do SQL Server • Definir nível de permissão • Codificação • Deploy
  • 12. PERFORMANCE 12 • Substituir função T-SQL UDF por CLR UDF geralmente é um bom negócio • Funções nativas geralmente são melhores que funções CLR • Código otimizado para tratamento de strings e cálculos matemáticos • Performance melhor que aplicação .NET (mais perto dos dados) • Consultas remotas sem utilizar Linked Server • Classe SqlBulkCopy
  • 13. SEGURANÇA 13 • Substituir xp_cmdshell e OLE Automation • Auditoria e Logs • Personificação de usuários • Código gerenciado • Código-fonte ofuscado
  • 15. SE INTERESSOU? SAIBA MAIS! 15 • https://www.dirceuresende.com/blog/introducao-sql-clr-common-language-runtime-sql-server/ • https://www.dirceuresende.com/banco-de-dados/sql-server/clr/ • https://sqlsharp.com/ • http://www.linhadecodigo.com.br/artigo/2956/trabalhando-com-sql-clr-inicio.aspx • https://docs.microsoft.com/en-us/dotnet/framework/data/adonet/sql/introduction-to-sql- server-clr-integration • http://www.sqlservercentral.com/stairway/105855/ • https://sqlfromhell.wordpress.com/category/trabalhando-com-sql-clr/ • https://www.codeproject.com/Tips/841439/Create-Run-Debug-and-Deploy-SQL-CLR-Function- with • http://www.intstrings.com/ramivemula/articles/step-by-step-process-in-sql-clr-implementation/ • http://www.c-sharpcorner.com/blogs/calling-web-service-from-sql-server-using-sql-clr