Arquivo mensal: janeiro 2013

Utilizando Events Notifications em conjunto com a Função EventData() e a Linguagem XQuery no Microsoft SQL Server 2008 R2 e 2012.


Pessoal, boa tarde!

Após o meu período de férias que a mais de 2 anos eu não aproveitava, estou voltando a minha rotina normal de trabalho, como DBA, Consultor e Professor Universitário. Além disso, é claro, com as minhas atividades relacionadas à Comunidade Microsoft em especial ao Mundo de Banco de Dados e o SQL Server.

Pois bem, ainda não estou no mesmo ritmo, então vou começar com uma pequena dica, abordando um pouco sobre Events Notifications, Função EventData() e a Linguagem XQuery.

Antes de apresentar qualquer código, quero destacar um pouco sobre cada recurso:

  • Events Notifications: Notificações de eventos executam em resposta a uma variedade de eventos do rastreamento do SQL e instruções de DDL (linguagem) de definição de dados Transact-SQL, enviando informações sobre esses eventos para um serviço do Service Broker.

As Notificações de eventos podem ser usadas para fazer o seguinte:

  • Registrar e revisar as alterações ou atividades que ocorrerem no banco de dados.
  • Executar uma ação em resposta a um evento em forma assíncrona em vez de síncrona.

Quando utilizamos Notificações de eventos podemos oferecer uma programação alternativa para uso de gatilhos DDL e rastreamento do SQL. Os eventos são executados assincronamente, fora do escopo de uma transação.

Portanto, ao contrário de gatilhos DDL, notificações de evento podem ser usadas dentro de um aplicativo de banco de dados para responder a eventos sem usar quaisquer recursos definidos pela transação imediata, como também, para executar uma ação dentro de uma instância do SQL Server em resposta a um evento do rastreamento do SQL.

As Informações do evento são entregues para o Serviço Service Broker como uma variável de tipo xml, que fornece informações sobre quando ocorre um evento, sobre o objeto de banco de dados afetado, a instrução de lote Transact-SQL envolvida e outras informações.

  • Função EventData():Retorna informações sobre eventos de servidor ou banco de dados. EVENTDATA é chamado quando uma notificação de evento é acionado, e os resultados são retornados para o corretor do serviço especificado. EVENTDATA também pode ser usado dentro do corpo de um gatilho DDL ou de logon.
  • Linguagem XQuery: A Transact-SQL oferece suporte a um subconjunto da linguagem da XQuery usado para consultar o tipo de dados xml. Essa implementação da XQuery está alinhada com o Working Draft de julho de 2004.

A XQuery é uma linguagem que pode consultar dados XML estruturados ou semi-estruturados. Com o suporte ao tipo de dados xml fornecido no Mecanismo de Banco de Dados, os documentos podem ser armazenados em um banco de dados e consultados usando a XQuery.

Outra característica, que a XQuery apresenta, relaciona-se com a linguagem XPath existente, com suporte adicional para uma melhor iteração, melhores resultados de classificação e com a capacidade de construir o XML necessário.

Legal, agora que conhecemos um pouquinho sobre os recursos que vamos trabalhar, suas funcionalidades e importância, podemos começar a se envolver com o nosso código de exemplo, como de costume dividido em algumas partes para facilitar o entendimento e compreensão de todos.

Parte 1

O primeiro passo será a criação da Tabela responsável em armazenar as informações referentes às transações que estaremos trabalhando. Esta tabela será denominada DDL_Transacoes.

Abaixo apresenta o Código 1, referente a estrutura da tabela DDL_Transacoes:

— Código 1 – Criando a Tabela DDL_Transacoes —

Create Table DDL_Transacoes

(TransID Int Identity(1,1) Primary Key,

 DataTransacao DateTime Default GetDate(),

 UsuarioTransacao VarChar(100) Default User_Name(),

 LoginTransacao Varchar(100) Default Suser_Name(),

 LoginUsuarioSQLTransacao Varchar(100) Default Original_Login(),

 TipoEvento NVarchar(200) Null,

 Objeto NVarchar(200)

 TipoObjeto NVarchar(200) Null,

 Comando_TSQL NVarchar(Max) Null)

Observe que as colunas TipoEvento, Objeto, TipoObjeto e Comando_TSQL foram definidas com o Tipo de Dados NVarChar, o que vai possibilitar armazenar valores que contenham qualquer tipo de caractere e formato, inclusive XML.

Parte 2

Após a criação da tabela, partiremos para o próximo passo, que consiste na criação do Trigger DDL, denominado Trigger_DDL_Transacoes, sendo este o principal recurso que estaremos utilizando nesta dica.

Vale ressaltar, que os Triggers DDL são um tipo especial de gatilho acionados em resposta às instruções de DDL (Linguagem de Definição de Dados). Eles podem ser usados para executar tarefas administrativas no banco de dados, como auditoria e regulação de operações de banco de dados.

Nesta parte do código nosso Trigger DDL, estará sendo chamado quando os Eventos em Nível de Banco de Dados referente a comandos e instruções de definição de dados venham a ser executadas.

A seguir apresento o Código 2, responsável pela criação do Trigger DDL:

— Código 2 – Criação do Trigger – Trigger_DDL_Transacoes —

Create Trigger Trigger_DDL_Transacoes

On Database

For DDL_DATABASE_LEVEL_EVENTS

As

 Begin

  Set NoCount On

  Declare @DadosXML XML

  Set @DadosXML=EVENTDATA()

  Insert Into DDL_Transacoes(TipoEvento,Objeto,TipoObjeto,Comando_TSQL)

                                Values(@DadosXML.value(‘(EVENT_INSTANCE/EventType)[1]’,’NVarchar(200)’) ,

                                           @DadosXML.value(‘(EVENT_INSTANCE/ObjectName)[1]’,’NVarchar(200)’) ,

                                                                                                                           @DadosXML.value(‘(EVENT_INSTANCE/ObjectType)[1]’,’NVarchar(200)’) ,

                                                                                                                           @DadosXML.value(‘(EVENT_INSTANCE/TSQLCommand/CommandText)[1]’,’NVarchar(Max)’))

 End 

Muito bom, nosso ambiente já esta pronto, a tabela DDL_Transacoes e a Trigger Trigger_ DDL_Transacoes estão criados e preparados para serem utilizados em nossos cenários de teste.

Mais uma vez quero destacar que esta Dica não tem a finalidade de apresentar ou ilustrar uma forma de auditoria, o objetivo é destacar como estes recursos podem ser utilizados em conjunto, construíndo em ambiente de trabalho simples, mas com recursos que podem ser de extrema importância nos processos de definição de objetos.

Cenários de Teste

Para demonstrar o funcionamento dos objetos que criamos anteriormente vamos realizar as operações básicas executadas em qualquer aplicação ou sistema que faça uso de um banco de dados. Estou me referindo as operações de CRUD, onde:

  • C – Commit;
  • R – Read;
  • U – Update; e
  • D – Delete.

Vamos começar para criação da tabela Registros, conforme apresento abaixo:

Create Table Registros

 (Codigo Int,

  Descricao Varchar(100)) 

Go

Em seguida vamos realizar a Inserção de algumas linhas de dados, conforme apresentado a seguir:

Insert Into Registros Values (1,’Valor 1′)

Insert Into Registros Values (2,’ Valor 2′)

Insert Into Registros Values (3,’ Valor 3′)

Insert Into Registros Values (1,’Valor 4′)

Insert Into Registros Values (2,’ Valor 5′)

Insert Into Registros Values (3,’ Valor 6′)

Insert Into Registros Values (1,’Valor 7′)

Insert Into Registros Values (2,’ Valor 8′)

Insert Into Registros Values (3,’ Valor 9′)

Go

A seguir, realizaremos o processo de Atualização de Dados, fazendo uso do comando Update, logo abaixo:

Update Registros

Set Descricao=’Valor n3′

Where Codigo=3

Update Registros

Set Descricao=’Valor n5′

Where Codigo=5

Go

E finalmente vamos realizar a Exclusão dos registros e posteriormente a eliminação da tabela Registros, a seguir:

Delete From Registros

Where Codigo In (3,5)

Go

Drop Table Registros

Pronto, realizamos as operações básicas de Manipulação de Registros e Objetos e agora poderemos ver o resultado do que foi identificado, processado, conversado e armazenado pelos Events Notifications em conjunto com a Função EventData() e a Linguagem XQuery. Para isso vamos utilizar o Código 3 apresentado abaixo:

— Código 3 – Consultando os valores obtidos pelos Events Notifications na Tabela DDL_Transacoes –

Select * from DDL_Transacoes

Após executar o Código 3, poderemos notar que o Eventos foram armazenados na Tabela DDL_Transacoes de forma correta e somente aqueles relacionados a Linguagem DDL – Linguagem de Definição de Dados, neste caso, os Comandos Create Table e Drop Table, conforme ilustra a Figura 1.

DDL_Transacoes_Registros

Figura 1 – Eventos armazenados na Tabela DDL_Transacoes

 

Desta forma, estou finalizando esta dica, acredito que conseguindo demonstrar de forma bem simples e prática uma das maneiras que podemos combinar recursos no SQL Server, fazendo uso de suas funcionalidades, criando mecanismos e facilidades que podem ser utilizadas em nosso dia-á-dia.

Mais uma vez obrigado por sua visita, fique a vontade para seus comentários, críticas, sugestões e observações.

Nos encontramos em breve.

Até mais.

Anúncios

Estudo publicado recentemente indica que a Wikipédia está perdendo editores na língua inglesa


SÃO PAULO – Um estudo publicado recentemente indica que a Wikipédia está perdendo editores na língua inglesa. A pesquisa, chefiada por Aaron Halfaker, da Universidade de Minnesota, descobriu que o número de colaboradores voluntários diminuiu de 56 mil, em 2007, para 35 mil no final de 2012.

Criada por Jimmy Wales em 2001, o site é escrito editado colaborativamente por qualquer interessado. Assim, sua força e produtividade reside na quantidade de pessoas que dela participam.

O estudo aponta que, entre os motivos para a queda na participação, estão o aumento de programas automáticos de edição e o desânimo dos possíveis colaboradores com a estrutura do site. “Minha análise sugere que a principal razão da queda no número de editores ativos é o ambiente pouco receptivo a novos editores”, disse Halfaker ao Link.

Ele explica: em 2007, o site passou por uma série de mudanças, incorporando mais ferramentas que monitoram as alterações nos artigos e rejeitam automaticamente informações duvidosas ou falsas, chamadas no site de “vandalismo”.

“Eu e meus coautores notamos que houve aumento do uso de ‘robôs’ e outras ferramentas de software como uma forma de rejeitar vandalismo e outras edições indesejáveis de forma mais rápida”, disse Halfaker . “Nossa análise sugere que o crescimento dessas ferramentas teve um papel significativo para deixar o ambiente mais ofensivo a novos editores.”

Para o chefe do estudo, tornar o mecanismo rígido demais não é a melhor forma de garantir qualidade em um modelo baseado na colaboração das pessoas (crowdsourcing), uma vez que tem o efeito colateral de afastar novos interessados. “Rejeitar contribuições danosas é o primeiro mecanismo de controle de qualidade da Wikipedia. Sem ela, a enciclopédia poderia cair na irrelevância. No entanto, a forma como os novatos tem suas intervenções rejeitadas parece fazer uma grande diferença.”

Importância. Halfaker afirma que, mesmo com as inesgotáveis fontes de informação hoje, a Wikipédia ainda é relevante e, por isso, não pode se fechar para novos voluntários. “Acredito que Wikipédia seja mais importante do que nunca foi; não apenas por nela existe informação de qualidade, mas pelo fácil acesso, o que torna o seu valor imensurável.”

Em dez anos, a Wikipédia foi de zero a 4 milhões de artigos e hoje há menos oportunidade para a criação de material novo.  ”É provável que o crescimento da Wikipédia eventualmente diminua, à medida que ela se torne mais completa, independentemente do ambiente para novos colaboradores. Talvez ela nunca mais alcance o número de 56 mil editores de 2007″, disse Halfaker. “Contudo, ainda ela ainda tem muito a oferecer, e não parece estar perto de estar completa.  Qualquer um pode editar qualquer artigo apenas clicando na palavra ‘editar’. Isso é parte do brilhante porém perigoso design da Wikipédia que a torna tão fascinante”, disse o chefe do estudo.

O infográfico abaixo, criado pelo site Statista.com mostra a evolução e a produtividade dos editores da Wikipedia. Entre as comunidades mais ativas, os participantes de língua portuguesa ficam com o 10º lugar, com 750 milhões de artigos publicados no site (clique na imagem para ampliá-la).

Fontes e Direitos Autorais: Estadão.com.br – Link – Por Anna Carolina Papp – 16/01/2013.

Vivo apresentou instabilidade em quatro Estados


SÃO PAULO – Clientes da rede móvel da operadora Vivo enfrentaram problemas para usar o celular nesta quarta-feira, 16, em quatro Estados: São Paulo, Paraná, Santa Catarina e Rio Grande do Sul. Em nota à imprensa, a companhia informou que “parte de sua rede de sinalização IP” apresentou instabilidade a partir das 12h15, o que afetou a rede móvel.

A falha atingiu ainda a rede fixa. “Os clientes da rede fixa, com centrais privadas convergentes de São Paulo, também podem ter sido afetados”, afirma a Vivo. A empresa não forneceu mais detalhes sobre a falha e diz apenas que as redes “estão sendo gradualmente recuperadas”.

No Twitter, alguns usuários da operadora usaram a hashtag #vivofail (falha da vivo, em inglês) para reclamar da interrupção do serviço de telefonia. As queixas estão relacionadas à impossibilidade de fazer ou receber ligações.

Claro

Na tarde de terça-feira, 15, serviços da Claro também apresentaram falha. Ao ligar para o número da operadora (1052), a reportagem ouvia a seguinte mensagem: “A equipe técnica está trabalhando para normalizar os serviços de fazer e receber ligações em Guarulhos, Franco da Rocha, Mauá, Osasco, região metropolitana de São Paulo, Bragança Paulista, Atibaia, Itatiba, Nazaré Paulista, Jundiaí e região.” Segundo a assessoria de imprensa da Claro, a instabilidade na rede durou em torno de duas horas.

Fontes e Direitos Autorais: Agências – Nayara Fraga, do Radar Tecnológico.

Comércio eletrônico cresce 29% no Brasil em 2012


São Paulo – As vendas via Internet somaram 24,12 bilhões de reais em 2012, alta de 29 por cento em relação ao ano anterior, informou nesta quinta-feira a Associação Brasileira de Comércio Eletrônico (ABComm).

O resultado ficou um pouco acima da estimativa da e-bit, consultoria especializada em comércio eletrônico, que projetava 23,4 bilhões de reais em vendas para o ano passado.

A e-bit ainda não divulgou os dados consolidados para 2012 mas, até junho, o setor acumulava vendas de 10,2 bilhões de reais. Em 2011, conforme a consultoria, o setor teve faturamento de 18,7 bilhões de reais, 26 por cento mais que no ano anterior.

Segundo a ABComm, 9 milhões de brasileiros realizaram a primeira compra via comércio eletrônico em 2012, sendo que os setores de vestuário, acessórios e cosméticos foram os que registraram melhor desempenho no ano.

No final de novembro, o comércio eletrônico brasileiro contou com a terceira edição da “Black Friday” no Brasil, quando as vendas somaram 217 milhões de reais em um único dia, mais que o dobro em relação aos 100 milhões de reais apurados um ano antes.

Fontes e Direitos Autorais: 

Por 

• Quinta-feira, 17 de janeiro de 2013 – 15h4.

Anatel aprova proposta para teles terem P&D


São Paulo – O conselho diretor Agência Nacional de Telecomunicações (Anatel) aprovou nesta quinta-feira a proposta de regulamento de Pesquisa Desenvolvimento e Inovação para as companhias de telecomunicações.

O texto, que ainda passará por consulta pública, estabelece que a empresa que investir pelo menos 3% de sua receita operacional líquida anual em atividades de pesquisa e desenvolvimento de novas tecnologias escapará das metas de aquisição de equipamentos com conteúdo nacional nas próximas licitações de faixas do espectro eletromagnético.

Para se ter uma ideia do tamanho do estímulo à pesquisa, o edital do leilão das frequências de telefonia e internet móvel de quarta geração (4G) – realizado em junho do ano passado – obrigou as companhias a utilizarem pelo menos 60% de equipamentos e bens nacionais na implantação dessas redes.

A Anatel também aprovou a proposta de alteração do regulamento sobre Procedimentos de Contratação de Serviços e Aquisições de Equipamentos pelas companhias de telecomunicações.

O texto, que também passará por consulta pública, aumenta de R$ 300 mil para R$ 750 mil o valor mínimo dos contratos sujeitos às regras. Além disso, a novo formato dá preferência a bens e serviços nacionais em caso de empate de propostas com importados, inclusive na compra de softwares.

Fontes e Direitos Autorais: 

• Quinta-feira, 17 de janeiro de 2013 – 16h55.

Lenovo negocia compra de fábrica de TVs da Sharp


Tóquio – A Sharp pode vender à Lenovo uma fábrica de TVs na China, dentro dos esforços para se desfazer de ativos e melhorar as finanças, de acordo com fontes.

A fabricante japonesa negocia com a Lenovo a venda da unidade de LCDs em Nanking e a formação de parcerias com a companhia chinesa na China, disseram duas fontes da indústria familiarizadas com as discussões informaram à Reuters.

Em comunicado à Bolsa de Tóquio, a Sharp disse que não havia anunciado nenhuma negociação. As conversas haviam sido noticiadas inicialmente pelo jornal Nikkei, do Japão.

A Sharp já vinha negociando com a Hon Hai a venda da unidade de TV na China e de uma fábrica no México. A companhia de Taiwan, que também negocia comprar uma parte da Sharp e já comprou uma fábrica de LCD da companhia no Japão, pode agora se limitar a ficar com a unidade mexicana.

Fontes e Direitos Autorias: 

Por 

• Quinta-feira, 17 de janeiro de 2013 – 10h30.

Investimento mundial em TI deve subir 4,2% em 2013, diz Gartner


Londres  – O investimento mundial em Tecnologia da Informação (TI) deve subir 4,2 por cento em 2013, para 3,7 trilhões de dólares, uma aceleração ante crescimento de 1,2 por cento estimado para o ano passado, afirmou a empresa de pesquisa de mercado Gartner, nesta quinta-feira.

A maior parte da incerteza envolvendo as perspectivas para uma retomada do crescimento global está perto de uma solução, afirmou o vice-presidente da Gartner, Richard Gordon. “Conforme isso acontece, estamos vendo uma aceleração no crescimento do investimento em 2013 em relação a 2012.”

O gasto em equipamentos como PCs, tablets, celulares e impressoras está previsto em 666 bilhões de dólares, aumento de 6,3 por cento. O crescimento está abaixo da previsão anterior do Gartner de expansão de 7,9 por cento, em parte por causa do aumento da competição gerada por tablets com sistema operacional Android.

O gasto mundial em software corporativo deve subir 6,4 por cento, para 296 bilhões de dólares, segundo a Gartner, puxado por segurança e gestão de armazenamento de dados e de relacionamento com clientes.

Serviços de telecomunicações, que continuam a representar a maior parte do mercado de TI, ficarão estáveis nos próximos anos já que a receita maior com serviços de dados sem fio foi minimizada por quedas nos mercados de voz fixa e móvel.

Fontes e Direitos Autorais: Reuters