Bruno's profileBruno Velaz - SharePoint...PhotosBlogListsMore Tools Help

Blog


    November 23

    Querys Úteis SQL SERVER

    Estou colocando alguns scripts que acho seria interesante todos terem. Anjo
     

    /* GERA DICIONÁRIO DE DADOS */


    SET NOCOUNT ON
    DECLARE @Id_Tabela int, @Nome_Tabela varchar(50)
    PRINT 'BANCO DE DADOS: ' + UPPER(db_name())
    PRINT ''
    DECLARE tabelas CURSOR FOR SELECT Name, ID FROM sysobjects WHERE xtype = 'U' AND Name <> 'dtProperties'
    ORDER BY Name
    OPEN tabelas
    FETCH NEXT FROM tabelas INTO @Nome_Tabela, @Id_Tabela
    WHILE @@FETCH_STATUS = 0
    BEGIN
     IF(UPPER(@nome_tabela)<>'SYSPROPERTIES')
     BEGIN
         PRINT 'TABELA: ' + UPPER(@nome_tabela)
         select nome_campo = LEFT(RTRIM(LTRIM(sc.name)),40),
         tipo_campo = LEFT(RTRIM(LTRIM(st.name)),20), tamanho_campo = sc.length, descricao_campo = ISNULL(sp.name,'')
         FROM syscolumns sc, systypes st, sysobjects sp WHERE sc.id = @Id_Tabela AND sc.xtype = st.xtype
         and sc.colid *= sp.id and sp.id = @Id_Tabela
         ORDER BY sc.colid
         PRINT ''
         FETCH NEXT FROM tabelas INTO @Nome_Tabela, @Id_Tabela
     END
    END
    CLOSE tabelas
    DEALLOCATE tabelas
    SET NOCOUNT OFF
     

    /* VERIFICA PROCESSOS BLOQUEADOS NO SQL SERVER */

     
     select spid, blocked, hostname=left(hostname,20), program_name=left(program_name,20),WaitTime_Seg = convert(int,(waittime/1000)) ,open_tran, status from master.dbo.sysprocesses where blocked = 0 and SPID in (Select blocked from master.dbo.SYSPROCESSES where blocked >0 ) order by spid 
     

    /* Script para Listar o tamanho dos objetos do TIPO Table no banco*/
    /* em SQL Server 7 e 2000 e 2007*/
    /* Desenvolvido por: Rodrigo Fernandes*/


    DECLARE @obj_name  sysname
    DECLARE csr_obj  CURSOR FOR
    SELECT CONVERT(varchar(517),name) FROM sysobjects
    WHERE xtype = 'U'
    ORDER BY xtype
    OPEN csr_obj
    FETCH NEXT FROM csr_obj INTO @obj_name
    WHILE @@FETCH_STATUS = 0
         BEGIN
     
     EXEC sp_spaceused @objname = @obj_name
     FETCH NEXT FROM csr_obj INTO @obj_name
         END
    CLOSE csr_obj
    DEALLOCATE csr_obj

    /* Script para matar os processos de determinado usuário */

     
    if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_KillbyUser]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
    drop procedure [dbo].[sp_KillbyUser]
    GO
    CREATE PROCEDURE sp_KillbyUser (@loginame VARCHAR(256))
    AS
    IF (IS_SRVROLEMEMBER('sysadmin') = 0) OR
    (IS_SRVROLEMEMBER('processadmin') = 0)
     BEGIN
        RAISERROR(15247,-1,-1)
        RETURN(1)
     END
    IF NOT EXISTS(SELECT name FROM master..sysxlogins WHERE name = @loginame)
     BEGIN
        PRINT 'THE USER DOES NOT EXIST !'
        RETURN(1)
     END
    ELSE
     BEGIN
        DECLARE @cmd VARCHAR(256)
        DECLARE @pid SMALLINT
        DECLARE csr_procs_login CURSOR FOR
        SELECT spid FROM master..sysprocesses
        WHERE loginame = @loginame
        OPEN csr_procs_login
        FETCH NEXT FROM csr_procs_login INTO @pid
        WHILE @@FETCH_STATUS = 0
      BEGIN
         SET @cmd  = 'KILL ' + CAST(@pid AS VARCHAR(6))
         EXEC (@cmd)
            
         PRINT @cmd
        
         FETCH NEXT FROM csr_procs_login INTO @pid
      
      END
      CLOSE csr_procs_login
      DEALLOCATE csr_procs_login
      RETURN(0)
     END
     

    /* Script para listar os Fill Factor das tabelas */

     
    SELECT DB_NAME() AS DBNAME, a.name AS IndexName,
     a.OrigFillFactor AS Fill_Factor, b.table_name
    FROM sysindexes AS a
    INNER JOIN information_schema.tables AS b
     ON (OBJECT_ID(b.table_name) = a.id)
     AND b.table_type = 'BASE TABLE'
    ORDER BY a.OrigFillFactor DESC
     
    Aproveitando para quem não tem muito conhecimento de FILL-FACTOR segue um link muito bom.
    November 21

    TRANSACTION LOG FULL - Como Proceder???

    TRANSACTION LOG (Como proceder).

     

    Pessoal segue então o que se deve fazer quando o Transaction Log está grande.

     

    Qualquer termo técnico que tenha me esquecido de colocar por favor me informem, que tirarei suas dúvidas.

     

     

    Ps.: ABRA O QUERY ANALYZER (Sql Server 2000)

     

    1)  Para começar, podemos observar o tamanho do Transaction Log, em MB, e o quando, em percentual, está sendo utilizado do Transaction Log com o seguinte comando DBCC:

    à DBCC SQLPERF (LOGSPACE)

    Com este comando podemos monitorar o crescimento no Transaction Log para todos os bancos de dados.

     image001

    Bom note que o banco smmdb está com 99.99 % usado certo?

     

    2) Agora force o CHEKPOINT(este processo é ocorrido em tempo em tempo, geralmente quando está em 20% e 70%).

     

    à CHECKPOINT

    à DBCC SQLPERF (LOGSPACE)

    Coloque este comando novamente para ver se teve alguma mudança.(Não se preocupe se não alterou nada)

     

    Somente para complementar, CHEKPOINT faz uma limpeza de todos os Transaction Logs COMMINT E ROLLBACK que estão presos)

     

     

    3) Depois faça este comando. (o que está em negrito é banco de dados)

     

    à BACKUP LOG smmdb WITH TRUNCATE_ONLY

    à DBCC SQLPERF (LOGSPACE)

         Faça novamente este comando para verificar o tamanho novamente.

     

     image001

    Observe que dimnui J, se não diminui não se preocupe, pois este processo diminui percentualmente, ou seja se não estiver com a opção FIXED de crescimento do banco, ele não mudará.

     

    Bom agora melhor ainda.

     

    Vimos até aqui como limpar o Transaction Log e como forçar a um processo de checkpoint. Mas nenhum dos dois comandos diminui o tamanho do arquivo físico do Transaction Log ( .ldf ) e libera o seu espaço em disco para sistema operacional. Para diminuir o tamanho do arquivo físico .ldf do Transaction Log devemos utilizar o comando abaixo.

     

     

    4) DBCC SHRINKFILE. O detalhe aqui é que só podemos diminuir este arquivo até certo ponto. Exemplo:

     

    -- DIMINUINDO O TAMANHO DO TRANSACTION LOG PARA NO MÍNIMO 100MB

     

    à USE NOMEBANCO

    à DBCC SHRINKFILE (NOMEBANCO_LOG, 100)

     

    Ex:

    use smmdb

    DBCC SHRINKFILE (smmdb_log, 100)

    image002 

    Observe como ficou.

     

     

     

    Olhe agora fisicamente no windows Explorer.

     

      image003

     

     

    5)  Para tirar a dúvida das dúvidas.

    -- VERFICANDO AGORA O TAMANHO DO ARQUIVO FÍSICO

    -- DEVE ESTAR AGORA COM APROXIMADAMENTE UNS 250 MB, o LDF

     

     [NOME DO BANCO]

      image004

     

     

    6)  Agora para diminuir o que está selecionado ou seja o MDF, que é bem crítico as vezes e deve ser realmente pensado, então faça o comando abaixo.

     

    à SINTAXE : DBCC SHRINKDATABASE( [NomeBanco],Porcentagem)

    à DBCC SHRINKDATABASE (BancoDeDados ,10)

     

    IMPORTANTE: Para um banco de 9,8 GB, executando este comando para baixar 10% do tamanho físico levou aproximadamente em torno de 30 min.

    Façam os cálculos para seu cenário.

     

     

    Abraços e era isto..

     Agora todos podem fazer, mas qq coisa já sabem, mandem email

    Como Inserir Aplicação Asp.Net ou qualquer outra no Portal Sharepoint

    Existem situações que a empresa já possui no mesmo servidor aplicações distintas em produção como.
    - ASP.NET
    - PHP
    - Etç.
     
    Isto se resolve simplesmente indo nas configurações do Sharepoint Services e Sharepoint Portal no item de Definilção de caminhos não gerenciados.
    Ou seja, se vc incluir informa que ele vai gerenciar este caminho ou seja, nao vai abrir, caso tentar abri-lo fora do contexto de segurança do Sharepoint.
     
    Como fazer?

    Método - Adicionar um caminho incluído

    1. Examine o arquivo Upgrade.log para determinar o caminho incluído que está faltando.
    2. Adicionar um caminho incluído. Para fazer isto, execute as seguintes etapas::
    a. Clique em Iniciar, apontar para All Programs , apontar para Administrative Tools, e seguida, clique SharePoint Administração Central .
    b. A página Central Administration, clique em Configurar servidor virtual configurações em Configuração do Servidor Virtual .
    c. A página Virtual Server List, clique no servidor virtual que você desejar configurar.
    d. A página Virtual Server Settings, clique em gerenciado Definir Caminhos em Gerenciamento do Servidor Virtual .
    e. Na área, Adicionar um New Path tipo o caminho na caixa da Caminho .
    f. caminho incluído , clique em e depois especificar o tipo caminho que você desejar na caixa da tipo .
    g. Clique em OK..

    Buenas suerte!!! Gracias a todos.

     

    November 12

    Site I-DEVNET - Artigos, Downloads, Serviços e Treinamentos (Cursos Novos)

    Galera somente vim aqui informar que o site da I-DEVNET.COM está no ar, com:

     

    http:www.i-devnet.com Boca aberta

     
    • Artigos
    • Downloads
    • Serviços
    • Dúvidas em geral(basta entrar em contato)
    • Treinamentos
      • Sharepoint 2007
      • Biztalk
      • EPM (Gerenciamento de Projetos com Project Server)
      • BI (Extaindo Dados Gerenciais e Completo com Negócios Inteligentes)
      • .Net

    Valew galera.

    Abraços