Caro, Java-lee…
É engraçado odiar as coisas sem conhecer!!!
No caso do seu problema “gap muito grande no campo identity” existem VÁRIOS tipos de mecanismos que podem contornar essa situação. Vou dar o exemplo de 2 casos (mais importantes)
1 - JAMAIS realizar “shutdown with nowait” no ASE, que tenho quase certeza que foi dessa forma que você reiniciou o Sybase ASE, senão não ocorreria esse salto gigante do identity.
Quando se roda um “shutdown with nowait”, o Sybase ASE realiza o processo de shutdown SEM qualquer validação das transações abertas, etc. Quando ele sobe novamente, ele gera uma lista de rollbacks das transações que não foram validadas pelo" shutdown with nowait" e por esse motivo, pode te gerar esse salto gigante.
Das próximas vezes, use “checkpoint all” e depois “shutdown” (somente ‘shutdown’).
2 - Toda a tabela que tem campo “identity” deve ser criada (ou alterada) colocando a feature “with identity_gap = 10” (ou algo em torno desse valor). Com isso, ele restringe o tamanho do gap a, no máximo, 10 e não mais a quase 10.000 que foi o seu caso. Esse segundo item, previne você caso faça a burrada de reiniciar de novo o Sybase ASE com “shutdown with nowait”.
OBS: O “identity gap” é um problema conhecido pela Sybase e ela disponibilizou vários mecanismos para contorná-los desde a versão 12.0. Portanto não se trata de bug ou algo desconhecido.
Portanto, mais uma vez eu digo… odiar sem conhecer é puta ignorância…
Ditado popular: “Não sabe? Não mexe!”
Jorge
DBA Sybase Certified 12.5