Jump to content


Photo

Mais Rapidez Para O Bd


  • Faça o login para participar
36 replies to this topic

#1 Matrix2003

Matrix2003

    24 Horas

  • Banidos
  • PipPipPipPipPip
  • 414 posts
  • Sexo:Não informado
  • Localidade:Bauru/SP
  • Interesses:ASP SOMENTE ASP

Posted 16/10/2004, 16:14

Olá amigos estou com um banco de dados de mais de 3.000 e-mail o que acontece trabalho com o newletter e quando vou mandr e-mails fica muito lento e as vezes até da erro de envio como fazer para ficar mais rapido sera que existe a possibilidade
Pessoal espero ajudar sempre que possivél todos vocês, não se esqueça do nosso site www.onemasters.com agora com muito mais atualidades todos os dias..
Projetos e muito mais....Valeu
Ricardo Zanelati

#2 Prog

Prog

    ...

  • Ex-Admins
  • 3761 posts
  • Sexo:Masculino
  • Localidade:Rio de Janeiro/RJ
  • Interesses:TI, Software Livre, Design Digital e Rock'n'Roll.

Posted 16/10/2004, 16:21

Acredito que este problema não esteja diretamente relacionado a velocidade do banco de dados, mas sim ao sistema num todo...

Talvez a forma como vc faz o envio da newsletter deva ser reavaliado. Alguns servidores limitam o uso de um determinado recurso ou colocam timeout em determinados serviços, se vc passa muito tempo executando um determinado recurso, o próprio servidor se envarrega de "encerrar" a conexão, isto evita problemas no servidor.
------
Mero mortal!

#3 leanjo

leanjo

    Doutor

  • Usuários
  • 912 posts
  • Sexo:Não informado
  • Interesses:...

Posted 16/10/2004, 16:31

eu tb tenho um sistema de newsletter...
como que sites grandes e que nao sao servidores proprios enviam newsletter em grande quantidade sem esse problema?

valeu

#4 Agente Linhares

Agente Linhares

    fuis...abraços!

  • Ex-Admins
  • 3138 posts
  • Sexo:Não informado
  • Localidade:Biritiba Mirim-SP

Posted 16/10/2004, 16:32

é..um cara outra vez falo q tava havendo o msm com ele. parece q indicaram a ele dividir de tantos e tantos mails p/ enviar
> Busca On-line - A Busca que faltava na Internet! - Cadastre-se!
---------------------------------------------------------------------------
> BRdesign.NET - Soluções em Websites e Sistemas E-Commerce.
---------------------------------------------------------------------------
> BR-ecommerce - Sua loja virtual na internet! - Apenas R$99,90 mensais (hospedagem inclusa)!

#5 leanjo

leanjo

    Doutor

  • Usuários
  • 912 posts
  • Sexo:Não informado
  • Interesses:...

Posted 16/10/2004, 16:37

é verdade
uma vez fui mandar uma newsletter e travou a xxxxxx toda.
tem alguma diferenca em news com access ou mysql? o envio fica mais eficaz de acordo com o bd?

#6 Matrix2003

Matrix2003

    24 Horas

  • Banidos
  • PipPipPipPipPip
  • 414 posts
  • Sexo:Não informado
  • Localidade:Bauru/SP
  • Interesses:ASP SOMENTE ASP

Posted 16/10/2004, 16:43

leanjo não tem como passar para mim este newletter teu que não da este tipo de problema coloca para download
Pessoal espero ajudar sempre que possivél todos vocês, não se esqueça do nosso site www.onemasters.com agora com muito mais atualidades todos os dias..
Projetos e muito mais....Valeu
Ricardo Zanelati

#7 Prog

Prog

    ...

  • Ex-Admins
  • 3761 posts
  • Sexo:Masculino
  • Localidade:Rio de Janeiro/RJ
  • Interesses:TI, Software Livre, Design Digital e Rock'n'Roll.

Posted 16/10/2004, 16:52

A listagem de um unico campo de uma unica tabela não vai melhorar nem piorar o rendimento do seu sistema estando em Access ou MySQL, desejando que exista, pelo menos um, campo indexado.

Como comentado anteriormente, a performance deste processo depende do sistema num todo...

Não tenho nenhum newslatter pronto, mas o tivesse, faria desta forma:

- executar o select na tabela dos emails;
- enviar uma quantidade limitada, vamos supor, 10 emails;
     - este item só funciona o envio de vários simultaneos se os emails não forem personalizados, por exemplo, com o nome do cliente;
- gravar em uma tabela temporária, os emails que já foram enviados, somente para certificar no caso de ocorrer algum problema;
     - caso um problema venha a ocorrer, basta prosseguir somente com os usuários que ainda não estão na tabela temporária;
- termina a execução;


Isto faria com que o sistema ficasse mais lento, porém, mais confiavel.

Edição feita por: Prog, 16/10/2004, 16:56.

------
Mero mortal!

#8 leanjo

leanjo

    Doutor

  • Usuários
  • 912 posts
  • Sexo:Não informado
  • Interesses:...

Posted 16/10/2004, 16:53

o meu tb trava
foi como o prog falou, o probl pode nao ser do bd

vamos ver se alguem tem mais alguma informacao

#9 Matrix2003

Matrix2003

    24 Horas

  • Banidos
  • PipPipPipPipPip
  • 414 posts
  • Sexo:Não informado
  • Localidade:Bauru/SP
  • Interesses:ASP SOMENTE ASP

Posted 16/10/2004, 16:59

Então de uma olhada neste codigo
<!--#include file = "config.asp"-->
<%
'Abre a conexao com o banco de dados
Set Conex = Server.CreateObject ("ADODB.Connection") 
Conex.open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="& Server.MapPath("../database/dados.mdb")

'Pega os dados digitados no form
assunto = request("assunto")
mensagem = request("mensagem")

'Faz a listagem dos usuarios para pegar o nome
Set listar = Server.CreateObject("ADODB.Recordset")
sql = "Select * from usuarios"
listar.open sql, conex, 1,1

'Faz um while
while not listar.eof

'Pega o nome e o email do usuario
Set nome = Server.CreateObject("ADODB.Recordset")
sql = "Select * from usuarios where id="&listar("id")
nome.open sql, conex, 1,1

while not nome.eof
'envia o e-mail
	Set objmail = Server.CreateObject("CDONTS.NewMail") 
  objmail.from = nome_admin & "<"&email_admin&">"
  objmail.to = nome("email")
  objmail.subject = assunto
  objmail.body = "Olá <b>"& nome("nome") & "</b><br><br>&nbsp;&nbsp;&nbsp;&nbsp;" & mensagem
  objMail.Bodyformat = 0
  objMail.MailFormat = 0
	objmail.send
	
'Move para o próximo registro
nome.movenext
wend

listar.movenext
wend

'Exibe a mensagem de que os emails foram enviados com sucesso
response.Write("Os e-mails foram enviados com sucesso.")
%>

Preciso mudar algo
Pessoal espero ajudar sempre que possivél todos vocês, não se esqueça do nosso site www.onemasters.com agora com muito mais atualidades todos os dias..
Projetos e muito mais....Valeu
Ricardo Zanelati

#10 Prog

Prog

    ...

  • Ex-Admins
  • 3761 posts
  • Sexo:Masculino
  • Localidade:Rio de Janeiro/RJ
  • Interesses:TI, Software Livre, Design Digital e Rock'n'Roll.

Posted 16/10/2004, 17:08

Não há a necessidade destes 2 whiles, com apenas 1 seria possivel fazer o envio da sua newslatter.

...
'Faz a listagem dos usuarios para pegar o nome
Set listar = Server.CreateObject("ADODB.Recordset")
sql = "Select * from usuarios"
listar.open sql, conex, 1,1

'Faz um while
while not listar.eof
'Pega o nome e o email do usuario
Set nome = Server.CreateObject("ADODB.Recordset")
sql = "Select * from usuarios where id="&listar("id")
nome.open sql, conex, 1,1

while not nome.eof
'envia o e-mail
Set objmail = Server.CreateObject("CDONTS.NewMail")
objmail.from = nome_admin & "<"&email_admin&">"
objmail.to = nome("email")
objmail.subject = assunto
objmail.body = "Olá <b>"& nome("nome") & "</b><br><br>&nbsp;&nbsp;&nbsp;&nbsp;" & mensagem
objMail.Bodyformat = 0
objMail.MailFormat = 0
objmail.send

'Move para o próximo registro
nome.movenext
wend

listar.movenext
wend
...


somente este código resolve
...
Set nome = Server.CreateObject("ADODB.Recordset")
sql = "Select * from usuarios"
nome.open sql, conex, 1,1

[COLOR=red]while[/COLOR] not nome.eof
'envia o e-mail
Set objmail = Server.CreateObject("CDONTS.NewMail") 
 objmail.from = nome_admin & "<"&email_admin&">"
 objmail.to = nome("email")
 objmail.subject = assunto
 objmail.body = "Olá <b>"& nome("nome") & "</b><br><br>&nbsp;&nbsp;&nbsp;&nbsp;" & mensagem
 objMail.Bodyformat = 0
 objMail.MailFormat = 0
objmail.send

'Move para o próximo registro
nome.movenext
wend
...

ps.: este é somente 1 dos problemas, mas este era um problema realmente muito importante, os outros problemas são apenas na forma de fazer a coisa acontecer, isto vai de programador p/ programador.
------
Mero mortal!

#11 Matrix2003

Matrix2003

    24 Horas

  • Banidos
  • PipPipPipPipPip
  • 414 posts
  • Sexo:Não informado
  • Localidade:Bauru/SP
  • Interesses:ASP SOMENTE ASP

Posted 16/10/2004, 17:13

paresse que fiquei mais confudido com esta esplicação não tem como postar o codigo inteiro mudado
Pessoal espero ajudar sempre que possivél todos vocês, não se esqueça do nosso site www.onemasters.com agora com muito mais atualidades todos os dias..
Projetos e muito mais....Valeu
Ricardo Zanelati

#12 Prog

Prog

    ...

  • Ex-Admins
  • 3761 posts
  • Sexo:Masculino
  • Localidade:Rio de Janeiro/RJ
  • Interesses:TI, Software Livre, Design Digital e Rock'n'Roll.

Posted 16/10/2004, 17:20

Código inteiro:

<!--#include file = "config.asp"-->
<%
'Abre a conexao com o banco de dados
Set Conex = Server.CreateObject ("ADODB.Connection") 
Conex.open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="& Server.MapPath("../database/dados.mdb")

'Pega os dados digitados no form
assunto = request("assunto")
mensagem = request("mensagem")

'Pega o nome e o email do usuario
Set nome = Server.CreateObject("ADODB.Recordset")
sql = "Select * from usuarios"
nome.open sql, conex, 1,1

Set objmail = Server.CreateObject("CDONTS.NewMail")
while not nome.eof
'envia o e-mail
 objmail.from = nome_admin & "<"&email_admin&">"
 objmail.to = nome("email")
 objmail.subject = assunto
 objmail.body = "Olá <b>"& nome("nome") & "</b><br><br>&nbsp;&nbsp;&nbsp;&nbsp;" & mensagem
 objMail.Bodyformat = 0
 objMail.MailFormat = 0
objmail.send

'Move para o próximo registro
nome.movenext
wend
Set objmail = null

'Exibe a mensagem de que os emails foram enviados com sucesso
response.Write("Os e-mails foram enviados com sucesso.")
%>

ps.: alterei a posição da linha Set objmail = Server.CreateObject("CDONTS.NewMail") e inclui a linha Set objmail = null somente para facilitar a vida do sistema operacional.
------
Mero mortal!

#13 Matrix2003

Matrix2003

    24 Horas

  • Banidos
  • PipPipPipPipPip
  • 414 posts
  • Sexo:Não informado
  • Localidade:Bauru/SP
  • Interesses:ASP SOMENTE ASP

Posted 16/10/2004, 17:34

prog veja só deu este erro

error '80040108'
/email/admin/enviar_email.asp, line 18
Pessoal espero ajudar sempre que possivél todos vocês, não se esqueça do nosso site www.onemasters.com agora com muito mais atualidades todos os dias..
Projetos e muito mais....Valeu
Ricardo Zanelati

#14 Prog

Prog

    ...

  • Ex-Admins
  • 3761 posts
  • Sexo:Masculino
  • Localidade:Rio de Janeiro/RJ
  • Interesses:TI, Software Livre, Design Digital e Rock'n'Roll.

Posted 16/10/2004, 17:47

O que exatamente tem na sua linha 18? O código esta identico ao que eu postei?? Sem colocar nem tirar nenhuma linha???
------
Mero mortal!

#15 Matrix2003

Matrix2003

    24 Horas

  • Banidos
  • PipPipPipPipPip
  • 414 posts
  • Sexo:Não informado
  • Localidade:Bauru/SP
  • Interesses:ASP SOMENTE ASP

Posted 16/10/2004, 18:55

cra sem tirar e sem colocar do mesmo jeito que você colocou e só tem isto na folha a linha 18 é só contar
Pessoal espero ajudar sempre que possivél todos vocês, não se esqueça do nosso site www.onemasters.com agora com muito mais atualidades todos os dias..
Projetos e muito mais....Valeu
Ricardo Zanelati




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq