Tenho uma tabela (vamos chamá-la de Packages
) que cresce continuamente e é basicamente alimentada por ordersId
, um FK da Orders
tabela.
O problema é que, devido à natureza simultânea do processo de pedido, onde só geramos um pacote DEPOIS que você paga seu pedido, a tabela cresce "não diretamente"...
Se você consultar a Packages
tabela agora, o último orderId
na tabela será 12345
, e se você consultar novamente em alguns minutos SERÁ um número maior, como 12350
, mas isso não significa que os registros foram inseridos em ordem... talvez 12350
tenha sido a primeira pessoa a pagar e a próxima será 12346
...
Este cenário/tabela é um bom candidato para OPTIMIZE_FOR_SEQUENTIAL_KEY
?
Não. Ouça Pam Lahoud:
Nos bastidores do OPTIMIZE_FOR_SEQUENTIAL_KEY
Isso, é claro, além de ver um tempo de espera significativo de PAGELATCH_EX. O documento geral de solução de problemas para isso é Resolve last-page insert PAGELATCH_EX contention in SQL Server .