segunda-feira, 29 de agosto de 2016

SQL SERVER - Mostrar as sequences relacionado com determinada tabela - Show related sequences with given table

SQL para exibir as Sequences relacionado com uma determinada tabela e seu respectivos campos.


select 
 t.name NOME_TABELA,
 t.object_id ID_TABELA,
 c.name NOME_CAMPO,
 c.default_object_id ID_REFERENCIA,
 d.referenced_major_id ID_SEQUENCIA,
 s.name NOME_SEQUENCIA
from 
 sys.tables t
inner join sys.columns c
 on t.object_id = c.object_id and c.default_object_id <> 0
inner join sys.sql_dependencies d
 on d.object_id = c.default_object_id
inner join sys.sequences s
 on s.object_id = d.referenced_major_id
where t.name = 'TABLE_NAME' -- <--Troque 'TABLE_NAME' pelo nome da sua tabela

quinta-feira, 25 de agosto de 2016

DELPHI - Comando para redução de memória - Command to memory reduction

Quando você cria uma aplicação Delphi, tudo é um objeto, o Formulário é um objeto, cada objeto ocupa um espaço da memória gerenciado pelo programa após ser instanciado. E todo objeto após ser utilizado deve ser destruído para que esta memória seja liberada…

O que a maioria dos programadores não sabem é que, especificamente em Delphi que não existe “Coletor de Lixo de memória” como na plataforma .NET. Existe uma memória residual que nunca é liberada mesmo que você destrua todos os objetos que instanciar, porque é uma parta da memória que é administrada pelo próprio Sistema operacional. Se você deixar o seu aplicativo aberto, e efetuar diversas ações que interajam com as APIs do Windows ou DLL externas, trabalhar multi-camadas através de sockets…. Ou mesmo fazer movimentos simples como minimizar ou maximizar sua aplicação… Você perceberá que memória reservada no gerenciador de tarefas para o processo do seu executável crescerá. E muitos destes movimentos como maximiza e minimizar, é a parte não gerenciável da memória de sua aplicação pois ela ocorre na própria interação do Sistema Operacional com sua aplicação.

Este procedimento localiza o processo da aplicação, e limpa toda memória residual…

procedure TrimAppMemorySize;
var
  MainHandle : THandle;
begin
  try
    MainHandle := OpenProcess(PROCESS_ALL_ACCESS, false, GetCurrentProcessID);
    SetProcessWorkingSetSize(MainHandle, $FFFFFFFF, $FFFFFFFF);
    CloseHandle(MainHandle);
  except
  end;
  Application.ProcessMessages;
end;
Retirado de: http://www.agnaldocarmo.com.br/home/comando-milagroso-para-reducao-de-memoria-delphi/