Um mal que veio por bem

Era uma vez um cliente com um sistema produtivo com 9 servidores mais rápidos que a própria sombra. Esses 9 servidores eram geridos por 4 administradores de sistema muito bons que os mantinham sempre oleados e a fluírem à velocidade máxima. Um dia tive de desenvolver um carregamento muito complexo que criava milhões de classificações. Quando se começou a testar o programa, constatou-se que algo estava muito lento, lento demais. Na maior parte do tempo o programa estava encalhado à espera de SELECTs sequenciais à tabela INOB, que era gigante. Como o meu programa não usava a INOB estranhámos. Depois de alguma investigação descobriu-se um SELECT desnecessário e ainda por cima mal feito (sem usar nem a chave primária nem um índice) que alguém deixou num user-exit amplamente utilizado. Comentou-se o SELECT e de repente o meu programa ficou centenas de vezes mais rápido. Eu fiquei feliz mas quem ficou mesmo a ganhar foram os administradores de sistema que tiveram um inesperado upgrade grátis a todas as 9 máquinas!
O Abapinho saúda-vos.
7 de Novembro de 2010 às 23:19
Achei sensacional achar tanta coisa bacana em um blog em PT!
8 de Novembro de 2010 às 10:31
Olá Michelle, ainda bem que gostas do Abapinho. Se puderes promove-o entre os teus amigos e colegas! obrigado :)
8 de Novembro de 2010 às 12:27
Parabéns pelo blog!
já que entrou no assunto ‘lentidão’, que tal algumas dicas de performance para o pessoal? :)
11 de Novembro de 2010 às 23:39
Olá Paulo,
Obrigado!
Prevêem-se dicas de performance para breve.
Nuno
3 de Julho de 2012 às 14:48
É giro simplificar os problemas assim. Mas lá está… comentar apenas por comentar o SELECT, embora seja um SELECT errado não resolve os problemas e até pode criar novos.
Porque é que o SELECT estava no lugar que estava?
A ideia do blog é boa, a simplicidade com que mudam programas (ou explicam que os mudam) é assustadora para quem, como eu, vive em projectos gigantes, e a linguagem é grosseira, mas isto é o teu blog, portanto, força.
3 de Julho de 2012 às 14:58
Foi há muito tempo mas lembro-me que o SELECT era garantidamente inútil porque os seus resultados não eram usados. Talvez tivesse sido usado no passado, não sei. Além disso não usava a chave primária e por isso demorava eternidades. De qualquer forma na altura analisámos o código e as versões e concluímos que a nossa correcção podia ser feita sem impacto.