BCC DROPCLEANBUFFERS służy do czyszczenia pamięci podręcznej danych w pamięci, a zazwyczaj podczas tuningu wydajności wykonujemy DBCC DROP CLEANBUFFERS przed wykonaniem instrukcji, aby ułatwić czas wykonania i fizyczne zużycie IO instrukcji.
Jednak ten trik nie zawsze jest skuteczny.
Niektórzy mogli doświadczyć tego zjawiska,Nawet jeśli DROPCLEANbuffer DBCC zostaną wykonane, nadal nie ma fizycznego odczytu informacji wyjściowych SSMS, a to zdanie nadal jest odczytem danych z pamięci (odczyt logiczny)。
Będziesz zaskoczony: "Czy bufor w pamięci nie jest opróżniony, dlaczego nie ma fizycznego odczytu?" Czy to zjawisko jest nieprawidłowym DBCC DROPCLEANBUFFERS? ”
Nie. DROP CLEANBUFFERS rzeczywiście mogą być używane do czyszczenia pamięci podręcznej danych, ale tylko stron cache w stanie czystego; natomiast jeśli są one zanieczyszczone, czyli strony danych w pamięci, które zostały zmodyfikowane i nie zostały zsynchronizowane z dyskiem, nie mogą zostać usunięte z pamięci podręcznej, ze względów wydajnościowych.
Więc gdy napotkasz DROP CLEANBUFFERS "nieprawidłowy", spróbuj ręcznie zsynchronizować strony danych w pamięci i dysku, wykonując:
Możesz także sprawdzić liczbę i rozmiar czystych i brudnych stron w bieżącej pamięci, mówiąc następująco:
Polecenie czyszczenia pamięci podręcznej:
Oryginał:Logowanie do linku jest widoczne. |