Dois pontos a ter em conta:
-
Você executou a consulta primeiro no Toad e depois em python + cx_Oracle? A primeira vez que você executa a consulta, o Oracle precisa analisar a consulta, criar um plano de execução e executar o plano: ler do disco na memória (cache de buffer), executar as junções, etc ... Na segunda vez, o Oracle usa o mesmo plano de execução (armazenado na SGA) e lê a partir do cache de buffer, não do disco. Pode ser muito menos tempo na segunda vez que você executar a mesma consulta.
-
Carregar 8000 linhas / 5GB de dados (655Kbytes por linha !!!) em TOAD, para exibi-los na GUI, pode levar muito tempo. Com python + cx_Oracle você não está exibindo nada, então está economizando muito tempo aqui.
EDITADO : OK, então 8000 linhas / 5 Mb de dados (655 bytes por linha) não devem ser um problema para o TOAD exibir.
- Compare as variáveis de ambiente do Oracle no Linux com as variáveis de registro HKEY_LOCAL_MACHINE \ Software \ Oracle no Windows. Verifique se as variáveis NLS_SORT, NLS_LANG, NLS _... possuem o mesmo valor.