Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

FabianoSouza

[Resolvido] Select em duas bases não roda em página ASP

Recommended Posts

Esta consulta roda perfeitamente no SQL Server. Mas não roda quando executo na página ASP.

 

SELECT PRODUTOS.ProdutoCod, SISTEMAS.SistemasAlias FROM BANCO1.dbo.USUARIOS INNER JOIN PRODUTOS INNER JOIN CONTAS ON PRODUTOS.ProdutoCodConta = CONTAS.ContasCod INNER JOIN SISTEMAS ON PRODUTOS.ProdutoCodSistema = SISTEMAS.SistemasCod INNER JOIN MODULOS ON SISTEMAS.SistemasCodModulo = MODULOS.ModulosCod INNER JOIN BANCO1.dbo.PERFIS ON CONTAS.ContasCod = BANCO1.dbo.PERFIS.PerfilCodConta ON  BANCO1.dbo.USUARIOS.UsuariosCodPerfil = BANCO1.dbo.PERFIS.PerfilCod

 

Help por caridade.

Compartilhar este post


Link para o post
Compartilhar em outros sites

A query na versão MySql pode estar com problemas de performance.

 

Existem índices nestas tabelas ?

A query por um gerenciador (direto no BD) roda ?

Foi feito o Plano de Execução para a query ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

A query na versão MySql pode estar com problemas de performance.

 

Existem índices nestas tabelas ?

A query por um gerenciador (direto no BD) roda ?

Foi feito o Plano de Execução para a query ?

 

Respondendo.

 

As tabelas tem índices e rodo a query pelo SQL Server Management Studio (uso SQL Server 2012). Plano de Execução?? O que seria isso?

 

Estou fazendo uns testes aqui...agora dá o erro "500 - Existe um problema com o recurso que você está procurando e ele não pode ser exibido".

 

Mensagem muito genérica do IIS...não ajuda em nada.

 

Estava pensando aqui...será que tem relação com com a conexão ODBC? São dois bancos, só criei conexão ODBC para um dos bancos. Se tiver relação com conexão como devo proceder? Os dois bancos devem tem os mesmos dados de usuário e senha? Tenho que chamar duas conexões ao fazer o Select?

 

 

 

Obrigado.

 

Respondendo.

 

As tabelas tem índices e rodo a query pelo SQL Server Management Studio (uso SQL Server 2012). Plano de Execução?? O que seria isso?

 

Estou fazendo uns testes aqui...agora dá o erro "500 - Existe um problema com o recurso que você está procurando e ele não pode ser exibido".

 

Mensagem muito genérica do IIS...não ajuda em nada.

 

Estava pensando aqui...será que tem relação com com a conexão ODBC? São dois bancos, só criei conexão ODBC para um dos bancos. Se tiver relação com conexão como devo proceder? Os dois bancos devem tem os mesmos dados de usuário e senha? Tenho que chamar duas conexões ao fazer o Select?

 

 

 

Obrigado.

 

 

 

Ah...achei aqui o tal do Plano de Execução. Rodei isso e aparecerem uns ícones e alguns percentuais. Na maioria dos casos 0%, apenas em seis ícones mostrou 7%. Mas não faço ideia do significado destes gráficos e percentuais.

Continuo tentando...

Compartilhar este post


Link para o post
Compartilhar em outros sites

O Plano de Execução mostra a operação que o BD vai fazer para "resolver" a query, por ele é possível ver se a SQL está otimizada ou não.

 

O caso passado me "cheira" que o tempo de execução excede o esperado (timeout) do BD, aí podem ser um caminhão de coisas.

 

Na realidade a dúvida não envlve MySql e sim Sql Server seria bom o Moderador mover este tópico para lá.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O Plano de Execução mostra a operação que o BD vai fazer para "resolver" a query, por ele é possível ver se a SQL está otimizada ou não.

 

O caso passado me "cheira" que o tempo de execução excede o esperado (timeout) do BD, aí podem ser um caminhão de coisas.

 

Na realidade a dúvida não envlve MySql e sim Sql Server seria bom o Moderador mover este tópico para lá.

 

Opa! Problema resolvido! Agora o mais difícil é explicar o que estava acontecendo ahahah

 

Bom, não sou muito bom em BD então vai uma explicação bem modesta.

 

Basicamente inverti a ordem das coisas. Onde eu tinha que colocar o endereço completo BANCO.dbo.TABELA.Campo era para ser apenas Campo (ou TABELA.Campo).

 

E onde estava apenas Campo (ou TABELA.Campo) passei o endereço completo BANCO.dbo.TABELA.Campo.

 

Era uma questão de "banco dominante e banco dominado".

 

Bom...mas nem tudo são flores. Ao rodar o Plano de Execução notei que o Custo (suponho que seja o consumo de recursos do server) aumentou...chegando a 19% em algumas etapas :-((

 

 

Desculpe a forma simplória de colocar as coisas...mas funcionou. :-)))

 

 

Valew Motta!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.