quarta-feira, 22 de junho de 2011

Oportunidade - sr. Nimbus


O esquema é o seguinte: quero selecionar currículos para nossa empresa, pois estamos com boas perspectivas. Me interessa dois perfis:

SQL Server - Dev
Conhecimentos: responsabilidades básicas de um DBA, administração e funcionamento básico do SQL Server, básico de otimização, experiência com T-SQL e também conhecimento de programação .NET. SSIS e SSRS são bem vindos.
Deve ser uma pessoa que pode se virar bem se tiver que escrever rotinas em C# ou T-SQL, que não viaje quando eu falar em design pattern ou arquitetura em camadas. Procuro alguém que saiba inglês e preferencialmente, tenha formação acadêmica forte.
Nível: pleno

SQL Server - Infra
Conhecimentos: responsabilidades básicas de um DBA, administração e funcionamento do SQL Server, básico de otimização, experiência com T-SQL, básico de infra-estrutura (AD, DNS, DHCP, etc.) e storage. Conhecer sobre DR, HA (ex.: cluster, mirroring), segurança e replicação é importante. SSIS e SSRS são bem vindos.
Deve ser uma pessoa que já administra um ambiente e que não viaje quando eu falar Kerberos, HBA, piece meal restore, etc. Procuro alguém que saiba inglês e preferencialmente, tenha formação acadêmica forte.
Nível: pleno

Notem que eu não estou colocando faixa salarial, estou totalmente aberto a negociação se você me provar valer quanto está pedindo.

[]s

Luciano [Luti] Caixeta Moreira
Microsoft MVP - SQL Server
http://luticm.blogspot.com/ - (61) 8150-0376

sr. Nimbus Serviços em Tecnologia - www.srnimbus.com.br - (61) 3010-2050

quarta-feira, 15 de junho de 2011

Vaga - Analista de Banco de Dados - AMBEV

Lígia Oliveira, xb3lcos@ambev.com.br, do Recrutamento e Seleção da
AmBev, informa : A Companhia de Bebidas das Américas – AmBev CONTRATA
Analista de banco de dados

- Curso Superior completo ou a seis meses da conclusão;
- Experiência em Excel Avançado (Macro/VBA);
- Experiência com Microsoft Access;
- Experiência com programação (SQL).

Local de trabalho: Brasília – DF
Nº de vagas: 3

Interessados enviar e-mail para xb3lcos@ambev.com.br com o nome da
vaga no título.

Programa de Certificação IBM


Escola Politécnica da Universidade de São Paulo - Programa de Certificação IBM


Quem sabe o PMI-Brasil, a LPI-Brasil e tantas outras, não despertem
para a mesma visão da IBM promovendo parcerias com Instituições de
Ensino Superior, particulares e públicas, visando a qualificação de
profissionais para o mercado? Fica a sugestão!

Universidade pública abre as portas para programa de certificação em
TIjunho 15, 2011 by Vinicius


A USP (Escola Politécnica da Universidade de São Paulo) enfim se
rendeu à necessidade do mercado quanto a qualificação dos
profissionais de Tecnologia da Informação e estabeleceu uma importante
parceria com a IBM.


Afinal, não é porque é aluno USP que é bom o suficiente do ponto de
vista de quem contrata. O aluno tem que atender a requisitos
específicos (qualificação) para ser aceito pelo exigente mercado, e
boa formação acadêmica, embora muito importante, é apenas uma parte da
solução para a alta demanda de profissionais de TI no mercado.

A parceria com a IBM trata-se do projeto de capacitação profissional
chamado “IBM Smart Professional”. Segundo o site TiInside…

O programa, que visa atender à demanda do mercado por profissionais da
área de tecnologia da informação, envolve união entre empresas e
universidades de todo o Brasil, com o objetivo de capacitar e
certificar estudantes, professores e profissionais de TI em
tecnologias IBM, de acordo com a necessidade do mercado local. O ‘IBM
Smart Professional’ oferece capacitação virtual. Já as certificações
são realizadas na própria universidade.

A importância da certificação profissional para qualquer candidato a
uma vaga na área de Tecnologia da Informação hoje em dia, é destacada
com essa afirmação interessante:

Segundo pesquisa do Institute Data Corporation (IDC) Brasil, as
chances de um profissional certificado conseguir um emprego aumentam
53% em relação a profissionais que não possuem este título. Para
aqueles que já estão no mercado, a pesquisa mostra que os
profissionais certificados podem alcançar salários de 10 a 100%
superiores à média que o mercado paga a profissionais sem certificação
que ocupam as mesmas funções.

As certificações disponíveis  pelo programa Smart Professional, da
IBM, são:

• Certificações UML, RUP, SOA, BPM, XML e Cloud Computing


Todas as certificações das linhas de produto:
• IUM: DB2, COGNOS, Content Manager, Informix, Optim;
• Rational: APPScan, Clear Quest, Functional Tester, Quality Manager,
RDZ;
• Lotus: Connections, Domino, Live, Notes, Quickr;
• WebSphere: WAS, WPS, iLOG, Message Broker , Lombardi;
• Tivoli: TSM, TIM, TAM, MAXIMO , Netcool.

A tendência de parcerias desse tipo entre universidades, incluindo-se
as públicas como neste caso, deve aumentar com o tempo, até porque é
muito custoso para uma instiuição de ensino, (mesmo em país de
primeiro mundo, quem dirá no Brasil), acompanhar o avanço da
tecnologia e ao mesmo tempo alinhar o preparo dos seus alunos para o
mercado de trabalho.

As grandes empresas do setor privado, como já é provado, tem um papel
fundamental no complemento da formação dos novos profissionais da
área, com parcerias com universidades e escolas de todo o Brasil.

Que o Governo possa criar mecanismos que incentivem mais essas ações,
e assim teremos um contingente profissional menos desempregado, mais
produtivo e realizado profissionalmente, pois gerar empregos que não
possam ser absorvidos pela sociedade (como já acontece muito nestes
tempos atuais) não resolve o problema de ninguém.

por (Lucianno Cardoso Luis email)

#18 - TRUNCATE - DB2

No ambiente DB2, quando o usuário solicita que você limpe o DB ou recrie o banco, surge uma dúvida usar um Delete ou Truncate para limpar o banco ou talvez recriar o banco executando um DROP e logo em seguida CREATE.

Analisando os possíveis cenários, hoje no ambiente em que trabalho os bancos são desenvolvidos com ferramentas de modelagem no qual podemos fazer todo o processo de geração de scripts ou engenharia reversa! Isso é um cenário perfeito, sei que não é todos os lugares que funcionam assim, então vamos a um outro cenário:

Já existe um DB que está em homologação e precisa apagar todos os dados e o sistema tem 'n' tabelas e não existe um modelo feito, a solução para limpar o DB é realizar um Truncate mas para isso é necessário descobrir quais são as tabelas do banco.

select tabschema , tabname from from syscat.tables where tabschema = 'XXX'

Após você descobrir quais são as tabelas do banco, basta montar um script para gerar a limpeza da tabela.

select ' TRUNCATE TABLE ' || rtrim(tabschema) || '.' || tabname || ' IMMEDIATE ;' from syscat.tables where tabschema = 'XXX'

Com a query acima você consegue o resultado para limpar todas as tabelas do seu banco por um determinado schema.

Executar um Truncate é mais rápido e performático do que o DELETE.

terça-feira, 7 de junho de 2011

#17 - Linked Server

Pequeno Script de criação de um Linked Server, para acesso com autenticação já existente em ambos os servidores.




EXEC master.dbo.sp_addlinkedserver @server = N'SQLDPTP', @srvproduct=N'SQL Server'

EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'SQLDPTP',@useself=N'True',@locallogin=NULL,@rmtuser=NULL,@rmtpassword=NULL

GO

EXEC master.dbo.sp_serveroption @server=N'SQLDPTP', @optname=N'collation compatible', @optvalue=N'false'
GO

EXEC master.dbo.sp_serveroption @server=N'SQLDPTP', @optname=N'data access', @optvalue=N'true'
GO

EXEC master.dbo.sp_serveroption @server=N'SQLDPTP', @optname=N'dist', @optvalue=N'false'
GO

EXEC master.dbo.sp_serveroption @server=N'SQLDPTP', @optname=N'pub', @optvalue=N'false'
GO

EXEC master.dbo.sp_serveroption @server=N'SQLDPTP', @optname=N'rpc', @optvalue=N'false'
GO

EXEC master.dbo.sp_serveroption @server=N'SQLDPTP', @optname=N'rpc out', @optvalue=N'false'
GO

EXEC master.dbo.sp_serveroption @server=N'SQLDPTP', @optname=N'sub', @optvalue=N'false'
GO

EXEC master.dbo.sp_serveroption @server=N'SQLDPTP', @optname=N'connect timeout', @optvalue=N'0'
GO

EXEC master.dbo.sp_serveroption @server=N'SQLDPTP', @optname=N'collation name', @optvalue=null
GO

EXEC master.dbo.sp_serveroption @server=N'SQLDPTP', @optname=N'lazy schema validation', @optvalue=N'false'
GO

EXEC master.dbo.sp_serveroption @server=N'SQLDPTP', @optname=N'query timeout', @optvalue=N'0'
GO

EXEC master.dbo.sp_serveroption @server=N'SQLDPTP', @optname=N'use remote collation', @optvalue=N'true'
GO

EXEC master.dbo.sp_serveroption @server=N'SQLDPTP', @optname=N'remote proc transaction promotion', @optvalue=N'true'
GO



quinta-feira, 2 de junho de 2011

VAGA DBA-DEV


Pessoal,
 
Estamos precisando de um DBA DEV com o seguinte perfil:
 
Conhecimento avançado e melhores práticas em programação T-SQL;
Conhecimento básico em administração SQL Server 2008;
 
 
Por favor, enviar currículo para andre@tecnologiapar.com.br  / socorrovieira@tecnologiapar.com.br

[]'s
--
Socorro Vieira

quarta-feira, 1 de junho de 2011

#16 - BULK INSERT

Algumas pessoas tem por costume fazer a importação de arquivos através do wizard do sql que é o jeito mais tradicional e fácil, que depois posso fazer um tutorial de como utilizar. Mas hoje recebi um email na lista de SQL SERVER pedido ajuda para criar uma procedure para importar um arquivo txt.


O SQL SERVER tem uma função é o BULK INSERT , ela é responsável por fazer fazer esse tipo de importação, você pode delimitar os separadores de linha, o que vale lembrar que este tipo de função não permite dar carga em campos específicos. O arquivo já deve estar totalmente formatado de acordo a tabela.

Um exemplo simples de como utilizar seria esse:


BULK INSERT DEC.dbo.Tab_Pernambucanas
   FROM 'C::\Temp\saldo_201012_v2.txt'
   WITH
      (
         FIELDTERMINATOR =',',
         BATCHSIZE = 10000
      );


Uma maneira de fazer uma procedure para esse tipo de inserção seria:


CREATE PROCEDURE IMPORTACAO (@TABLE VARCHAR(100),@CAMINHO VARCHAR(255), @DEL CHAR)
AS

declare @SQL VARCHAR(1000)
declare @err_instrucao varchar(255)

BEGIN
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE
   begin transaction

       SET @SQL ='      BULK INSERT ' + @TABLE + '
                     FROM ' + @CAMINHO + '
                     WITH
                          (
                              FIELDTERMINATOR ='''+@DEL+''',
                              BATCHSIZE = 10000
                          )'
                         
      SET @err_instrucao = 'motivo do erro'
      exec (@SQL)

commit transaction
   return 0
err_instrucao:
raiserror (@err_instrucao,16,1)
      rollback transaction
      return 1
END

Essa é a minha sugestão, outros terão sugestões bem diferentes e todas as sugestões são bem vindas e ajudam no nosso crescimento profissional.

Outra informação importante é que esse tipo de instrução precisa de das seguintes permissões INSERT e ADMINISTER BULK OPERATIONS para poder executar. 


Para um banco de dados no modelo de recuperação completa, todas as operações de inserção de linha executadas pela importação em massa são registradas completamente no log de transações. Importações de dados grandes poderão fazer o log de transações ficar cheio rapidamente se o modelo de recuperação completa for usado. Por outro lado, no modelo de recuperação simples ou no modelo de recuperação bulk-logged, o log mínimo de operações de importação em massa reduz a possibilidade de uma operação de importação em massa preencher o espaço do log. O log mínimo também é mais eficiente que o log completo.
 (http://msdn.microsoft.com/en-us/library/ms190422.aspx)