Post Views 14,227 views
Veja abaixo, a lista completa de posts do blog, a fim de facilitar a localização de um post específico.
Olá pessoal, Boa noite! Tudo bem com vocês? Neste post comemorativo, gostaria de agradecer imensamente a vocês, que acompanham os meus posts, comentam, compartilham, curtem.. Foi graças a vocês, que consegui chegar ao número de 100 MIL VISUALIZAÇÕES (considerando apenas a home e os posts). Pode não parecer grandes coisas, mas chegar a esse número com um blog técnico de ...
Olá pessoal, Bom dia! No post de hoje, vou demonstrar como criar um histórico de alterações de dados, seja por INSERT, DELETE ou UPDATE em uma tabela, de forma que você consiga saber qual o usuário e quando uma informação foi alterada e qual era a informação da época. Isso é muito útil para auditoria ou relatórios de BI que ...
Olá pessoal! Tudo jóia ? Depois de quase 15 dias sem postar em conta de vários trabalhos em que estava atuando, consegui um tempinho pra fazer esse post rápido pra vocês sobre um erro que encontrei ao somar uma coluna DATETIME com uma do tipo TIME. Esse tipo de operação ocorria normalmente quando o modo de compatibilidade do banco estava ...
Olá pessoal, Boa noite! Nesse post de hoje vou demonstrar como converter hora armazenada como inteiro para uma coluna do tipo time. Tive a ideia de fazer esse post quando um colega DBA me contou que ele está administrando um sistema que utiliza o banco MySQL e tem uma tabela onde o programador resolver armazenar hora em um campo inteiro, ...
Olá pessoal, Bom dia! Neste post vou fazer uma abordagem bem simples sobre algo que muitos desenvolvedores .NET buscam na internet, como eu mesmo busquei essa solução, mas que é um pouco complicado de encontrar, pois a maioria das soluções postadas não funciona. O meu problema era que eu utilizo muito uma função C# no meu CLR para listar arquivos ...
Olá pessoal, Boa noite! Neste post vou demonstrar uma ferramenta utilizada por 99.99% dos DBA's SQL Server ao redor do mundo e provavelmente você já a conhece, que é a excelente e famosíssima stored procedure sp_WhoIsActive, do Adam Machanic, que nos permite obter uma série de informações sobre as sessões ativas de uma instância SQL Server como a query que ...
Olá pessoal, Boa tarde! Neste post vou falar sobre um recurso bem requisitado para a Microsoft, e que ela ainda não criou nativamente no SQL Server, que é concatenação de dados utilizando agrupamentos, já presente em outros SGBDs como MySQL (GROUP_CONCAT), Oracle (XMLAGG) e PostgreeSQL (STRING_AGG ou ARRAY_TO_STRING(ARRAY_AGG())). Muita gente acha que esse recurso é a função CONCAT(), introduzida no ...
Olá pessoal, Boa noite! Neste post vou demonstrar pra vocês como importar, ler, tratar e exportar dados entre uma tabela do SQL Server e um arquivo XML. Essa integração entre o banco de dados e arquivos XML é um excelente recurso e grande diferencial para desenvolvedores que utilizam o SQL Server e podem facilmente ler e gerar arquivos nesse formato ...
Olá pessoal, Bom dia! Hoje vou falar sobre um problema que de vez em quando pode ocorrer com assemblies CLR que utilizem DLL's não suportadas (Ex: System.DirectoryServices) e foram compiladas com a permissão UNRESTRICTED (UNSAFE) ou EXTERNAL ACCESS. Ao tentar utilizar uma SP ou função que necessite desse tipo de acesso, nos deparamos com a seguinte mensagem de erro: A ...
Olá pessoal, Boa noite! Nesse post, vou falar sobre um recurso muito interessante do SQL Server e que funciona como um grande diferencial do banco de dados, que é a capacidade de integrar nativamente, com o Excel, permitindo consultar e manipular planilhas através do banco de dados, sem precisar de nenhum outro recurso externo. Para que isso seja possível, você ...
Olá pessoal, Boa noite! Neste post vou demonstrar como executar vários scripts em lote que estão em uma determinada pasta, gerando log de execução, com apenas uma linha de código. Essa instrução é bem simples, e permite uma série de personalizações para atender à sua necessidade. Acredito que todo DBA e boa parte dos desenvolvedores já precisaram executar vários scripts ...
Olá pessoal, Boa noite! Neste post, vou falar um pouco sobre os dois drivers OLEDB mais utilizados no SQL Server para integrações com arquivos, principalmente Excel, que são o Microsoft.ACE.OLEDB.12.0 e Microsoft.Jet.OLEDB.4.0. Uma vez instalados no servidor, eles permitem que, através do banco de dados, você consiga inserir, consultar, atualizar e apagar dados de planilhas do Excel e arquivos de ...
Olá pessoal, Boa noite! Depois de escrever meu post anterior, onde falei sobre Como importar arquivos de texto para o banco (OLE Automation, CLR, BCP, BULK INSERT, OPENROWSET), acabei me animando pra escrever a parte 2, que é o processo inverso, ou seja, exportar os dados do SQL Server para um arquivo de texto, que é exatamente esse post. Muitas ...
Olá pessoal, Bom dia! Neste post eu gostaria de mostrar pra vocês, diferentes formas de importar o conteúdo um arquivo de texto para uma variável no SQL Server, para que você possa utilizar essa informação da forma que atenda a sua necessidade. Eu já postei algumas formas de se fazer isso aqui no blog, mas em tópicos diferentes em com ...
Olá pessoal, Boa noite! Neste post vou falar sobre um erro que ocorre ao tentar utilizar o comando OPENROWSET ou OPENQUERY para acessar dados de um servidor remoto onde o linked server utilizado não tenha um usuário fixo e o usuário da conexão não pertença à role sysadmin, o que representa a maioria dos casos. (mais um erro reportado pelo ...
Olá pessoal, Boa tarde! Neste post vou demonstrar a vocês como resolver de forma simples e rápida um problema que apesar de ser simples e a mensagem ser bem clara, já vi muitos analistas não sabendo como resolver. Cannot resolve the collation conflict between "SQL_Latin1_General_CP1_CI_AI" and "SQL_Latin1_General_CP1_CS_AS" in the equal to operation. O que é uma COLLATION? O Collation nada ...
SQL Server – Como resolver o Warning Null value is eliminated by an aggregate or other SET operation
Olá pessoal, Boa noite! Neste post vou falar sobre algo que é muito comum de se encontrar no desenvolvimento de queries utilizando Transact-SQL (T-SQL) no SQL Server, que são funções de agregação ou agrupamento (Ex: SUM, MAX, MIN, AVG) em colunas que possuem valores NULL em seus registros. Quando isso acontece, é gerado um alerta com essa mensagem: Warning: Null ...
Olá pessoal, Boa noite! No post de hoje vou falar sobre um erro não muito comum que ocorre no SQL Server ao tentar executar queries utilizando Linked Server ou instruções entre servidores (Ex: OPENROWSET, OPENQUERY, etc) e o SQL Server nos retorna a seguinte mensagem: Msg 7405, Level 16, State 1, Line 45 Heterogeneous queries require the ANSI_NULLS and ANSI_WARNINGS ...
Olá pessoal, Boa tarde. Neste post vou explicar um erro bem comum para analistas de BI que utilizavam o SQL Server 2008 e após a migração para o SQL Server 2012 e 2014 se deparam com a mensagem de erro abaixo ao tentar abrir o Visual Studio 2008 (BIDS) Falha na desserialização: O elemento 'AllowedRowsExpression' no namespace 'http://schemas.microsoft.com/analysisservices/2011/engine/300/300' é inesperado ...
Olá pessoal, Bom dia! Nesse post vou mostrar a vocês como listar, ler, escrever, copiar, excluir e mover arquivos utilizando o CLR (C#), que é uma poderosa ferramenta para aumentar a gama de funcionalidades do SQL Server. Como eu crio muitas rotinas de trocas de arquivos no meu trabalho, seja importando dados de uma base externa ou exportando os dados ...
Olá pessoal, Bom dia! Hoje vou mostrar pra vocês como atualizar ou apagar um número fixo de registros de uma tabela, que pode ser utilizado para manipular os dados da tabela sem travá-la por muito tempo durante a execução das queries. Geração de uma base simples Vou demonstrar como criar a base de testes que iremos utilizar neste post IF ...
Olá pessoal! Boa noite! Hoje me deparei com um problema crítico de performance em um ambiente de produção, onde uma determinada query (que pode ser executada várias vezes por segundo) estava apresentando um problema de lentidão (demorava entre 21 e 30 segundos por execução) já antigo e conhecido, mas que hoje foi o dia de resolver isso de uma vez ...
Olá pessoal, Boa tarde! No post de hoje vou demonstrar como utilizar sequences em user defined functions como scalar, table-valued e aggregate. Não sabe o que é uma SEQUENCE? Saiba mais sobre esse objeto acessando o post Trabalhando com Sequences no SQL Server Por padrão, o SQL Server não permite que as propriedades NEXT VALUE FOR da sequence seja utilizada ...
Olá pessoal! Bom dia! Hoje me deparei com uma situação em que a utilização das sequences, velhas conhecidas minhas do Oracle e que a partir do SQL Server 2012 foram introduzidas no SGBD da Microsoft, vi uma solução perfeita para o problema que eu estava enfrentando. Introdução - Detalhando o Problema Esse problema consistia em uma tabela com dezenas de ...
Olá pessoal, Boa tarde! Neste post vou demonstrar como podemos acessar o registro do Windows e obter informações úteis sobre a instância SQL Server. Caso você queira saber como consultar qualquer chave de registro do Windows, bem como realizar alterações em chaves e valores, acesse o post SQL Server – Como ler, listar, criar, alterar e apagar chaves do Registro ...
Olá pessoal, Boa tarde! Neste post, vou demonstrar como se obter informações importantes sobre vários eventos que ocorrem na instância SQL Server sem precisar ativar nenhum controle ou auditoria, apenas lendo as informações já coletadas pelo trace padrão do SQL Server. Embora eu já tenha falado sobre isso em alguns outros posts, resolvi fechar esse assunto e fazer um post ...
Olá pessoal, Boa tarde! Neste post vou demonstrar como resolver um problema comum no desenvolvimento de bibliotecas CLR que ocorre quando você faz o restore de um database CLR vindo de outro servidor. Apesar da solução sem bem simples, quando se depara com esse problema pela primeira vez, você pode demorar um pouco para resolver. Identificando o problema e entendendo ...
Olá pessoal, Boa tarde! Neste post vou demonstrar como identificar os eventos de DDL e DCL que ocorrem na instância SQL Server. Isso nos permite identificar qual o usuário que criou/alterou/apagou um objeto, ou quem adicionou/removeu um usuário em uma role de sistema ou role de database e várias outras coisas sem a necessidade de criar nenhum controle ou monitoramento ...
Olá leitores, Boa tarde! Neste post vou demonstrar como monitorar o crescimento automático de espaço de um database (autogrowth) no SQL Server, de modo que seja possível identificar o usuário que causou o crescimento e quando os eventos de crescimento automático ocorreram no database. A obtenção desses resultados é possível graças a função de sistema ::fn_trace_gettable, que permite consultar os ...
Olá pessoal, Bom dia! Na próxima quinta-feira, 7 de abril, a Microsoft irá realizar um evento em São Paulo para o lançamento do SQL Server 2016 no Brasil. A cada nova versão, estamos vendo grandes avanços e melhorias no SGBD, que está se tornando cada vez mais completo, rápido, seguro e à frente das outras soluções de banco de dados ...
Olá leitores, Boa noite! Neste post vou demonstrar rapidamente como recuperar o maior valor entre múltiplas colunas em uma tabela do SQL Server. Já vi várias soluções para essa necessidade, mas será que você está utilizando a mais performática dentre elas ? Gerando uma massa de testes Para facilitar a visualização dos resultados, vamos criar alguns dados de teste: IF ...
Olá pessoal, Boa noite! Neste post vou mostrar pra vocês como identificar a data de último acesso de uma tabela ou view e a data da última execução de uma procedure no SQL Server. Isso é especialmente útil pra identificar tabelas que não estão sendo utilizadas ou mesmo entender o quanto são utilizadas. Para isso, o SQL Server nos disponibiliza ...
Olá pessoal, Bom dia! Neste post vou mostrar pra vocês um problema muito comum durante o desenvolvimento de projetos SQL CLR, que consiste na mensagem de erro abaixo ao tentar executar qualquer operação com arquivos: Mensagem de erro completa: Msg 6522, Level 16, State 1, Line 1 A .NET Framework error occurred during execution of user-defined routine or aggregate "fncArquivo_Ler": ...
Olá pessoal, Boa tarde! Neste post vou compartilhar com vocês um problema que eu tive durante o desenvolvimento de algumas rotinas do CLR em C# em um novo ambiente de criei utilizando o VMware, Windows 7 x64 e o Visual Studio 2015 Community Edition. O problema O problema ocorre quando eu tento realizar o Build ou publicar o meu assembly ...
Olá pessoal, Boa tarde! Neste post estarei demonstrando pra vocês como realizar requisições POST e GET (na verdade, pode ser qualquer tipo) em um banco de dados SQL Server utilizando o SQL CLR. Se você não sabe o que é CLR ou tem dúvidas sobre como utilizar, como publicar, etc, veja este post aqui. Eu já havia feito alguns posts ...
Olá pessoal, Bom dia! Neste post, vou demonstrar pra vocês uma query que permite listar várias propriedades dos Jobs do SQL Server Agent, incluindo os agendamentos, steps, comandos executados, categorias e muito mais. Isso é especialmente útil pra auditoria e inventário de rotinas. Procurei criar um script completo, listando praticamente todas as propriedades dos Jobs, Steps e Shedules, onde o ...
Olá pessoal, Bom dia! Neste post, que será o número 100 do blog, eu gostaria de falar sobre algo que eu particularmente gosto muito no SQL Server, que é a criação de rotinas .NET dentro do banco de dados SQL Server. Sim, estamos falando a CLR (Common Language Runtime). Introdução Presente no banco de dados SQL Server desde a versão ...
Olá pessoal, Bom dia! Hoje me deparei novamente com um problema bobo e fácil de resolver, mas que incomoda bastante ao utilizar máquinas virtuais no VMware, que é quando ocorre a mensagem abaixo: Adapter Ethernet0 may not have network connectivity.MAC address 00:0C:29:58:61:19 of adapter Ethernet0 is within the reserved address range or is in use by another virtual adapter on ...
Olá pessoal, Boa noite! Venho trazer pra vocês um artigo muito interessante que eu encontrei na internet, escrito pelo Cláudio Florenzano para o site techdicas.net.br, comentando sobre qual a diferença entre os cursos superiores da TI. Eu mesmo não sabia que haviam tantos cursos superiores na área de TI, que ainda é muito valorizada através de certificações. Alguns amigos meus ...
Olá pessoal, Boa tarde! Neste post de hoje vou trazer algo muito legal, que é uma stored procedure Transact-SQL onde é possível consultar e rastrear as informações de encomendas e objetos utilizando dados do próprio site dos Correios no SQL Server. Para isso, vou utilizar o objeto MSXML2.ServerXMLHTTP e procedures OLE Automation. Isso é bem útil para empresas de e-Commerce ...
Olá pessoal, Boa tarde! Neste post vou demonstrar uma table-valued function bem legal que permite quebrar um string em uma tabela de substrings utilizando um delimitador no SQL Server. O que isso quer dizer? Bom, isso faz como que você tenha uma string e a função irá transformar essa string em uma tabela utilizando um separador. Nessa tabela, cada registro ...
Olá pessoal, Tudo bom? No primeiro post de 2016, resolvi trazer um uso legal de procedures OLE Automation para consultar informações de um endereço através do CEP ou retornar o CEP (e outras informações) a partir de um endereço. Isso eu já havia demonstrado antes nos posts Como consultar Informações de um CEP no SQL Server (onde utilizava o serviço ...
Olá, pessoal Boa noite!! No último post do ano, gostaria de agradecer a todos vocês que visitam e comentam nos posts que eu publico, pois são vocês que me motivam a continuar escrevendo e estudando para criar conteúdo de qualidade. Em julho de 2014, resolvi criar este blog, seguindo o exemplo do meu colega de trabalho Fabricio Lima, onde eu ...
Olá pessoal, Boa tarde! Neste post vou demonstrar como recuperar a senha do usuário Administrador do SQL Server (sa), caso ela tenha sido perdida ou alterada por um usuário mal intencionado ou você simplesmente não lembra mais da senha. Muitos DBA's menos experientes podem ficar desesperados com essa situação e recorrer à reinstalação do produto para recuperar essa senha e ...
Olá pessoal! Bom dia! Estava procurando os links para baixar o Visual Studio 2015 com o SQL Server 2014 e não consegui encontrar em uma única página as URL's para isso e isso me motivou a fazer esse post para ajudar vocês. Em 20 de julho de 2015, a Microsoft hospedou um evento online e lançou o Visual Studio 2015 ...
Olá pessoal! Boa noite. Neste post vou demonstrar como criar uma stored procedure para retornar uma lista de CPF's ou CNPJ's válidos para testes de ambientes e sistemas. Você pode capturar o resultado da procedure e gravar e uma tabela temporária e testar seus sistemas facilmente agora. Caso você precise de uma função que valide CPF, CNPJ, E-mail, Telefone e ...
Olá pessoal! Boa noite. Neste post vou demonstrar como realizar conversões entre números decimais (base 10) para números hexadecimais (base 16) e vice-versa utilizando funções simples do SQL Server para realizar essas tarefas e no final, vou disponibilizar uma função bem interessante que permite converter um número na base 10 para outro número de qualquer base (base 2 a 99) ...
Olá pessoal! Bom dia! Neste post vou demonstrar como converter um número normal (de base 10) para um algarismo romano (X, XVII, etc) utilizando uma função Transact-SQL no SQL Server que encontrei no blog do Advaldo Paiva. Por ser uma função, podemos aplicá-la para uma conversão simples ou para atualizar os dados de uma tabela, por exemplo. Código da função: ...
Olá pessoal, Boa tarde! Nesses últimos dias estou meio sem tempo, mas para não ficar sem atualizar aqui vou fazer mais um post rápido demonstrando como como converter milissegundos, segundos ou minutos para TIME no SQL Server. Muitas vezes em nossas rotinas, principalmente quando criamos logs de execução de rotinas medindo o tempo gasto para o processamento, temos a necessidade ...
Olá pessoal, Bom dia! Neste post rápido vou demonstrar como identificar as tabelas que possuem colunas IDENTITY no SQL Server. Muitas vezes, precisamos identificar quais tabelas são essas, qual o valor atual do identity e qual o valor do incremento (seed) da tabela e é claro que não vamos olhar tabela por tabela. Para isso, podemos rapidamente identificar essas informações ...
Olá pessoal, Bom dia! Neste post vou mostrar a vocês como encontrar dependências entre objetos de vários níveis de hierarquia no SQL Server utilizando queries Transact-SQL, simulando um comportamento semelhante ao que nos é apresentado na interface do Management Studio. Utilizando o SQL Server Management Studio Essa é a forma mais fácil de realizar esse mapeamento, pois não exige nenhum ...
Olá Pessoal! Boa noite! Neste post vou demonstrar como criar auditorias de servidor (Server Audit) no SQL Server. Este recurso é muito interessante para auditar ações DDL e/ou DML (Database Audit Specification) realizadas por um usuário ou aplicação ou mesmo a própria instância (Server Audit Specification). Criando uma auditoria via interface (GUI) Abra o SQL Server Management Studio, selecione a ...
Olá pessoal, Bom dia! Neste post vou comentar sobre a estrutura de índices, que ajudam e muito a otimizar consultas, reduzindo IO e CPU e retornando as informações mais rapidamente. Entretanto, muito cuidado ao criar os índices, uma vez que eles ocupam bastante espaço em disco e se não forem bem modelados, podem não ser tão eficazes. Introdução Um índice ...
Olá pessoal, Bom dia! Introdução Neste post vou demonstrar para vocês como identificar, apagar e recriar Foreign Keys (FK) de uma tabela no SQL Server. Muitas vezes precisamos excluir uma tabela ou apenas alterar uma coluna, mas o banco nos envia uma mensagem de erro informando que existe uma constraint de chave estrangeira para essa coluna, impossibilitando o DBA de ...
Olá pessoal, Bom dia! Neste post vou demonstrar como ativar/desativar o recurso de DAC (Dedicated Administrator Connection) remoto da instância SQL Server, verificar se o recurso está ativo e como utilizá-lo. Introdução - O que é o DAC ? Imagine na seguinte situação: Todos os workers threads da instância estão em uso e não é permitida mais a conexão com ...
Olá pessoal, Boa tarde! Neste post vou mostrar a vocês como resolver rapidamente problemas de assinatura de DLL Assembly do .NET Framework no SQL Server. Esse erro ocorre quando alguma rotina do SQLCLR utiliza alguma DLL do Framework .NET do servidor e após alguma atualização de sistema, o usuário do CLR perde as permissões de Unsafe Assembly ou alguma DLL ...
Olá pessoal, Boa tarde! Estava dando uma lida nos blogs de outros DBA's e profissionais de TI que sigo e vi um post muito legal no blog do Vithor Silva sobre treinamentos e cursos grátis da Microsoft e resolvi compartilhar com vocês. Sou um profundo aprendiz, aficionado por tecnologia e sempre procurando mais conhecimento para me aprimorar. Acredito que esse ...
Olá, pessoal! Bom dia. Neste post, irei demonstrar como verificar as permissões de um usuário e/ou database no SQL Server, além de permitir facilmente remover esses acessos ou conceder novamente. Caso você queira é replicar as permissões de um usuário entre instâncias diferentes, veja se o artigo SQL Server – Como copiar/replicar as permissões de um usuário pode te ajudar ...
Olá pessoal, Bom dia! Neste post vou mostrar como identificar a porta utilizada pela instância do SQL Server. Como vocês devem saber, a porta padrão para conexões TCP/IP é a 1433 e para conexões UDP é a 1434. Entretanto, se você possui mais de uma instalação no mesmo servidor, será possível utilizar essas portas apenas para uma das instâncias, fazendo ...
Olá pessoal! Boa noite! Neste post, vou comentar sobre algumas procedures estendidas (extended procedures) do SQL Server e que são muito úteis. Até este post, não encontrei nenhuma documentação oficial da Microsoft sobre isso resolvi comentar sobre ela, além de demonstrar alguns exemplos. Uma procedure estendida (XP) é um link para uma biblioteca dinâmica (DLL), programada utilizando a API SQL ...
Olá, pessoal! Boa tarde! Neste post rápido, vou mostrar a vocês como executar uma query simples na view de sistema msdb.dbo.syssessions para identificar a data e o horário de cada inicialização do SQL Agent da instância, responsável pelo controle e monitoramento dos Jobs do SQL Server (além de outras coisas). Em um ambiente normal, geralmente o SQL Agent é iniciado ...
Olá, pessoal! Boa tarde! Neste post, vou demonstrar mais uma vez a utilização de OLE Automation no SQL Server para consumir os dados de um serviço da Web. Dessa vez, vou consumir o serviço dos Correios para calcular prazo e valor do frete (muito utilizado pra e-Commerce). Conhecendo o WebService dos Correios Antes de iniciarmos a criação da Stored Procedure ...
Olá pessoal! Boa tarde! Estava usando a minha VM para criar o meu post anterior (Como consultar informações de um CEP no SQL Server) e tive alguns problemas para acessar a internet. O Problema Sempre usei minhas VM's com o modo de conexão NAT (Network Address Translation), que é o mais simples e fácil de todos de configurar, funciona bem ...
Olá pessoal, Bom dia. Neste post rápido, vou demonstrar mais uma vez o uso de procedures OLE Automation para consumir informações na Web e trazer para o nosso banco SQL Server, de forma que possamos trabalhar com essa informação conforme nossa necessidade. Caso você queira utilizar a API do Bemean, que retorna os dados no formato JSON, veja mais no ...
Olá, visitantes do Blog! Boa tarde! Neste post vou demonstrar como identificar as sessões inativas, ou seja, que não estão executando uma query e que possuem transações abertas. Essa situação pode gerar uma série de problemas no seu banco de dados, desde travar outras sessões que estão tentando acessar o mesmo recurso até evitar o backup automático da transaction log ...
Olá pessoal, Boa tarde! Neste post bem rápido, vou mostrar a vocês a utilidade da view de sistema dm_exec_sessions, onde podemos consultar as sessões conectadas na nossa instância do SQL Server. Como identificar os usuários conectados na instância SELECT session_id, login_time, host_name, program_name, client_interface_name, login_name, status, cpu_time, memory_usage, last_request_start_time, last_request_end_time, transaction_isolation_level, lock_timeout, deadlock_priority FROM sys.dm_exec_sessions WHERE login_name NOT IN ('sa', ...
Olá Pessoal, Boa tarde. Depois de um tempinho sem postar, hoje vou demonstrar nesse post como identificar os jobs em execução via Query no SQL Server. Com essa query, é possível identificar o nome e id do job, step que o job está executando, qual query ele está rodando agora e há quanto tempo. Como identificar os jobs em execução ...
Olá Pessoal, Bom dia. Neste post irei mostrar como realizar diversos cálculos com dias úteis no SQL Server, criando uma tabela com todas as informações já calculadas e restando apenas realizar alguns SELECTs simples para obter essas informações. Pré-Requisito: Tabela de feriados Um pré-requisito para esse post, é você já ter criado a tabela de feriados que eu comentei no ...
Olá Pessoal, Boa noite. Neste post, vou deixar alguns links de ebooks para baixar que encontrei no blog do meu colega Fabrício Lima, também DBA e que podem ser muito úteis para vocês: Free ebook – Defensive Database Programming with SQL Server: Download Free ebook – How to Become an Exceptional DBA: Download Free ebook – Mastering SQL Server 2005 ...
Olá Pessoal, Boa tarde. Neste post rápido, irei demonstrar como criar uma tabela com os feriados nacionais, estaduais e móveis do Brasil. Essa tabela é muito útil para identificar se uma determinada data é feriado ou não, e também é um pré-requisito para a criação da tabela de dias úteis do post Como calcular dias úteis no SQL Server. Uma ...
Olá Pessoal, Bom dia. Neste post irei comentar rapidamente sobre uma função UDF (User Defined Function) que costumava utilizar para remover acentos e caracteres especiais de uma string no SQL Server. Removendo acentos Existem várias formas de se fazer isso, como utilizando uma UDF para fazer esse trabalho, uma função SQLCLR ou a que eu prefiro, que é utilizando o ...
Olá pessoal, Boa noite! Nesse post vou dar uma dica bem rapidinha de como consumir a API do Google Maps usando OLE Automation no SQL Server para recuperar mais informações de uma cidade apenas pelo seu nome. Não sabe como ativar OLE Automation na sua instância? Veja mais no post Habilitando OLE Automation via T-SQL no SQL Server. Implementação da ...
Olá Pessoal, Boa tarde. Neste post irei demonstrar como ler strings JSON e converter para uma tabela e converter os dados de uma tabela para JSON e XML utilizando apenas T-SQL. Essa dica é bem útil quando você está utilizando uma versão anterior ao SQL Server 2016 e precisa ler strings Json. Caso você esteja utilizando o SQL Server 2016 ...
Olá pessoal, Boa noite. Hoje venho trazer uma dica rápida para quem já queria fazer um restore rápido, um alter database ou qualquer comando que necessite de um lock exclusivo em um database, mas haviam usuários executando queries no banco, e aí você recebe uma mensagem de erro como essa SQL Server: Msg 3101, Level 16, State 1, Line 2 ...
Olá pessoal, Boa tarde! Neste post irei demonstrar pra vocês, alguns recursos legais de triggers de logon como criar um log de auditoria para cada usuário que se conecta no seu banco de dados, bloquear conexões vindas de um usuário/IP/Hostname e bloquear conexões em um determinado horário. AVISO Antes de mais nada, gostaria de alertá-los sobre o PERIGO ao se ...
Olá pessoal, Bom dia. Introdução Hoje venho trazer pra vocês um recurso muito útil na vida dos DBA's SQL Server, tanto pra auditoria de alteração/criação/exclusão de objetos quanto para um "versionamento" de SP's, Functions, etc, que é a utilização de triggers para logar todas as alterações a nível de DDL em objetos, inclusive sendo possível gravar a query utilizada para ...
Prezados, Boa tarde. Neste post irei demonstrar como exportar os dados de uma tabela do SQL Server para um arquivo HTML ou uma variável do tipo VARCHAR, onde serão apresentadas duas Procedures bem parecidas, onde uma gera o HTML em forma de arquivo físico no disco e a outra grava o HTML gerado em uma variável de OUTPUT. Também fiz ...
Olá Pessoal, Bom dia. Hoje venho trazer pra vocês, a solução de algumas perguntas que eu me fazia nos ambientes em que trabalho, mas que eu não tinha como responder: - Quem criou/alterou/excluiu um determinado job? - Apaguei sem querer um Job.. Como faço pra recriá-lo rapidamente, sem precisar de restaurar backup ? - Alguém desabilitou um determinado Job.. Quem ...
Pessoal, Bom dia. Hoje vou fazer um post rápido pra vocês e que é muito útil no dia a dia, principalmente pra quem cria rotinas de integração com Sefaz, Receita e outros órgãos do governo e precisam de uma rotina para validar a inscrição estadual para todos os estados do Brasil, ou mesmo para quem quer ter esse campo em ...
Olá Pessoal, Bom dia. Hoje venho trazer mais um post rápido de um problema que encontrei enquanto tentava executar um script XMLA para processamento de Cubos Microsoft (isso ocorre com queries T-SQL também), onde a conexão atingia o tempo limite (10 minutos) e era encerrada pelo servidor com a seguinte mensagem: A solicitação XML for Analysis expirou antes de ser ...
Olá Pessoal, Bom dia. Hoje vou mostrar rapidamente pra vocês, como converter as colunas run_date e run_time da tabela de catálogo do banco msdb.dbo.sysjobhistory para datetime. Atualmente, a coluna run_date é um varchar no formato yyyymmdd (Ex: 07/05/2015 = 20150507), e a coluna run_time é uma hora no formato hmmss (Ex: 08:27:00 = 82700). Até dá pra entender visualmente o ...
Olá pessoal, Boa tarde! Passando aqui pra deixar uma dica rápida pra quando você está rodando aquele backup demorado e quer saber o % que já foi concluído e ter uma idéia (estimativa) de quanto tempo falta para terminar a execução do comando. Para realizar essa tarefa, podemos consultar essas informações na view de catálogo dm_exec_requests, como demonstrado na query ...
Sem dúvida, o SEO (Search Engine Optimization) é um dos principais fatores de estudo dos desenvolvedores Web atualmente, uma vez que ele é responsável diretamente pela forma como o website atrairá novos visitantes e pelo posicionamento do mesmo em mecanismos de busca como o Google, Yahoo, Bing e outros. Há algum tempo atrás, os desenvolvedores Web não tinham preocupação com ...
Neste post irei demonstrar como evitar um dos grandes problemas de SEO, que é o conteúdo duplicado, ou seja, duas ou mais URL's do seu website apresentem o mesmo conteúdo. Para o SEO, isso é péssimo, pois os cliques e views são contabilizados separadamente de acordo com a forma de escrita da sua URL. Apesar de parecer apenas um detalhe, ...
Neste post irei demonstrar como comprimir conteúdo de texto em suas aplicações web ou Websites, de modo que o tamanho trafegado seja menor e, consequentemente, o tempo de carregamento da sua aplicação também. Para tal, utilizaremos o arquivo de configuração do servidor Web Apache, o .htaccess. Lembre-se que arquivos como vídeos, músicas e outros arquivos binários, provavelmente já são comprimidos ...
Durante este post, irei demonstrar como criar e restaurar backups no Oracle Database utilizando as ferramentas exp e imp, e que permitem gerar backups completos de um owner e restaurar em outro servidor. Definição das variáveis de ambiente no Windows SET ORACLE_SID=ORCLTESTE SET ORACLE_HOME=C:\oracle\product\11.2.0\dbhome_1 SET NLS_LANG=AMERICAN_AMERICA.AL32UTF8 Definição das variáveis de ambiente no Linux EXPORT ORACLE_SID=ORCLTESTE EXPORT ORACLE_HOME=/oracle/product/11.1.0/db_1/ EXPORT NLS_LANG=AMERICAN_AMERICA.AL32UTF8 Parâmetros ...
Hoje venho trazer um post bem rápido, mas que é um recurso bem legal do SQL Server Managment Studio que um DBA da empresa que eu trabalho (Tiago Neves) me mostrou, e que permite alterar a cor da barra de status de acordo com o servidor que estamos nos conectando. Pode parecer algo bobo, mas que no dia a dia ...
Muitas pessoas me perguntam: "É possível enviar e-mails pelo SQL Server?" ou "Como enviar e-mails pelo SQL Server?". Neste post irei lhes mostrar como habilitar o envio de e-mails no seu servidor SQL Server e como enviar e monitorar os e-mails enviados. Um recurso que é muito utilizado na maioria dos sistemas, é o envio de e-mails automáticos contendo notificações, ...
Neste post irei falar um pouco sobre o método de compressão de dados do SQL Server e como podemos utilizar esse recurso para compactar todos os objetos de um database. A compressão de dados pode ser configurada para os seguintes objetos de banco de dados: Para uma tabela que é armazenada como um heap. Para uma tabela que é armazenada ...
Neste post estarei demonstrando como realizar a instalação do Oracle Client 10g, junto com o SQL*Plus. Recentemente fiz um post sobre a instalação do Oracle Database 11g, e atualmente já estamos na versão 12c (há uns 2 anos), mas a última versão do SQL*Plus como aplicativo foi a do 10g. A partir da versão 11g, o binário do software passou ...
Introdução Suponha que você desenvolveu um sistema para uma empresa e que em determinado momento, essa empresa solicitou a você, que este sistema necessite enviar determinados e-mails para seus clientes toda segunda-feira e o seu sistema deve realizar backups automáticos toda sexta-feira, às 23:00. E agora? Como fazemos isso? O que é cron Pois bem, essa é a solução para ...
O jQuery, sem sombra de dúvidas, revolucionou a forma como escrevemos códigos na linguagem Javascript. Não somente pela facilidade, mas também pela grande variedade de recursos que podemos dispor ao utilizar este excelente framework javascript, que vão desde simples edições de DOM até requisições Ajax e tratamento de eventos. Utilizada por boa parte dos desenvolvedores web atualmente, esta framework vem ...
Neste post, irei demonstrar como instalar o Oracle Database 11g no ambiente Windows, o que é muito utilizado atualmente pela facilidade e praticidade do sistema operacional da Microsoft. Execute o arquivo setup.exe para iniciar a instalação Na primeira tela de instalação, podemos definir um e-mail para receber atualizações da Oracle. Este passo pode ser ignorado, caso você deseje. Na etapa ...
Fala pessoal! Tudo tranquilo, né ? Hoje vou mostrar a vocês como executar uma query em todos os databases de uma instância SQL Server. Muitas vezes isso é útil para criação de rotinas de monitoramento de espaço, rodar um checkdb em todos os bancos e muitas outras necessidades do dia-a-dia. Para realizar essa atividade existem várias formas diferentes de programar, ...
Olá pessoal, Tudo em paz ? Um pouco sobre codificação Neste post irei demonstrar um pouco mais sobre a função HASHBYTES do SQL Server, que permite trabalhar com funções criptográficas baseadas em HASH, onde uma vez codificado, não é possível obter a string original novamente. Caso você queira saber mais sobre criptografia utilizando o algoritmo Base64, que permite codificar e ...
Olá Pessoal, Boa tarde! Hoje vou fazer um post rápido, mas bem interessante para quem tem a necessidade de criptografar e/ou descriptografar strings utilizando o algoritmo Base64 no SQL Server. Muita gente não sabe, mas o SQL Server possui recursos para trabalhar com essa criptografia nativamente, sem precisar escrever toda a lógica para isso. Um pouco sobre o Base64 Base64 ...
Olá pessoal, Tudo bem ? Hoje estarei apresentando algumas funções que vão ajudá-los a melhorar validações em suas rotinas, como por exemplo, validar de um CPF da sua base é válido ou não. Validação de CEP Essa é uma validação simples, que apenas verifica se a quantidade de caracteres está correta e se todos a string informada possui 8 caracteres ...
Olá, leitores! Tudo bem ? Hoje vamos falar sobre uma dúvida clássica de desenvolvedores e alguns DBA's que estão começando agora. Afinal, qual a diferença entre DELETE, TRUNCATE TABLE e DROP TABLE ? Quando devemos usar cada um destes comandos ? Para ilustrar essa diferença, vou apresentar a tabela abaixo: DELETE TRUNCATE DROP Apaga os dados de uma tabela É ...
Olá Pessoal, Tudo certo ? Neste post vou falar um pouco sobre um problema que tenho visto bastante nas bases em que tenho prestado consultoria, que são os usuários órfãos na base. Um pouco sobre permissões no SQL Server No SQL Server, existe o conceito de Login, que é o usuário a nível de instância de banco e também é ...
Olá, Pessoal! Tudo bem ? Hoje vou falar sobre um problema que encontrei recentemente, onde uma rotina utilizava a view de catálogo sys.syscolumns para obter informações das colunas de uma tabela Fato (BI) e a partir de um determinado momento, ao tentar executar a query SELECT * FROM sys.syscolumns, o SQL Server retornava a seguinte mensagem: Msg 220, Level 16, ...