Arquivo por categoria: Scripts Úteis – SQL

Scripts úteis de SQL para administração de instâncias;

set 11

Limpando o cache do SQL

Todo mundo que eu conheci até hoje reinicia a instância para esvaziar o buffer que o SQL faz em memória. Veja como fazer isso sem reiniciar a instância, serviços ou servidor.   Devo alertá-los que esta prática, apesar de não gerar a indisponibilidade dos outros métodos, não é recomendada em ambientes de produção (assim como reiniciar …

Continue lendo »

ago 23

Script de restore

Há algum tempo precisei migrar uma base com mais de 4TB, era um SAP de uma grande empresa de auditoria no Brasil. Sem acesso ao servidor de origem, só me restou um backup full de 10 dias atrás e um compartilhamento onde ficavam os backups de transaction log. Os backups eram gerados de 15 em …

Continue lendo »

jun 27

Inserindo dados fictícios em uma tabela

Muitas vezes precisamos fazer testes e pesquisas mas com tabelas vazias ou com poucos dados não é possível. Vamos criar uma tabela e colocar quantas linhas diferentes quisermos. Neste exemplo, estamos utilizando 20 nomes (10×10) totalizando 100 resultados:   –Criamos uma tabela para o primeiro nome CREATE TABLE NAMES1 (FIRST_NAME varchar(20))   –Mais uma outra …

Continue lendo »

jun 19

Obtendo informações importantes de todas as bases

Hoje vamos obter informações importantes como Recovery Model, Log Reuse, Log Size, Log Used, Compatibility Level, Page Verify, Auto Shrink entre algumas outras.   Vamos utilizar o script abaixo para obter estas informações que podem ser utilizadas para documentação, checagem, análise, ou seja, são realmente úteis.   SELECT db.[name] AS [Database Name], db.recovery_model_desc AS [Recovery …

Continue lendo »

jun 15

Identificando tabelas mais usadas da instância

Considero este um dos posts mais importantes que já escrevi. Frequentemente precisamos saber qual a tabela mais utilizada ou qual o índice mais utilizado para tomarmos as providências de melhoria na performance como criar um arquivo de dados exclusivo para a tabela, verificar se o índice está apropriado, etc. Esta semana vimos no artigo Encontrando …

Continue lendo »

jun 14

Espaço utilizado por cada tabela

Hoje precisei fazer um levantamento do espaço utilizado por cada tabela da base. Encontrei o script abaixo no post do Greg Robidoux do MSSQL Tips:   BEGIN try   DECLARE @table_name VARCHAR(500) ;   DECLARE @schema_name VARCHAR(500) ;   DECLARE @tab1 TABLE(          tablename VARCHAR (500) collate database_default  ,       schemaname VARCHAR(500) collate database_default  );   DECLARE  @temp_table TABLE (              tablename sysname  ,       row_count INT  ,       reserved VARCHAR(50) collate database_default  ,       data VARCHAR(50) collate database_default  ,       index_size VARCHAR(50) collate database_default  ,       unused VARCHAR(50) collate database_default   );   INSERT INTO @tab1   SELECT t1.name  ,       t2.name   FROM sys.tables t1   INNER JOIN sys.schemas t2 ON ( t1.schema_id = t2.schema_id );     DECLARE c1 CURSOR FOR   SELECT t2.name + ‘.’ + t1.name    FROM sys.tables t1   INNER JOIN sys.schemas t2 ON ( t1.schema_id = t2.schema_id );     OPEN c1;   FETCH NEXT FROM c1 INTO @table_name;  WHILE @@FETCH_STATUS = 0   BEGIN            SET @table_name = REPLACE(@table_name, ‘[‘,”);   …

Continue lendo »

jun 12

Encontrando usuários e suas sessões no SQL

Vamos descobrir quais usuários estão conectados e quantas sessões cada um possui no momento? Esta informação é muito útil quando vamos iniciar uma janela de manutenção ou quando queremos saber se há um aumento na quantidade de sessões por usuário. Podemos verificar quem está conectado no momento, avisar que o SQL vai parar e então …

Continue lendo »

jun 06

Qual arquivo da base utiliza mais I/O

  Frequentemente precisamos monitorar a utilização de I/O e saber qual arquivo é o mais utilizado em uma base que possui vários arquivos é muito importante. Suponhamos que você isolou a tabela mais utilizada em 3 arquivos diferentes. Agora para saber qual destes arquivos é o mais utilizado ficou um pouco mais difícil. Para facilitar, …

Continue lendo »

maio 29

Cost threshold for parallelism

Hoje vamos falar sobre uma opção importante mas cheia de controversas. Você sabe o que é paralelismo? O SQL tem a capacidade de quebrar a query de forma a utilizar todas as CPUs lógicas (como em processadores HT, vários processadores físicos ou que possuem múltiplos núcleos em cada processador físico). Desta forma, tarefas são executadas simultaneamente …

Continue lendo »

maio 29

Progresso de tarefas em execução

Para sabermos o tempo estimado em horas, minutos ou o status em porcentagem de um reindex, rebuild, verificação de integridade, backup, restore, etc. podemos utilizar o script abaixo: select convert (varchar(50),(estimated_completion_time/3600000))+’hrs’+ convert (varchar(50), ((estimated_completion_time%3600000)/60000))+’min’+ convert (varchar(50), (((estimated_completion_time%3600000)%60000)/1000))+’sec’ as Estimated_Completion_Time, status, command, db_name(database_id), percent_complete from sys.dm_exec_requests Repare que na verdade estamos utilizando esta query para saber quais tarefas estão …

Continue lendo »

maio 21

Backup em múltiplos arquivos .bak

Backup em 4 arquivos

Você pode estar com pouco espaço em disco em suas unidades ou seu job de backup pode estar demorando mais do que você gostaria. Esta dica ajuda muito em ambos os casos. No meu caso, o servidor tinha diversos volumes mas o espaço livre em cada volume não era suficiente para a base toda. Ao …

Continue lendo »

maio 21

Continuar restore de onde parou…

restore with restart

Durante um processo de restore de uma grande base um outro analista desavisado reiniciou os serviços do SQL. Como resultado, a base ficou em “restoring”:   Como o restore era de uma base muito grande e portanto demorado, ao invés de iniciar novamente pude continuar de onde parou com a cláusula WITH RESTART. Com isso, …

Continue lendo »

maio 17

Listar bases com data de criação, arquivos mdf e nível de compatibilidade

Com este script podemos listar todas as bases da instância com data de criação, caminho e nome dos arquivos mdf e nível de compatibilidade com outras versões do SQL: select name as [name], crdate as [create date], cmptlevel as [compatibility level], filename as [mdf files] from master..sysdatabases order by name Você deve dar um select …

Continue lendo »

maio 16

Baixando o SQL 2012

Você pode baixar as versões do SQL 2012 facilmente através do link oficial da Microsoft:   http://www.microsoft.com/betaexperience/pd/SQL2012EvalCTA/enus/default.aspx Vai pedir para instalar o Download Manager e pronto, é só esperar baixar.  .

Posts mais antigos «

» Posts mais novos