Nos documentos diz que podemos compartilhar varreduras de índice (varredura avançada). Agora, aqui eles usaram estatísticas e estatísticas de espera e eu não encontrei uma sessão de eventos estendida que pudesse identificá-la diretamente.
A questão é: como posso saber que uma varredura avançada foi usada? Eu sei sobre a propriedade falsa ordenada, mas isso apenas diz que ela não usou a ordem na chave de índice?
Depende do que você quer dizer com "caminho direto". Não há evento estendido ou sinalizador de rastreamento*, por exemplo.
Pode-se anexar um depurador e ver se o código do carrossel (MGR) está ativado, o que é indiscutivelmente direto, mas nem sempre conveniente. Eu costumo usar
Get/SetMerryGoRoundPosition
onsqlmin!BaseSharedHoBt
.Existem métodos indiretos, como examinar os localizadores físicos dos registros retornados e compará-los.
O recurso Enterprise Edition Advanced Scanning (nome de marketing, nome interno é MGR) é ativado somente para alguns tipos de varreduras ordenadas de alocação , que são grandes o suficiente em comparação com o buffer pool. Os detalhes são complexos, sem um padrão claro e não documentados. Seu segundo link usa uma varredura de heap/tabela, não uma varredura de índice, a propósito.
Pelo que entendi, o MGR foi apenas levemente documentado para que pudesse ser usado em benchmarks padrão da indústria. Um benchmark especial, em outras palavras.
Como um ponto de possível interesse, varreduras simultâneas não são tecnicamente necessárias para usar MGR. A posição atual de uma varredura MGR para um conjunto de linhas é atualizada uma vez por segundo. Uma varredura qualificada do mesmo conjunto de linhas que começa menos de um segundo após outra varredura qualificada terminar usará MGR.
* O sinalizador de rastreamento não documentado 6974 desabilita o MGR