|
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
|
|
|
|
|
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 _____________________________________________________ "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
|
|
|
|
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 _____________________________________________________ "O caminho do tolo aos seus prórios olhos lhe parece reto, mas o sábio ouve conselhos" (Pv 12:15)
|
|
|
|
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.
|
|
|
|