Jump to content


Photo

Aumentar Velocidade De Ligacao A Db


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

#1 ordep

ordep

    Turista

  • Usuários
  • 52 posts
  • Sexo:Não informado

Posted 27/03/2006, 08:19

Boax ,
Eu estou fazendo um programa e tenho de fazer um select a uma base de dados gigante msm porem esta em rede interna demora cerca de 1 minuto mas para se usar na net deve demorar um tempao msm queria saber se há alguma maneira de eu puder melhorar a ligaçao a db para ser um pouco mais rapida ! Se alguem souber ou que tenhe ideias força ai poste aqui :P

A ligacao que uso é :


<%

VAR_CONN = "DRIVER={SQL SERVER};SERVER=***; UID=****;Pwd=*****;"
VAR_CONN = VAR_CONN & "DATABASE=dni;"
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.CommandTimeout = 0
Conn.Open VAR_CONN 
set rs=Server.CreateObject("ADODB.recordset")

 %>

<% Response.Write " Pedro 2006 " %>

#2 juninhobp

juninhobp

    12 Horas

  • Usuários
  • 158 posts
  • Sexo:Não informado
  • Localidade:Rio de Janeiro

Posted 27/03/2006, 09:49

Po posta seu codigo SQL ai da consulta no banco please!!!!

Po eu algumas vezes vi em sites que nao era legal usar RECORDSET, agora nao me pergunte pq, eu vi o cara falando pra usar por exemplo:

<%

'Supondo que sua variavel de conexao seja ObjConn

Dim pStrSqlBusca

pStrSqlBusca = "select campo1, campo2, campo3 from tabela Nome_da_Tabela"

ObjConn.Execute(pStrSqlBusca)

%>


Nao sei se isso faz mta diferença. Outra coisa eh nunca utilizar

SELECT * FROM NOME_DA_TABELA

isso é um crime, rs.........

outra coisa é vc rever a estrutura de seu banco, dependendo da tabela, vc podera VIEWS, que pode melhorar ate 30% da velocidade de sua consulta

De uma olhadinha nesse artigo aki

http://www.linhadeco...s.asp?id_ac=602


VLWWW!!!!!

Edição feita por: juninhobp, 27/03/2006, 09:50.

Luis Antonio
----------------------------------------------------------
WebMaster - WebDesigner - WebDeveloper

#3 Agente Linhares

Agente Linhares

    fuis...abraços!

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

Posted 27/03/2006, 12:15

Boax ,
Eu estou fazendo um programa e tenho de fazer um select a uma base de dados gigante msm porem esta em rede interna demora cerca de 1 minuto mas para se usar na net deve demorar um tempao msm queria saber se há alguma maneira de eu puder melhorar a ligaçao a db para ser um pouco mais rapida ! Se alguem souber ou que tenhe ideias força ai poste aqui :P

A ligacao que uso é :


<%

VAR_CONN = "DRIVER={SQL SERVER};SERVER=***; UID=****;Pwd=*****;"
VAR_CONN = VAR_CONN & "DATABASE=dni;"
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.CommandTimeout = 0
Conn.Open VAR_CONN 
set rs=Server.CreateObject("ADODB.recordset")

 %>

Leia os tópicos abaixo:

http://forum.wmonlin...howtopic=101576
http://forum.wmonlin...?showtopic=7579

vc vai constatar que quandos e trata de performace, tudo tem sua parcela e alguns detalhes que parecem "pequenos" fazem uma enorme diferença.


Nao sei se isso faz mta diferença. Outra coisa eh nunca utilizar

SELECT * FROM NOME_DA_TABELA

com certeza, faz uma diferença enorme.

pois o SELECT lhe irá retornar TODOS (*) os dados ao invés so do que vc precisa e isso significa muito em tempo.

ao invés de usar:
SELECT * FROM TABELA

use sempre assim por ex.:
SELECT Id,Nome,Email FROM TABELA

mesmo que vc precise de TODOS os dados, especificando-os ao inves d usar o "FROM *" vc tem um resultado + satisfatório em termos de velocidade..
:)

Fique bem atento (como o amigo acima citou) em sua estrutura e organização de Banco de Dados.


imagine um ex.:

2 tabelas em seu BD:

* uma tem os campos: Id, Nome, Email
* outra tem os campos: Id, Nome, Email, CPF, RG, Endereco, Tel

Em qual vc acha q a busca será realziada + rapidamente?
Logicamente, no segundo ex., pois a instrução percorrerá buscando e trazendo informacões em qtde de campos menores q a do outro ex.

partindo dessa lógica, muito coisa faz diferença em termos de "Estrutura de Banco de Dados" ao resultado final e velocidade do mesmo em suas consutas.
> 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)!

#4 ordep

ordep

    Turista

  • Usuários
  • 52 posts
  • Sexo:Não informado

Posted 28/03/2006, 05:15

[font=Arial]
Boax ,
eu vou postar o codigo que estou a usar porque pode nao ser a melhor a meneira de o fazer , ja pensei em cirar uma view no SQL Server e depois liga-la ao ASP para ver se o tempo melhorava , bom mas de qualquer maneira fica a aqui o meu codigo se alguem tiver sugestoes força ai é so dizer pa eu experimentar :P tks ;)



<%
sql = "Select codigo as imp , sum(valor) as valor  from lan_lan where (lan_n='"&Session("w")&"'  or lan_n='" & Session("c") &"'  or lan_n2 ='"&Session("c")&"' ) and year(lan_d) ='"&Session("ano")&"'  and codigo ='A'  group by codigo" 

Set a = Conn.execute(sql)
If a.EOF  and a.EOF  Then

Response.Write "0"
Else
 Response.Write ""& a("valor")&" "
end if
%>[/font]

<% Response.Write " Pedro 2006 " %>




1 user(s) are reading this topic

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

IPB Skin By Virteq