BCC DROPCLEANBUFFERS bruges til at slette datacachen i hukommelsen, og generelt, når vi laver performance tuning, vil vi udføre DBCC DROP CLEANBUFFERS, før sætningen udføres, for at lette eksekveringstiden og det fysiske IO-forbrug af en sætning.
Dette trick er dog ikke altid særlig effektivt.
Nogle mennesker kan have oplevet dette fænomen,Selv hvis DBCC DROPCLEANBUFFERS udføres, er der stadig ingen fysisk læsning i outputinformationen fra SSMS, og denne sætning er stadig datalæsningen fra hukommelsen (logisk læsning)。
Du vil blive overrasket: "Er bufferen i hukommelsen ikke tømt, hvorfor er der ingen fysisk aflæsning?" Er dette fænomen ugyldige DBCC DROPCLEANBUFFERS? ”
Nej. DROP CLEANBUFFERS kan faktisk bruges til at rydde datacachen i hukommelsen, men kun cache-siderne i ren tilstand; hvis disse sider derimod er beskidte sider, altså datasider i hukommelsen, som er blevet ændret og ikke er synkroniseret til disken, kan de ikke ryddes fra cachen, dette er af hensyn til ydeevnen.
Så når du støder på DROP CLEANBUFFERS "ugyldige", så prøv manuelt at synkronisere datasiderne i hukommelse og disk, og udfør:
Du kan også tjekke antallet og størrelsen af rene og beskidte sider i den aktuelle hukommelse ved at sige følgende:
Clean cache-kommandoen:
Oprindelig:Hyperlink-login er synlig. |