Inficiência do JDBC ao executar Query com Join no SQL Server!!!  XML
Índice dos Fóruns » Java Avançado
Autor Mensagem
faelcavalcanti
GUJ Ranger
[Avatar]

Membro desde: 03/05/2006 13:16:25
Mensagens: 960
Localização: Recife-PE
Offline

Pessoal, estou com uma bronca ao tentar rodar uma query utilizando JDBC , SQL Server 2000 e servidor Tomcat 5.0.x.

No meu caso o problema está na demora da execução do método abaixo:


Segue abaixo um código mais completo sobre o problema da demora acima.


Segue abaixo o meu sql que é passado para o prepareStatement.


Sendo que quando é selecionado um filtro no formulário .jsp, tenho que restringir como segue abaixo


Também tentei da forma abaixo e dá no mesmo.


Resumindo no Query Analyser do SQL Server o resultado da busca não dura nem 1 segundo aqui, pois traz os resultado no mesmo instante, sendo que quando mando rodar no java através do comando abaixo, demora uma eternidade e não traz nunca.


Alguém poderia me sugerir alguma dica, mudança ou melhoria. Fiquei sabendo de alguns bugs que o driver do jdbc possui por conta de inficiência durante a execução de algumas queries para bancos específicos, mas será que isto é o caso de ter que ficar mudando de driver ?

Agradeço quem puder me ajudar!!! Grande abraço!!

Obrigado, Rafael Cavalcanti.


--
http://faelcavalcanti.wordpress.com/ :: http://pe.debianbrasil.org/
--
Acredite um pouco mais na força de sua própria intuição. Muitas vezes deixamos de realizar algo de bom ou que nos favoreça simplesmente porque achamos tudo muito difícil e por isso nem começamos. Moral da história: A vida é o caminho e não o destino, você é o arquiteto do seu caminho!
--
Obrigado, Rafa Rocha!
[WWW]
Pedrosa
JWizard
[Avatar]

Membro desde: 13/07/2005 13:08:08
Mensagens: 2505
Localização: São Paulo - Brasil
Offline

Qual driver vc está usando? JTDS?
okara
JavaTeenager

Membro desde: 16/05/2005 08:47:08
Mensagens: 152
Offline

Por que o driver JTDS é ruim ?
Qual poderia usar ?
Pergunto isso, porqueê temos um problema de lentidão e estamos achando que é o driver.
Pedrosa
JWizard
[Avatar]

Membro desde: 13/07/2005 13:08:08
Mensagens: 2505
Localização: São Paulo - Brasil
Offline

JTDS é o melhor driver para trabalhar com SQL.

http://jtds.sourceforge.net/benchTest.html
Filipe Sabella
GUJ Expert

Membro desde: 12/03/2003 11:25:57
Mensagens: 4680
Offline

Ao executar no QueryAnalyser pela primeira vez (abrir o programa e rodar a query) também é instantâneo?

14 joins numa query não é algo bom cara, poderia talvez usar uma View.

Former LIPE.
[ICQ]
faelcavalcanti
GUJ Ranger
[Avatar]

Membro desde: 03/05/2006 13:16:25
Mensagens: 960
Localização: Recife-PE
Offline

Olá pessoal. Na verdade o meu problema foi de um sql, em que a própria querie abaixo já resolvia, tal como :


Onde no where, como existe


Estava efetuando mais um filtro mas de forma que ficasse dessa forma.


Onde esta nova condição não era necessária, pois toda a implementação eu já tinha tratado em uma implementação do relatório, via scriplet no jasper reports. Porém, foi uma falha minha não ter percebido isto. Mas valeu o aprendizado.

Quanto a criação de views, com certeza chegou-se ao ponto de ter que criar para minimizar toda essa abstração de forma a unificar esta lógica de acesso. Quanto à versão do driver JDBC não faço a menor idéia, só tenho um [.jar] do SQL Server e não sei como faço para sabê-lo.

Valeu pessoal pela força. Só achei também estranho uma coisa já tenho bastantes mensagens postadas aqui fora esta e estou como se fossem 2(duas) agora.

Obrigado, Rafael Cavalcanti



--
http://faelcavalcanti.wordpress.com/ :: http://pe.debianbrasil.org/
--
Acredite um pouco mais na força de sua própria intuição. Muitas vezes deixamos de realizar algo de bom ou que nos favoreça simplesmente porque achamos tudo muito difícil e por isso nem começamos. Moral da história: A vida é o caminho e não o destino, você é o arquiteto do seu caminho!
--
Obrigado, Rafa Rocha!
[WWW]
Pedrosa
JWizard
[Avatar]

Membro desde: 13/07/2005 13:08:08
Mensagens: 2505
Localização: São Paulo - Brasil
Offline

Para saber qual driver vc está usando, olhe a classe de conexão?

fbanin
Debugger
[Avatar]

Membro desde: 31/03/2005 07:39:04
Mensagens: 62
Offline

LIPE wrote:Ao executar no QueryAnalyser pela primeira vez (abrir o programa e rodar a query) também é instantâneo?

14 joins numa query não é algo bom cara, poderia talvez usar uma View.


Me desculpe, mas usar uma view tb não é algo muito bom... o certo é otimizar o máximo possível, fugindo da view...

Fabiano Banin
e-mail: fbanin@gmail.com
[MSN]
Filipe Sabella
GUJ Expert

Membro desde: 12/03/2003 11:25:57
Mensagens: 4680
Offline

Eu desculpo você fbanin

Former LIPE.
[ICQ]
Pedrosa
JWizard
[Avatar]

Membro desde: 13/07/2005 13:08:08
Mensagens: 2505
Localização: São Paulo - Brasil
Offline

Talvez nesse caso seria bakana usar uma stored procedure.
 
Índice dos Fóruns » Java Avançado
Ir para:   
Powered by JForum 2.1.8 © JForum Team