Olá Ramon, tudo bem?
Quando se trata de utilizar a funcionalidade de carregamento preguiçoso (lazy loading) em várias tabelas dentro de abas (p:tab) usando PrimeFaces DataTable, é importante considerar a estrutura da sua página e a configuração do LazyDataModel.
Uma abordagem comum é ter um LazyDataModel separado para cada tabela dentro de cada aba. Isso permite que cada tabela tenha seu próprio modelo de dados em modo lazy, permitindo o carregamento sob demanda dos dados específicos da tabela em exibição.
No entanto, para melhorar o desempenho e evitar engasgos durante a navegação entre abas, você pode pré-carregar os dados para cada aba. Isso pode ser feito carregando os dados quando a página é carregada inicialmente ou quando a aba correspondente é acessada pela primeira vez. Dessa forma, ao alternar entre as abas, os dados já estarão disponíveis e a navegação será mais suave.
Você também pode considerar o uso de técnicas de paginação e filtragem para limitar a quantidade de dados exibidos em cada tabela. Isso pode ajudar a melhorar o desempenho, reduzindo a carga de dados em cada requisição.
Outra opção é avaliar o uso de componentes de renderização condicional, como o atributo "rendered" do PrimeFaces, para controlar quando cada tabela é renderizada. Dessa forma, apenas a tabela atualmente visível será renderizada, reduzindo a quantidade de processamento necessário.
Em resumo, ao utilizar o carregamento preguiçoso em várias tabelas dentro de abas, é importante considerar a estrutura da página, pré-carregar os dados quando possível, utilizar técnicas de paginação e filtragem, e avaliar o uso de renderização condicional para melhorar o desempenho e a experiência do usuário.