• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

watt

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

12 mensagens neste tópico

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

desculpa a minha ignorancia ... mas o que é que chamas de checkpoits intermédios ?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Se entendi bem, é ires enviado as coisas por partes, em vez de enviares tudo de uma vez, divides.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Correcto.

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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 ?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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...

0

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