USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Velocidade de uma Consulta
Ralph Teixeira
RIO DE JANEIRO
RJ - BRASIL
Postada em 23/07/2005 22:26 hs            
Faala Pessol blz
Eu uso o Banco de Dados SQL SERVER 2000
 
Estou testando a velocidade de minha consulta de duas formas
 
Existem 10.000 registros de nomes
 
1° teste: chamo a consulta do  proprio  vb esta dando
Reg.Open "select * from paciente where Pac like '" & maria & "' order by Pac", Banco
Leva tres segunda para trazer 975 registros
            
2° teste: depois testo com uma store procedure no SQL SERVER
Reg.Open "exec chamapac @tpac = '" & maria & "'", Banco, adOpenDynamic, adLockOptimistic
Leva os mesmos tres segundos para trazer os 975 registros
 
A minha duvida é o seguinte, não era para ser mais rapido consultado com uma store procedure no SQL Server?? tem alguma coisa que deixa a consulta mais rapida??
 
Desde ja agradeço a todos
 

Ralph Teixeira

     
Elieser Topassi
Pontos: 2843 Pontos: 2843
SÃO JOSÉ DO RIO PRETO
SP - BRASIL
Postada em 24/07/2005 09:24 hs            
Ta em rede???
 
Vc deve considerar o trafego na rede...
 
Mas mesmo q vc nao esteja usando em rede, a consulta eh semelhante... pois o q leva 3 segundos eh a varredura do banco, e a montagem do recordset retornado...
Testa uma atualizacao, ou exclusao, usando os metodos do ADO, o Transact-SQL e depois a SP.. ai vc vai ver q realmente a SP eh mais rapida...
Mas amigo, eu vou te dar minha opniao: uso SPs pela sua segurança... pois em desempenho, a diferença eh minima entre a SP e o Transact-SQL... principalmente se seu banco for SQL Server... em outros bancos, existe realmente uma boa diferença, mas no SQL Server, no IB e no Oracle (os q ja testei) a diferença foi minima...
 
Qto a deixar sua consulta mais rapida, existem meios sim, mas vc perde em desempenho em outras funcoes... vc deve avaliar se compensa... Uma boa alternativa eh o uso de um Indice no campo da pesquisa, mas vc deve ter em mente q qto mais indices vc tiver em uma tabela, mais lento ela fica pra fazer inclusoes, alteracoes e exclusoes... vc deve saber balancear....


Elieser Carlos Topassi
Analista de Sistemas - Desenvolvedor VB/ASP/.Net

e-mail/msn:
elieser_topassi@yahoo.com.br
São José do Rio Preto,SP - Brasil
_____________________________________________________
Emoções "O caminho do tolo aos seus prórios olhos lhe parece reto, mas o sábio ouve conselhos" (Pv 12:15)

     
Ralph Teixeira
não registrado
Postada em 24/07/2005 12:25 hs   
Elieser Blz..
 
Esta em rede onde desenvolvo o sistema, mas estou testando em casa e  estou fazendo localmente onde esta instalado o SQL SERVER,
 
Voce acha que vai ter diferença na rede usando o SPs tanto para consultas, alterações e exclusões?
 
O programa que estou desenvolvendo as consultas estam todas no proprio  vb, voce acha que vale a pena passar para Sps?
 
Como faço para copiar as SPs que vou criar em casa e posteriormente colocar no servidor do trabalho?
 
valeu mesmo pela ajuda
     
Elieser Topassi
Pontos: 2843 Pontos: 2843
SÃO JOSÉ DO RIO PRETO
SP - BRASIL
Postada em 25/07/2005 08:35 hs            
Ralph,
 
O desempenho na rede vai ser um pouco pior, independente de usar SPs ou não... Eu não vejo vantagens em usar SPs em consultas, a menos q a consulta for mto complexa, envolvendo Loops, calculos exagerados, ou coisas do tipo.
 
Qto a inclusões, atualizações e exclusões, eu recomendo sim usar SPs, pois há mais segurança em se trabalhar os dados diretamente na base... vc pode ainda usar Triggers para validação de dados e referencias... qto ao desenpenho, em atualizações e inclusões, vc realmente vai encontrar vantagens em usar SPs, mas para uma rede com pouco trafego, um servidor com poucos clientes ou um banco não mto grande e com poucos indices, essa diferença vai ser insignificante...
O trabalho dentro do proprio servidor eh realmente recomendado principalmente para garantir a segurança dos dados, usando recursos como Triggers e Transações... alem do mais, na Web o uso de SPs reduz mto o tempo de resposta de um servidor remoto...
 
Qto a copia de suas SPs, o SQL tem uma ferramenta chamada Query Analizer, onde vc pode gerar script para criação dos objetos q existem no seu banco. Ai basta vc executar esses scripts no outro servidor. Com o Query Analizer conectado no seu banco, pressione F8, e abrirá uma janela chamada Object Browser. Vc deve selecionar o seu banco, o objeto q deseja criar o script, e clicar sobre o objeto com o botão direito. No menu, selecione "Script Object to New Window As" e selecione "Create" para script de criação ou "Alter" para script de modificação... ai eh so vc salvar os scripts e executar no outro servidor...
 
Espero ter ajudado...
 
Flw!


Elieser Carlos Topassi
Analista de Sistemas - Desenvolvedor VB/ASP/.Net

e-mail/msn:
elieser_topassi@yahoo.com.br
São José do Rio Preto,SP - Brasil
_____________________________________________________
Emoções "O caminho do tolo aos seus prórios olhos lhe parece reto, mas o sábio ouve conselhos" (Pv 12:15)

     
Martini
Pontos: 2843 Pontos: 2843
PAROBÉ
RS - BRASIL
Postada em 25/07/2005 13:23 hs         
tente não usar o *, sempre coloque os nomes das colunas que você deseja ter retorna, é mais rápido ... exemplo:
 
Select Codigo, Via, Nome
From Pessoa
Where Nome Like 'Maria%'
     
Eduardo Lima
não registrado
Postada em 25/07/2005 15:53 hs   
Bom minha opinião é a seguinte, o melhor é Usar SP. Isso é o recomendado pelos especialista e professores que ministram cursos, agora p/ ficar + rápido, vc deve levar em consideração o tráfego de rede.
obs: tente executar essa procedure no Servidor apenas p/ vc ter a diferença, de tráfego de rede.
 
     
Página(s): 1/1    


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



CyberWEB Network Ltda.    © Copyright 2000-2024   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página