Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #57 da revista programar. Faz já o download aqui!

watt

Procuro dica sobre utilização de C# com Mysql

Mensagens Recomendadas

watt    0
watt

Boas pessoal!

estou com um problema não muito agradavel :P estou a desenvolver um jogo, e por vezes tenho que fazer uma serie de escritas na Bd, e ele começa a dar muito time out's, á alguma forma que eu posso resolver isto?, sem perder dados.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
watt    0
watt

ok... axo que não me expliquei bem ... é assim eu ligar, ler e escrever na bd consigo, o problema é que qd quero escrever muita coisa ao mesmo tempo, ele dá time out's, sei que á por ai um código que faz a gestão do da escrita na bd, de forma a evitar os times out, mas o que me está a acontecer é que não encontro. e estava na esperança que aparecesse alguém que tivesse tido o prob, e que o tivesse consigo ultrapassar.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
M6    75
M6

Aumenta o timeout na configuração da bd ou faz transacções com checkpoits intermédios, em principio deve resolver o teu problema.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
killercode    1
killercode

pa... se da timeouts defines um valor de timeout na sqlconnection mais elevado, agora espero q isso esteja mais de um minuto a enviar informação.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
watt    0
watt

Correcto.

Numa transacção é comum fazer commits intermédios, isso é um checkpoint.

e isso vai dar mais velocidade á minha BD ?

é que neste momento estou a deparar-me com problemas de velocidade na base de dados.  crio varias thread, onde há leitura e escrita de dados no minimo i vez por minuto, quando são poucas threads a trabalhar ao mesmo tempo, o acesso á bd é rapido, mas quando passa das 200 começa a ficar muito lento.

Á alguma regra ou algo que me permita escrever mais de 200 registos quase ao mesmo tempo, se meter a bd lenta ?

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
DanielAmorim    0
DanielAmorim

Se tiveres 200 threads a ler e escrever na base de dados terás 200 ligações abertas... será que o gestor de base de dados suporta isso?

Acredito que não. Muitas vezes deve-te estar a dar timeout porque não consegue abrir uma ligação à base de dados.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
MytyMyky    0
MytyMyky

Se estiveres a utilizar a classe SQLCommand (ou semelhante) para enviar os comandos à BD, podes alterar a propriedade de CommandTimeout para o o comando individual e aumentar o tempo por aí. Verifica no entanto se n é possível algum tipo de optimização do SQL q estás a usar, ou mesmo do processo de preparação do envio, e ainda se não tens por aí algum loop interminável.

Há dias escrevi sobre isto no meu blog.. http://miguelalho.com/?p=679

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
killercode    1
killercode

epá... não deves abrir 200 ligações a base de dados... pelo menos da maneira que estas a fazer..... tens mesmo de ter 200 treads a correr ao mesmo tempo e a aceder ao mesmo tempo...

Na pior das hipoteses podes ter uma ligação activa... e elas vão todas usar a mesma ligação... talvez assim consigas alguma coisa!? mas como tambem não estou dentro do ambito...

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade