O BCC, DROPCLEANBUFFERS, é usado para limpar o cache de dados na memória e, geralmente, quando fazemos ajustes de desempenho, executamos DBCC DROP CLEANBUFFERS antes da instrução ser executada para facilitar o tempo de execução e o consumo físico de IO de uma instrução.
No entanto, esse truque nem sempre é muito eficaz.
Algumas pessoas podem ter se deparado com esse fenômeno,Mesmo que os DBCC DROPCLEANBUFFERS sejam executados, ainda não há leitura física na informação de saída do SSMS, e essa instrução ainda é o dado lido da memória (leitura lógica)。
Você vai se surpreender: "O buffer na memória não está esvaziado? Por que não há leitura física?" Esse fenômeno é inválido para o DBCC DROPCLEANBUFFERS? ”
Não. Os DROP CLEANBUFFERS podem realmente ser usados para limpar o cache de dados na memória, mas apenas as páginas de cache no estado limpo; por outro lado, se essas páginas forem sujas, ou seja, páginas de dados na memória que foram modificadas e não foram sincronizadas com o disco, então não podem ser limpas do cache, isso por razões de desempenho.
Então, quando você encontrar o DROP CLEANBUFFERS "inválido", tente sincronizar manualmente as páginas de dados na memória e no disco, realizando:
Você também pode verificar o número e o tamanho das páginas limpas e sujas na memória atual dizendo o seguinte:
Comando limpar cache:
Original:O login do hiperlink está visível. |