Estou fazendo um DELETE seguido de um INSERT em um OPENQUERY para Oracle. Eu tentei um DELETE direto com um WHERE, bem como filtrar com um JOIN. INSERT é apenas um INSERT OPENQUERY/SELECT. Eu também tentei um UPDATE filtrado seguido por INSERT em novas linhas. Como não posso fazer um MERGE em OPENQUERY, devo fazer duas instruções consecutivas.
DELETE, UPDATE e INSERT funcionam como esperado, mas apenas se eu os executar com 10 minutos de intervalo. Individualmente, eles completam em menos de um segundo. Quando executados consecutivamente, usando sp_executesql ou SSMS, seja executando-os individualmente ou em um script, eles levam exatamente 10 minutos .
Falei com o Oracle DBA, não soa nenhum sino para ele.
As consultas em si, por mais que eu queira compartilhá-las para ajudá-lo a me ajudar, não sou livre para fazê-lo. Por favor, aceite minha palavra para o fato de que ambos funcionam como esperado em menos de um segundo quando executados com 10 minutos de intervalo e levam 10 minutos quando executados juntos.
Isso acabou sendo um problema com OPENQUERY e o problema relacionado de "metadados inconsistentes" que requer OPTION (RECOMPILE). Alternar para EXEC AT para consultas de gravação (UPDATE, INSERT e DELETE) resolveu o efeito de limitação.