Clipper On Line • Ver Tópico - Duvidas sobre FIREBIRD

Duvidas sobre FIREBIRD

Discussão sobre Banco de Dados e RDDs para Clipper/[x]Harbour.

Moderador: Moderadores

 

Duvidas sobre FIREBIRD

Mensagempor helio » 27 Jul 2009 20:45

Pessoal gostaria de saber se tem algum comando que possa devolver a quantidade de pessoas que estao acessando o banco FIREBIRD naquele momento.
Uso Xharbour 0.99.7 e o SQLRDD.

Valeu pela Atencao antecipadamente,

Helio Beltrao Jr.
Helio Beltrao Jr.
msn: helio@htisistemas.com
Avatar de usuário

helio
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 175
Data de registro: 04 Ago 2004 10:36
Cidade/Estado: São Bento do Una-PE
Curtiu: 0 vez
Mens.Curtidas: 0 vez

Re: Duvidas sobre FIREBIRD

Mensagempor sygecom » 29 Ago 2009 13:45

Eu estava procurando algo assim ! Até achei que o proprio SQLRDD tinha isso proprio, você consegui resolver ?
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
leonardodemachado@hotmail.com

Faça você também sua doação esse fórum é uma lenda viva: http://www.pctoledo.com.br/doacao
Avatar de usuário

sygecom
Usuário Nível 7

Usuário Nível 7
 
Mensagens: 7005
Data de registro: 21 Jul 2006 10:12
Cidade/Estado: Alvorada-RS
Curtiu: 1 vez
Mens.Curtidas: 130 vezes

Re: Duvidas sobre FIREBIRD

Mensagempor Maligno » 01 Set 2009 12:02

Que eu saiba, o único jeito é usar a API de serviços do Firebird (isc_database_info). Existe na net função C pra isso. É o caso de baixar e adaptar para o [x]Harbour.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar de usuário

Maligno
Membro Master

Membro Master
 
Mensagens: 6390
Data de registro: 06 Jul 2004 01:40
Cidade/Estado: Londrina/PR
Curtiu: 1 vez
Mens.Curtidas: 14 vezes

Re: Duvidas sobre FIREBIRD

Mensagempor Maligno » 01 Set 2009 12:14

Aliás, um adendo: me parece que funcionalidade desse tipo estava para ser incluída no projeto para ser acessada via comando SQL. Mas acho que ainda não existe.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar de usuário

Maligno
Membro Master

Membro Master
 
Mensagens: 6390
Data de registro: 06 Jul 2004 01:40
Cidade/Estado: Londrina/PR
Curtiu: 1 vez
Mens.Curtidas: 14 vezes

Re: Duvidas sobre FIREBIRD

Mensagempor sygecom » 01 Set 2009 14:13

Obrigado Maligno,
Eu consegui resolver, isso já está disponivel na versão 2.1, e como não pretendo usar versão menor que essa, para min ficou perfeito:

Function Cont_users
Local aret := {}
Local vCONT:=0

   IF eTIPO_SQL="POSTGRESQL"
      cSQL := "select count(*) from pg_stat_activity"
   ELSEIF eTIPO_SQL="MYSQL"
      cSQL := "SELECT * FROM information_schema.`PROCESSLIST`"
   ELSEIF eTIPO_SQL="FIREBIRD"
      cSQL := "SELECT MON$USER, MON$REMOTE_ADDRESS, MON$REMOTE_PID, MON$TIMESTAMP FROM MON$ATTACHMENTS WHERE MON$ATTACHMENT_ID <> CURRENT_CONNECTION"
   ENDIF
   oSql := SR_GetConnection()
   osql:exec(cSQL ,,.t.,@aret)
   IF eTIPO_SQL="POSTGRESQL"
      vCONT=(aret[1,1]/2)
   ELSEIF eTIPO_SQL="MYSQL"
      vCONT=(len(aret)/2)
   ELSEIF eTIPO_SQL="FIREBIRD"
      vCONT=(len(aret)-1)
      IF vCONT=0
         vCONT=1
      ENDIF
   ENDIF
Return(vCONT)
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
leonardodemachado@hotmail.com

Faça você também sua doação esse fórum é uma lenda viva: http://www.pctoledo.com.br/doacao
Avatar de usuário

sygecom
Usuário Nível 7

Usuário Nível 7
 
Mensagens: 7005
Data de registro: 21 Jul 2006 10:12
Cidade/Estado: Alvorada-RS
Curtiu: 1 vez
Mens.Curtidas: 130 vezes

Re: Duvidas sobre FIREBIRD

Mensagempor Maligno » 01 Set 2009 16:56

Isso mesmo. Depois que encontrei algo sobre as tabelas virtuais de monitoramento do Firebird. Aliás, uma documentação mais completa:

http://fisheye1.atlassian.com/browse/~r ... ing_tables

Muito embora MON$ATTACHMENTS não tenha nenhum recurso para dizer diretamente quantos ou quais usuários estão conectados à uma determinada tabela. Acho que se deve trabalhar em cima do campo MON$ATTACHMENT_NAME. Rodei uma string no IBExpert e esse campo retornou o nome de caminho completo do banco de dados, o que é compreensível, haja vista que é a única forma de identificar um banco de dados. Se constasse apenas o nome, seria um erro.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar de usuário

Maligno
Membro Master

Membro Master
 
Mensagens: 6390
Data de registro: 06 Jul 2004 01:40
Cidade/Estado: Londrina/PR
Curtiu: 1 vez
Mens.Curtidas: 14 vezes

Re: Duvidas sobre FIREBIRD

Mensagempor sygecom » 02 Set 2009 11:52

Aproveitando o topico, como você está fazendo a manutenção das base de dados em Firebird, lhe pergunto por que conforme vai sendo usado muito a base de dados vai crescendo e se usar o GBAK para fazer o backup e restore ele diminui significativamente o tamanho da base de dados.
Com isso fiquei com duas duvidas.
1º-Como fazer para saber se a Base de dados pode ser diminuida, se tem como calcular algo via comando SQL da porcentagem que posso diminuir.
2º-Eu fiz o teste usando o GBAK com Backup e Restore para poder diminuir o tamanho alocado pelo Firebird e vi que demorou muito para restaurar a base dados, será que teria alguma outra maneira mais rapida de fazer essa manutenção na base de dados ?

Desde já agradeço qualquer dica.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
leonardodemachado@hotmail.com

Faça você também sua doação esse fórum é uma lenda viva: http://www.pctoledo.com.br/doacao
Avatar de usuário

sygecom
Usuário Nível 7

Usuário Nível 7
 
Mensagens: 7005
Data de registro: 21 Jul 2006 10:12
Cidade/Estado: Alvorada-RS
Curtiu: 1 vez
Mens.Curtidas: 130 vezes

Re: Duvidas sobre FIREBIRD

Mensagempor Maligno » 02 Set 2009 13:40

O tamanho do banco de dados dependerá do tamanho da página escolhida no momento da criação. Para uma aplicação que tem muitas inserções, maior a página. Se o banco for mais utilizado para pesquisa, menor. Acontece que a cada inclusão, o servidor mantém essa página mais ou menos do tamanho especificado. Assim, ficam "buracos" no arquivo, o que facilita e acaba aumentando a velocidade de inclusões futuras. O ideal é não esquentar a cabeça com o tamanho do arquivo. Na dúvida, usa-se o tamanho default de 4KB para as páginas.

Quanto ao GBAK, nunca usei porque nunca precisei. Só fiz alguns testes para quando um dia precisar. Não sei dizer se é rápido ou é lento, porque só usei em arquivos pequenos. Aí é rápido mesmo. Mas é preciso tomar cuidado para não ter ninguém "logado" no banco, porque senão pode corromper o arquivo.

Que eu saiba, não há recurso para pesquisar o servidor sobre o tamanho do arquivo. Acredito que não deve ter nada disso. Muito menos por SQL. Talvez por alguma função da API. Mas não sei dizer. O que você pode fazer para diminuir o ritmo de crescimento do arquivo é diminuir o tamanho da página. Mas se for um sistema com muitas conexões concorrentes, pode haver perda de velocidade em inclusões.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar de usuário

Maligno
Membro Master

Membro Master
 
Mensagens: 6390
Data de registro: 06 Jul 2004 01:40
Cidade/Estado: Londrina/PR
Curtiu: 1 vez
Mens.Curtidas: 14 vezes

Re: Duvidas sobre FIREBIRD

Mensagempor sygecom » 02 Set 2009 13:53

Obrigado pelas dicas.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
leonardodemachado@hotmail.com

Faça você também sua doação esse fórum é uma lenda viva: http://www.pctoledo.com.br/doacao
Avatar de usuário

sygecom
Usuário Nível 7

Usuário Nível 7
 
Mensagens: 7005
Data de registro: 21 Jul 2006 10:12
Cidade/Estado: Alvorada-RS
Curtiu: 1 vez
Mens.Curtidas: 130 vezes




Retornar para Banco de Dados

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 2 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro