Pelo que você falou até agora, performance não parece ser um problema, nem dependência do banco de dados. Assim, porque, ao invés de ir buscar a chave, você não cria uma trigger que chame o seu sistema quando um dado for inserido, ao invés de tentar recuperar a chave?